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
}
}