Spring AOP: Como recuperar un objeto de un metodo... para poder utilizarlo en mi método AOP.

Que tal amigos de JavaMéxico,

Estoy tratando de implementar un nuevo método con Aspectos, el cúal se encargue de EXTRAER un objeto póliza de un método que se encuentra en mi capa DAO, es decir, necesito recuperar este objeto para poder persistirlo en otra tabla HistorcoPolizaEntity.

No se si fuí muy claro con mi problema.

De antemano GRACIAS.

Dejo el código de mi método AOP.

@Test
        public void emitirPoliza() {

                System.out
                                .println("*************************JUnit*******************************");

                RecepcionPolizaDTO poliza = new RecepcionPolizaDTO();
                poliza.setCveSistema("INFO");
                poliza.setIdNegocioComercial("COMERCIAL");
                poliza.setIdNegocioOperable("OPERABLE");
                poliza.setNumPolizaGrupo(""); // TODO Asignar valor.
                poliza.setNumPoliza("00000372215911");
                poliza.setCodProducto("LINEA_AZUL/0000095");
                poliza.setCveRamo(""); // TODO Asignar valor.
                poliza.setCveClasificacionSeguro("LC");

                DateTime fchEmision = new DateTime(2013, 7, 4, 0, 0);
                poliza.setFchEmision(fchEmision.toDate());
                DateTime fchInicioPoliza = new DateTime(2013, 7, 5, 0, 0);
                poliza.setFchInicioPoliza(fchInicioPoliza.toDate());
                DateTime fchFinPoliza = new DateTime(2014, 7, 5, 0, 0);
                poliza.setFchFinPoliza(fchFinPoliza.toDate());

                poliza.setCveMoneda("MXP");
                poliza.setBanCoaseguro("0");
                poliza.setAnioPoliza((short) 0);
                poliza.setBanCashFlow("0");
                poliza.setBanRenovable("1");
                poliza.setBanReaseguro("0");
                poliza.setBanPolizaCobertura("0");
                poliza.setNumDiasGracia("5");
                // poliza.setBanTarificacionAnual("");
                poliza.setEstructuraNegocio("A:B,C:D");
               
               
                RecepcionDocumentoCobroDTO recepcionDocumentoCobroDTO = new RecepcionDocumentoCobroDTO();
                recepcionDocumentoCobroDTO.setIndTipoEndoso(TipoEndoso.COMPLEMENTARIO);

                DateTime fchInicioVigenciaDocCobro = new DateTime(2013, 7, 5, 0, 0);
                recepcionDocumentoCobroDTO.setFchInicioVigenciaDocCobro(fchInicioVigenciaDocCobro.toDate());
                DateTime fchFinVigenciaDocCobro = new DateTime(2014, 7, 5, 0, 0);
                recepcionDocumentoCobroDTO.setFchFinVigenciaDocCobro(fchFinVigenciaDocCobro.toDate());
                DateTime fchEmisionDocCobro = new DateTime(2014, 7, 4, 0, 0);
                recepcionDocumentoCobroDTO.setFchEmisionDocCobro(fchEmisionDocCobro.toDate());

                recepcionDocumentoCobroDTO.setCveFormaPago(FormaPago.TRIMESTRAL);
                // recepcionDocumentoCobroDTO.setIdParticipanteIntPrincipal("");
                recepcionDocumentoCobroDTO.setCodIntPrincipal("0000045698");
                recepcionDocumentoCobroDTO.setRefDocumentoOrigen((short) 01);
                recepcionDocumentoCobroDTO.setReferenciaOrigen("01");
                recepcionDocumentoCobroDTO.setIndDependenciaDocCobro(TipoDependenciaDocCobro.DOCUMENTOORIGEN);
                // recepcionDocumentoCobroDTO.setRefDocumentoDependiente("");
                recepcionDocumentoCobroDTO.setIdParticipantePagador("20000");
                recepcionDocumentoCobroDTO.setCodFiliacionPagador("0014201893");
                recepcionDocumentoCobroDTO.setCodDomicilioPagador("1");
                recepcionDocumentoCobroDTO.setIdParticipanteContratante("20000");
                recepcionDocumentoCobroDTO.setCodFiliacionContratante("0014147331");
                recepcionDocumentoCobroDTO.setCodDomicilioContratante("1");
                recepcionDocumentoCobroDTO.setIdParticipanteEmisor("20000");
                recepcionDocumentoCobroDTO.setCodFiliacionEmisor("0000000001");
                recepcionDocumentoCobroDTO.setCodDomicilioEmisor("8");
                recepcionDocumentoCobroDTO.setLugarExpedicion("LUGAR_EXPEDICION");
                recepcionDocumentoCobroDTO.setCveOficinaProductora("0002");
                // recepcionDocumentoCobroDTO.setBanTarificacionAnual("");
                recepcionDocumentoCobroDTO.setBanIntervigencia("0");
                recepcionDocumentoCobroDTO.setIndCobroDerechos(TipoCobroDerechos.PRIMERAFRACCION);
                recepcionDocumentoCobroDTO.setDescripcionMovimiento("Documento Base");
                recepcionDocumentoCobroDTO.setCveConductoPago("V");
               
               
                RecepcionEstructuraFraccionDTO recepcionEstructuraFraccionDTO = new RecepcionEstructuraFraccionDTO();
               
                // recepcionEstructuraFraccionDTO.setIntermediarioPrincipal("");
               
               
                List<RecepcionFraccionDTO> recepcionFraccionDTOList = new ArrayList<RecepcionFraccionDTO>();
               
                RecepcionFraccionDTO recepcionFraccionDTO = new RecepcionFraccionDTO();

                // recepcionFraccionDTO.setNumFraccion("");

                DateTime fchInicioVigenciaFraccion = new DateTime(2013, 7, 5, 0, 0);
                recepcionFraccionDTO.setFchInicioVigenciaFraccion(fchInicioVigenciaFraccion.toDate());
                DateTime fchFinVigenciaFraccion = new DateTime(2014, 7, 5, 0, 0);
                recepcionFraccionDTO.setFchFinVigenciaFraccion(fchFinVigenciaFraccion.toDate());
               
               
                List<RecepcionCoberturaContableDTO> recepcionCoberturaContableDTOList = new ArrayList<RecepcionCoberturaContableDTO>();
               
               
                RecepcionCoberturaContableDTO recepcionCoberturaContableDTO = new RecepcionCoberturaContableDTO();

                recepcionCoberturaContableDTO.setCveCobertura("0000079563");
                recepcionCoberturaContableDTO.setMtoPrimaTecnica(new BigDecimal(12112.41));
                recepcionCoberturaContableDTO.setMtoPrimaNeta(new BigDecimal(12112.41));
                recepcionCoberturaContableDTO.setMtoRecargoPagoFracc(new BigDecimal(969.00));
                recepcionCoberturaContableDTO.setTasaIva(new BigDecimal(16.0));
                recepcionCoberturaContableDTO.setMtoIva(new BigDecimal(2093.02));
                recepcionCoberturaContableDTO.setMtoDerechoPoliza(new BigDecimal(660.96));
//              recepcionCoberturaContableDTO.setMtoExtraPrima(new BigDecimal(0.00));
                recepcionCoberturaContableDTO.setBonusMalus(new BigDecimal(0.00));
                recepcionCoberturaContableDTO.setMtoDescuentoComercial(new BigDecimal(0.00));
                recepcionCoberturaContableDTO.setMtoRecargoComercial(new BigDecimal(0.00));
               
               
                RecepcionEstructuraIntermediarioDTO recepcionEstructuraIntermediarioDTO = new RecepcionEstructuraIntermediarioDTO();
               
               
//              List<RecepcionIntermediarioDTO> recepcionIntermediarioDTOList = new ArrayList<RecepcionIntermediarioDTO>();
               
               
                RecepcionIntermediarioDTO recepcionIntermediarioDTO = new RecepcionIntermediarioDTO();

                recepcionIntermediarioDTO.setCodIntermediario("0000045698");
                // recepcionIntermediarioDTO.setIdParticipante("");
                recepcionIntermediarioDTO.setCveTipoIntermediario("1");
                // recepcionIntermediarioDTO.setCveTipoBaseComision("");
                recepcionIntermediarioDTO.setMtoBaseComision(new BigDecimal(1200.45));
                // recepcionIntermediarioDTO.setMtoSobreComision(new BigDecimal(0.00));
                recepcionIntermediarioDTO.setMtoCesionComision(new BigDecimal(0.00));
                // recepcionIntermediarioDTO.setPctParticipComision(new BigDecimal(0.00));
                recepcionIntermediarioDTO.setPctComision(new BigDecimal(2.00));
                // recepcionIntermediarioDTO.setPctCesionComision(new BigDecimal(0.00));
                // recepcionIntermediarioDTO.setPctSobreComision(new BigDecimal(0.00));
                recepcionIntermediarioDTO.setPersonalidadJuridica("F");
               
               
//              recepcionIntermediarioDTOList.add(recepcionIntermediarioDTO);
               
//              recepcionEstructuraIntermediarioDTO.setIntermediario(recepcionIntermediarioDTOList);
               
//              recepcionCoberturaContableDTO.setEstructuraIntermediario(recepcionEstructuraIntermediarioDTO);
               
                recepcionCoberturaContableDTOList.add(recepcionCoberturaContableDTO);
               
                recepcionFraccionDTO.setCoberturasContables(recepcionCoberturaContableDTOList);
               
                recepcionFraccionDTOList.add(recepcionFraccionDTO);
               
                recepcionEstructuraFraccionDTO.setFracciones(recepcionFraccionDTOList);
               
                recepcionDocumentoCobroDTO.setEstructuraFraccion(recepcionEstructuraFraccionDTO);
               
                poliza.setDocumentoCobro(recepcionDocumentoCobroDTO);

               
               
                try{
                       
                        documentoService.registerEmission(poliza);/*, TipoDocumento.BASE);*/
                       
                }catch(Exception e){
                        System.out.println(e);
                }
               

        }

El código del método de donde quiero obtener el objeto policyEntity.

/**
         * Persiste la informacion de una poliza
         *
         * @param document
         *            pojo con la informacion a persistir
         *
         */

        @Transactional
        private void registerEmisionPolicy(final RecepcionPolizaDTO policy) {
                final PolizaId polizaId = new PolizaId();

                polizaId.setNumPoliza(StringUtils.hasText(policy.getNumPoliza()) ? policy
                                .getNumPoliza() : StringUtils.hasText(policy
                                .getNumPolizaGrupo()) ? policy.getNumPolizaGrupo()
                                : policy.getIdPolizaProvisional());

                polizaId.setCveSistema(policy.getCveSistema());
                if (polizaDao.exists(polizaId)) {
                        throw new MiddlewareException(CodigoError.ACP03);
                }
                final Poliza policyEntity;
                if (StringUtils.hasText(policy.getNumPoliza())) {
                        policyEntity = this.dozerAssembler.assembly(policy, Poliza.class,
                                        "polizaBase");
                        if (StringUtils.hasText(policy.getNumPolizaGrupo())) {
                                policyEntity.setPoliza(getGroupPolicy(policy));
                        }
                        policyEntity.getRenovacionPolizas().add(
                                        this.dozerAssembler.assembly(policy,
                                                        RenovacionPoliza.class, "renovacion"));
                        policyEntity.setEstPoliza(EstatusPolizaDocumento
                                        .stateInitial(Proceso.EMISION));
                        policyEntity
                                        .setCveMotivoEstPoliza(MotivoEstatusPolizaDocumento.EMISION);
                        policyEntity.setBanPolizaGrupo(Boolean.FALSE);
                } else {
                        policyEntity = getGroupPolicy(policy);
                        policyEntity.getRenovacionPolizas().add(
                                        this.dozerAssembler.assembly(policy,
                                                        RenovacionPoliza.class, "renovacionGrupo"));
                }
                log.debug(":::: PERSISTIENDO POLIZA/RENOVACION " + policyEntity);
                polizaDao.save(policyEntity);
        }

Quisiera poder obtener el objeto que se esta guardando para poder meterlo tmb en una tabla de histórico.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Error con mi copy & paste: Perdón el código de mi método de AOP

Perdon amigos, el metodo que pegue como AOP es mi Test. =D
Este es el bueno... el que tiene el PointCut y en donde requiero traer el objeto policyEntity.

@Before("execution(* mx.com.gnp.evolucionoperativa.apibusiness.admncentralpolizas.DocumentoService.*registerEmission(..))")
        public void registrarEmisionPolizaBefore(JoinPoint joinPoint) throws Throwable{
               
                System.out.println("**************************AOP********************************");
                System.out.println("registrarEmisionPolizaBefore() is running!");
                System.out.println("metodo: " + joinPoint.getSignature().getName());
                System.out.println("*************************************************************");
               
        }

G R A C I A S.