lunes, 20 de abril de 2009

Seam: CarritoCompra

package org.domain.seamcea2.session;

import javax.persistence.EntityManager;

import org.jboss.seam.Component;
import org.jboss.seam.annotations.intercept.AroundInvoke;
import org.jboss.seam.intercept.InvocationContext;
import org.jboss.seam.security.Identity;
import org.jboss.seam.security.NotLoggedInException;

public class Espia {

@AroundInvoke
public Object meDaIgual(InvocationContext llamadaMetodo)
throws Exception {





String nombreMetodoInvocado = llamadaMetodo.getMethod().getName();
Object[] parameters = llamadaMetodo.getParameters();
Object resultadoAccion = llamadaMetodo.proceed();
ListaDiscoBean listaDiscoBean =
(ListaDiscoBean) llamadaMetodo.getTarget();
Disco discoSelccionado=listaDiscoBean.discoSelccionado;


if(nombreMetodoInvocado.equals("incluye")){
EntityManager entityManager = (EntityManager) Component
.getInstance("entityManager");
Estadistica stadistica=new Estadistica();
stadistica.setDisco(discoSelccionado);
entityManager.persist(stadistica);

}
return resultadoAccion;
}

}




package org.domain.seamcea2.session;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.jboss.seam.annotations.intercept.Interceptors;

import sun.reflect.annotation.AnnotationType;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Interceptors(Espia.class)
public @interface EspiaAnotacion {

}



Aplicar la inyección de dependencias al carrito de la compra

Convertir un Entity en un Bean accesible por su nombre (desde la vista y desde otros beans) de la aplicación

(Pagina 152 tutorial de seam)Interceptar el carrito para implementar estadisticas y seguridad de forma transparente

Generar consultas JPQL para saber los detalles de las entidades relacionadas con disco y estadistica

No hay comentarios:

Publicar un comentario