Codice completo

Listato 5. Virtualizzazione di un prodotto

package it.html.ejb.session.stateful;

import it.html.shop.Product;

import java.rmi.RemoteException;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;

import javax.ejb.EJBException;
import javax.ejb.SessionContext;

public class ShoppingCartBean implements javax.ejb.SessionBean {

  //Variabili di istanza
  Vector content;
  
  String cartName;
  
  //Il metodo funge da costruttore, quindi è qui che inizializziamo le variabili di istanza
  public void ejbCreate() {
    System.out.println("Creazione carrello anonimo");
    cartName="Anonimo";
    content=new Vector();
  }
  
  //Metodo create
  public void ejbCreate(String name) {
    System.out.println("Creazione carrello "+name);
    cartName=name;
    content=new Vector();
  }
  
  //Metodi di business
  //Aggiungi un oggetto al carrello

  
  public void add(Product x){
    System.out.println("Aggiunta "+x.getId());
    content.add(x);
  }
  
  //Calcola il totale
  public double totalAmount(){
    System.out.println("Calcolo totale carrello "+cartName);
    double toRet=0f;
    Iterator it=content.iterator();
    while(it.hasNext()){
      Product tmp=(Product)it.next();
      toRet+=tmp.getCost();
    }
    return toRet;
  }
  
  //Restituisci la lista di prodotti
  public Collection getList(){
    System.out.println("Recupero lista prodotti carrello "+cartName);
    return content;
  }
  
  //Restituisce il nome del carrello
  public String getCartName(){
    return cartName;
  }

  public void ejbActivate() throws EJBException, RemoteException {
    System.out.println("Attiva "+cartName);
  }
  
  public void ejbPassivate() throws EJBException, RemoteException {
    System.out.println("Passiva "+cartName);
  }
  
  public void ejbRemove() throws EJBException, RemoteException {
    System.out.println("Rimuovi "+cartName);
  }

  public void setSessionContext(SessionContext arg0) throws EJBException,
  RemoteException {
    // NOOP
  }
}