QueueBeanLocal.java 1.47 KB
package fi.codecrew.moya.beans.map;

import java.util.Collection;
import java.util.Date;

import javax.ejb.Local;

import fi.codecrew.moya.model.EventMap;
import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.MapQueueRules;
import fi.codecrew.moya.model.map.MapReservationQueueEntry;

@Local
public interface QueueBeanLocal {

	MapReservationQueueEntry enterQueue(EventMap map, EventUser user);

	boolean isReserving(EventMap map, EventUser user);

	Integer getQueuePosition(EventMap map, EventUser user);

	boolean isQueueEnabled();

	MapReservationQueueEntry remove(EventMap map, EventUser user);

	Date getReservationTimeout(EventMap map);

	MapQueueI getMapQueue(EventMap map);

	void saveQueue(MapQueueI queue, EventMap map);

	MapQueueRules findRules(EventMap map);

	public interface MapQueueI {

		Collection<MapReservationQueueEntry> getQueue();

		Collection<EventUser> getReserving();

		void setReservingSize(int reservingSize);

		int getReservingSize();

		void setDefaultTimeoutMin(int defaultTimeoutMin);

		int getDefaultTimeoutMin();

		int getMinimumSlotsInQueue();

		void setMinimumSlotsInQueue(int minimumSlotsInQueue);

		MapReservationQueueEntry getEntry(EventUser u);

		boolean isBiggestFirst();

		void setBiggestFirst(boolean biggestFirst);

	}

	void forceAddToReserving(EventMap map, EventUser u, Date time);

	void forceRemove(EventMap e, EventUser u);

	/**
	 * Remove eventuser from all queues.
	 * @param user
	 */
    void removeFromAll(EventUser user);

}