/* WfActivityIteratorSSBean.java */
package org.enhydra.shark.ejb;
import java.rmi.RemoteException;
import javax.ejb.EJBException;
import javax.ejb.EJBObject;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import org.enhydra.shark.api.client.wfmodel.WfActivity;
import org.enhydra.shark.api.client.wfmodel.WfActivityIterator;
/**
* @ejb.bean
* name="WfActivityIteratorSS"
* type="Stateful"
* display-name="WfActivityIterator"
* jndi-name="org/enhydra/shark/ejb/WfActivityIteratorSS"
* local-jndi-name="org/enhydra/shark/ejb/WfActivityIteratorSSLocal"
* transaction-type="Container"
* view-type="both"
* local-business-interface="org.enhydra.shark.api.client.wfmodel.WfActivityIterator"
*
* @ejb.ejb-ref ejb-name="WfActivitySS"
* view-type="both"
* ref-name="org/enhydra/shark/ejb/WfActivitySS"
*
* @ejb:interface
* extends="org.enhydra.shark.api.client.wfmodel.WfActivityIterator,javax.ejb.EJBObject"
*
* @ejb:transaction
* type="Required"
*
* @jonas:bean
* ejb-name="WfActivityIteratorSS"
* jndi-name="org/enhydra/shark/ejb/WfActivityIteratorSS"
*
* OMG definition: The WfActivityIterator interface specializes the WfBase::BaseIterator
* interface and adds activity specific operations. The following attributes can be used
* in query expressions using: key, name, priority, description, state.
* <p>
* We extended OMG's interface by duplicating methods, and adding additional parameter
* that represents transaction. If you use methods without SharkTransaction parameter, the
* transaction will be implicitly created, and if you use it with SharkTransaction
* parameter you must obey to some rules explained in HowTo documentation.
* <p>
* Also, look at our implementation API documentation of this interface to see which
* additional attributes can be used in query expressions.
*
* @author V.Puskas
* @author S.Bojanic
* @author T.Jovanovic
* @version 0.1
*/
public abstract class WfActivityIteratorSSBean extends BaseIteratorSSBean implements WfActivityIterator, SessionBean {
private SessionContext context;
/**
* @ejb:interface-method
* view-type="both"
*/
public WfActivity get_next_object() throws Exception {
WfActivity wfshark = ((WfActivityIterator)sharkObj).get_next_object();
WfActivitySS wf = null;
try {
Context initialContext = EJBJNDIContext.getInstance().getInitialContext();
wf = ((org.enhydra.shark.ejb.WfActivitySSHome) PortableRemoteObject.narrow(
initialContext.lookup("org/enhydra/shark/ejb/WfActivitySS"),
org.enhydra.shark.ejb.WfActivitySSHome.class)).create(wfshark);
return (WfActivitySS)wf.getPassedEJBObject();
} catch (Exception ex) {
throw new EJBException(ex);
}
}
/**
* @ejb:interface-method
* view-type="both"
*/
public WfActivity get_previous_object() throws Exception {
WfActivity wfshark = ((WfActivityIterator)sharkObj).get_previous_object();
WfActivitySS wf = null;
try {
Context initialContext = EJBJNDIContext.getInstance().getInitialContext();
wf = ((org.enhydra.shark.ejb.WfActivitySSHome) PortableRemoteObject.narrow(
initialContext.lookup("org/enhydra/shark/ejb/WfActivitySS"),
org.enhydra.shark.ejb.WfActivitySSHome.class)).create(wfshark);
return (WfActivitySS)wf.getPassedEJBObject();
} catch (Exception ex) {
throw new EJBException(ex);
}
}
/**
* @ejb:interface-method
* view-type="both"
*/
public WfActivity[] get_next_n_sequence(int max_number) throws Exception {
WfActivity[] wfsshark = ((WfActivityIterator)sharkObj).get_next_n_sequence(max_number);
WfActivitySSHome home = null;
InitialContext initialContext = EJBJNDIContext.getInstance().getInitialContext();
home = (WfActivitySSHome) PortableRemoteObject.narrow(
initialContext.lookup("org/enhydra/shark/ejb/WfActivitySS"),
org.enhydra.shark.ejb.WfActivitySSHome.class);
int len = wfsshark.length;
WfActivitySS[] remotes = new WfActivitySS[len];
for (int i=0;i<len;i++){
remotes[i]= (WfActivitySS)(home.create(wfsshark[i])).getPassedEJBObject();
}
return remotes;
}
/**
* @ejb:interface-method
* view-type="both"
*/
public WfActivity[] get_previous_n_sequence(int max_number) throws Exception {
WfActivity[] wfsshark = ((WfActivityIterator)sharkObj).get_previous_n_sequence(max_number);
WfActivitySSHome home = null;
InitialContext initialContext = EJBJNDIContext.getInstance().getInitialContext();
home = (WfActivitySSHome) PortableRemoteObject.narrow(
initialContext.lookup("org/enhydra/shark/ejb/WfActivitySS"),
org.enhydra.shark.ejb.WfActivitySSHome.class);
int len = wfsshark.length;
WfActivitySS[] remotes = new WfActivitySS[len];
for (int i=0;i<len;i++){
remotes[i]= (WfActivitySS)(home.create(wfsshark[i])).getPassedEJBObject();
}
return remotes;
}
/**
* @ejb.interface-method
* view-type="both"
**/
public EJBObject getPassedEJBObject() throws EJBException{
try {
return context.getEJBObject();
} catch (Exception ex) {
throw new EJBException(ex);
}
}
public void setSessionContext(SessionContext ctx)
throws EJBException,
RemoteException {
context = ctx;
}
/**
* @ejb:create-method
*/
public void ejbCreate(org.enhydra.shark.api.client.wfmodel.WfActivityIterator iter) {
sharkObj = iter;
}
/* (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 {
}
}
|