package multimonster.resourcemanager;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import org.apache.log4j.Logger;
import multimonster.common.UserIdentifier;
import multimonster.common.resource.Costs;
import multimonster.common.resource.QueueTime;
import multimonster.common.resource.ResourceRequestIdentifier;
import multimonster.common.resource.ResourceWaiter;
import multimonster.resourcemanager.exceptions.ResourceManagerException;
/**
* @ejb.bean name = "ResourceManagerImpl"
* display-name = "ResourceManagerFacade SessionBean"
* description = "The Facade of the ResourceManager-Package of MultiMonster"
* view-type = "remote"
* jndi-name = "multimonster/edit/ResourceManagerFacade"
*
* @see multimonster.resourcemanager.ResourceManagerFacade
*
* @author Holger Velke (sihovelk)
*
*/
public class ResourceManagerImplBean
implements ResourceManagerFacade, SessionBean {
private static Logger log = Logger.getLogger(ResourceManagerImplBean.class);
/**
* @clientCardinality 0..*
* @supplierCardinality 0..1
*/
private ResourceManager manager;
/**
* @see multimonster.resourcemanager.ResourceManagerFacade#requestResources(multimonster.common.UserIdentifier,
* multimonster.common.Costs, multimonster.common.Duration)
*
* @ejb.interface-method view-type = "remote"
*/
public ResourceRequestIdentifier requestResources(
UserIdentifier uId,
Costs costs,
QueueTime maxQT,
ResourceWaiter waiter) throws ResourceManagerException {
log.debug("requestResource()");
// check parameter
if (uId == null){
throw new ResourceManagerException("UserIdentifier is null");
}
if (costs == null){
throw new ResourceManagerException("Costs is null");
}
if (maxQT == null){
throw new ResourceManagerException("Duration is null");
}
if (waiter == null){
throw new ResourceManagerException("ResourceWaiter is null");
}
if (manager == null) {
this.manager = ResourceManager.getInstance();
}
return this.manager.requestResources(
uId,
costs,
maxQT,
waiter);
}
/**
*@see multimonster.resourcemanager.ResourceManagerFacade#requestResources(multimonster.common.UserIdentifier,
* multimonster.common.Costs)
*
* @ejb.interface-method view-type = "remote"
*/
public ResourceRequestIdentifier requestResources(
UserIdentifier uId,
Costs costs) throws ResourceManagerException {
log.debug("requestResource()");
// check parameter
if (uId == null){
throw new ResourceManagerException("UserIdentifier is null");
}
if (costs == null){
throw new ResourceManagerException("Costs is null");
}
if (manager == null) {
this.manager = ResourceManager.getInstance();
}
return manager.requestResources(uId, costs);
}
/**
* @see multimonster.resourcemanager.ResourceManagerFacade#releaseResources(multimonster.common.ResourceRequestIdentifier)
*
* @ejb.interface-method view-type = "remote"
*/
public Costs releaseResources(ResourceRequestIdentifier rrId) throws ResourceManagerException {
log.debug("releaseResource()");
// check parameter
if (rrId == null){
throw new ResourceManagerException("ResourceRequestIdentifier is null");
}
if (manager == null) {
this.manager = ResourceManager.getInstance();
}
return manager.releaseResources(rrId);
}
/*
* (non-Javadoc)
*
* @see javax.ejb.SessionBean#ejbActivate()
*/
public void ejbActivate() throws EJBException, RemoteException {
}
/*
* (non-Javadoc)
*
* @see javax.ejb.SessionBean#ejbPassivate()
*/
public void ejbPassivate() throws EJBException, RemoteException {
}
/*
* (non-Javadoc)
*
* @see javax.ejb.SessionBean#ejbRemove()
*/
public void ejbRemove() throws EJBException, RemoteException {
}
/*
* (non-Javadoc)
*
* @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
*/
public void setSessionContext(SessionContext arg0)
throws EJBException, RemoteException {
}
/**
* @ejb.create-method
*/
public void ejbCreate() {
}
}