WfActivityIteratorSSBean.java :  » Workflow-Engines » shark » org » enhydra » shark » ejb » Java Open Source

Java Open Source » Workflow Engines » shark 
shark » org » enhydra » shark » ejb » WfActivityIteratorSSBean.java
/* 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 {
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.