//CompanyFacade
import java.rmi.RemoteException;

public interface CompanyFacade
    extends javax.ejb.EJBLocalObject {
  public void createCompany(
      String companyId, String companyName );
  public void addDivision(
    String divisionId, String divisionName );
  public void addEmployee(String employeeId,
      String lastName, String firstName );
}

// CompanyFacadeHome
import javax.ejb.CreateException;

public interface CompanyFacadeHome
    extends javax.ejb.EJBLocalHome {
  public CompanyFacade create( )
      throws CreateException;
  public CompanyFacade create( String companyId )
      throws CreateException;
}

// CompanyFacadeSession
import javax.ejb.SessionContext;
import javax.ejb.EJBException;
import javax.ejb.CreateException;

public class CompanyFacadeSession
    implements javax.ejb.SessionBean {
  String companyId;

  public void createCompany( String id, String name ) {
    // tworzy i utrwala firm
    // zapamietanie companyId dla konwersacji przechowujacych stan
    this.companyId = id;
  }

  public void addDivision(
      String divisionId, String divisionName) {
    // wywouje obiekt biznesowy lub DAO, aby doda
    // dzia do firmy
  }

  public void addEmployee(String employeeId,
      String lastName, String firstName) {
    // wywouje obiekt biznesowy lub DAO, aby
    // pracownika do dziau
  }

  public void setSessionContext(SessionContext sessionContext)
    throws EJBException {
  }

  public void ejbRemove() throws EJBException {    }
  public void ejbActivate() throws EJBException {    }
  public void ejbPassivate() throws EJBException {    }
  public void ejbCreate() throws CreateException {    }
  public void ejbCreate( String companyId )
      throws CreateException {
    // wyszukiwanie obiektu biznesowego Company
    this.companyId = companyId;
  }
}