/* * NullActivityContextInterfaceFactoryImpl.java * * Created on Aug 12, 2004 * * Created by: M. Ranganathan * * The Open SLEE project * * A SLEE for the people! * * The source code contained in this file is in in the public domain. * It can be used in any project or product without prior permission, * license or royalty payments. There is NO WARRANTY OF ANY KIND, * EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, * THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, * AND DATA ACCURACY. We do not warrant or make any representations * regarding the use of the software or the results thereof, including * but not limited to the correctness, accuracy, reliability or * usefulness of the software. */ package org.mobicents.slee.runtime.facilities.nullactivity; import javax.slee.ActivityContextInterface; import javax.slee.FactoryException; import javax.slee.TransactionRequiredLocalException; import javax.slee.UnrecognizedActivityException; import javax.slee.management.SleeState; import javax.slee.nullactivity.NullActivity; import javax.slee.nullactivity.NullActivityContextInterfaceFactory; import org.mobicents.slee.container.SleeContainer; import org.mobicents.slee.runtime.activity.ActivityContext; import org.mobicents.slee.runtime.activity.ActivityContextHandle; import org.mobicents.slee.runtime.activity.ActivityContextHandlerFactory; import org.mobicents.slee.runtime.activity.ActivityContextInterfaceImpl; /** *Implelentation of null activity context interface. * *@author M. Ranganathan */ public class NullActivityContextInterfaceFactoryImpl implements NullActivityContextInterfaceFactory { private SleeContainer sleeContainer ; public NullActivityContextInterfaceFactoryImpl(SleeContainer svcContainer) { this.sleeContainer = svcContainer; } /* (non-Javadoc) * @see javax.slee.nullactivity.NullActivityContextInterfaceFactory#getActivityContextInterface(javax.slee.nullactivity.NullActivity) */ public ActivityContextInterface getActivityContextInterface( NullActivity nullActivity) throws NullPointerException, TransactionRequiredLocalException, UnrecognizedActivityException, FactoryException { if (! (nullActivity instanceof NullActivityImpl)) throw new UnrecognizedActivityException ("unrecognized activity"); if (nullActivity == null ) throw new NullPointerException ("null NullActivity ! huh!!"); if ( sleeContainer.getSleeState() == SleeState.STOPPING) { return null; } NullActivityImpl nullActivityImpl = (NullActivityImpl) nullActivity; ActivityContextHandle ach = ActivityContextHandlerFactory.createNullActivityContextHandle(nullActivityImpl.getHandle()); ActivityContext ac = sleeContainer.getActivityContextFactory().getActivityContext(ach); if (ac == null) { throw new UnrecognizedActivityException(nullActivity); } return new ActivityContextInterfaceImpl(ac); } }