Example usage for org.apache.commons.beanutils PropertyUtils copyProperties

List of usage examples for org.apache.commons.beanutils PropertyUtils copyProperties

Introduction

In this page you can find the example usage for org.apache.commons.beanutils PropertyUtils copyProperties.

Prototype

public static void copyProperties(Object dest, Object orig)
        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException 

Source Link

Document

Copy property values from the "origin" bean to the "destination" bean for all cases where the property names are the same (even though the actual getter and setter methods might have been customized via BeanInfo classes).

For more details see PropertyUtilsBean.

Usage

From source file:com.jada.order.document.InvoiceEngine.java

public void saveOrder() throws Exception {
    EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
    if (masterHeader == null
            || !masterHeader.getRecUpdateDatetime().equals(invoiceHeader.getRecUpdateDatetime())) {
        if (invoiceHeader.getInvoiceNum() == null) {
            invoiceHeader.setInvoiceNum(
                    generateNumber(orderHeader.getSiteDomain().getSite(), Constants.SEQUENCE_INVOICE));
        }//from  w w w .  j av  a2s .c  om
        if (masterHeader == null) {
            masterHeader = new InvoiceHeader();
        }
        masterHeader.setInvoiceNum(invoiceHeader.getInvoiceNum());
        masterHeader.setShippingTotal(invoiceHeader.getShippingTotal());
        masterHeader.setInvoiceTotal(invoiceHeader.getInvoiceTotal());
        masterHeader.setInvoiceStatus(invoiceHeader.getInvoiceStatus());
        masterHeader.setInvoiceDate(invoiceHeader.getInvoiceDate());
        masterHeader.setRecUpdateBy(invoiceHeader.getRecUpdateBy());
        masterHeader.setRecUpdateDatetime(invoiceHeader.getRecUpdateDatetime());
        masterHeader.setRecCreateBy(invoiceHeader.getRecCreateBy());
        masterHeader.setRecCreateDatetime(invoiceHeader.getRecCreateDatetime());
        masterHeader.setOrderHeader(orderHeader);
        orderHeader.getInvoiceHeaders().add(masterHeader);

        // Copy data from invoiceHeader to masterHeader
        if (masterHeader.getInvoiceHeaderId() == null) {
            em.persist(masterHeader);
        }
        invoiceHeader.setInvoiceHeaderId(masterHeader.getInvoiceHeaderId());

        if (masterHeader != null) {
            Iterator<?> taxIterator = masterHeader.getInvoiceTaxes().iterator();
            while (taxIterator.hasNext()) {
                InvoiceDetailTax invoiceDetailTax = (InvoiceDetailTax) taxIterator.next();
                if (invoiceDetailTax.getInvoiceDetail() != null) {
                    continue;
                }
                em.remove(invoiceDetailTax);
                taxIterator.remove();
            }
        }

        Iterator<?> taxIterator = invoiceHeader.getInvoiceTaxes().iterator();
        while (taxIterator.hasNext()) {
            InvoiceDetailTax invoiceDetailTax = (InvoiceDetailTax) taxIterator.next();
            if (invoiceDetailTax.getInvoiceDetail() != null) {
                continue;
            }
            InvoiceDetailTax masterTax = new InvoiceDetailTax();
            //            masterTax.setInvoiceDetailTaxId(invoiceDetailTax.getInvoiceDetailTaxId());
            masterTax.setTaxName(invoiceDetailTax.getTaxName());
            masterTax.setTaxAmount(invoiceDetailTax.getTaxAmount());
            masterTax.setRecUpdateBy(invoiceDetailTax.getRecUpdateBy());
            masterTax.setRecUpdateDatetime(invoiceDetailTax.getRecUpdateDatetime());
            masterTax.setRecCreateBy(invoiceDetailTax.getRecCreateBy());
            masterTax.setRecCreateDatetime(invoiceDetailTax.getRecCreateDatetime());
            masterTax.setTax(invoiceDetailTax.getTax());
            masterTax.setInvoiceDetail(null);
            masterTax.setInvoiceHeader(masterHeader);
            em.persist(masterTax);
        }
    }

    Iterator<?> iterator = masterHeader.getInvoiceDetails().iterator();
    while (iterator.hasNext()) {
        InvoiceDetail masterDetail = (InvoiceDetail) iterator.next();
        Iterator<?> taxIterator = masterDetail.getInvoiceDetailTaxes().iterator();
        while (taxIterator.hasNext()) {
            InvoiceDetailTax masterDetailTax = (InvoiceDetailTax) taxIterator.next();
            em.remove(masterDetailTax);
            taxIterator.remove();
        }
        em.remove(masterDetail);
        iterator.remove();
    }

    iterator = invoiceHeader.getInvoiceDetails().iterator();
    while (iterator.hasNext()) {
        InvoiceDetail invoiceDetail = (InvoiceDetail) iterator.next();
        InvoiceDetail masterDetail = new InvoiceDetail();
        masterDetail.setInvoiceHeader(masterHeader);
        masterDetail.setSeqNum(invoiceDetail.getSeqNum());
        masterDetail.setItemInvoiceQty(invoiceDetail.getItemInvoiceQty());
        masterDetail.setItemInvoiceAmount(invoiceDetail.getItemInvoiceAmount());
        masterDetail.setRecUpdateBy(invoiceDetail.getRecUpdateBy());
        masterDetail.setRecUpdateDatetime(invoiceDetail.getRecUpdateDatetime());
        masterDetail.setRecCreateBy(invoiceDetail.getRecCreateBy());
        masterDetail.setRecCreateDatetime(invoiceDetail.getRecCreateDatetime());
        masterDetail.setOrderItemDetail(invoiceDetail.getOrderItemDetail());
        em.persist(masterDetail);
        masterHeader.getInvoiceDetails().add(masterDetail);

        Iterator<?> taxIterator = invoiceDetail.getInvoiceDetailTaxes().iterator();
        while (taxIterator.hasNext()) {
            InvoiceDetailTax invoiceDetailTax = (InvoiceDetailTax) taxIterator.next();
            InvoiceDetailTax masterTax = new InvoiceDetailTax();
            masterTax.setTaxName(invoiceDetailTax.getTaxName());
            masterTax.setTaxAmount(invoiceDetailTax.getTaxAmount());
            masterTax.setRecUpdateBy(invoiceDetailTax.getRecUpdateBy());
            masterTax.setRecUpdateDatetime(invoiceDetailTax.getRecUpdateDatetime());
            masterTax.setRecCreateBy(invoiceDetailTax.getRecCreateBy());
            masterTax.setRecCreateDatetime(invoiceDetailTax.getRecCreateDatetime());
            masterTax.setInvoiceDetail(masterDetail);
            masterTax.setTax(invoiceDetailTax.getTax());
            masterDetail.getInvoiceDetailTaxes().add(masterTax);
            masterTax.setInvoiceHeader(masterHeader);
            em.persist(masterTax);
        }
    }

    PaymentTran paymentTran = invoiceHeader.getPaymentTran();
    PaymentTran masterPaymentTran = null;
    if (masterHeader != null) {
        masterPaymentTran = masterHeader.getPaymentTran();
    }
    if (isSavePaymentTran(paymentTran, masterPaymentTran)) {
        if (masterPaymentTran == null) {
            masterPaymentTran = new PaymentTran();
        }
        PropertyUtils.copyProperties(masterPaymentTran, paymentTran);
        masterHeader.setPaymentTran(masterPaymentTran);
        if (masterPaymentTran.getPaymentTranId() == null) {
            em.persist(masterPaymentTran);
        }
    }

    PaymentTran voidPaymentTran = invoiceHeader.getVoidPaymentTran();
    masterPaymentTran = null;
    if (masterHeader != null) {
        masterPaymentTran = masterHeader.getVoidPaymentTran();
    }
    if (isSavePaymentTran(voidPaymentTran, masterPaymentTran)) {
        if (masterPaymentTran == null) {
            masterPaymentTran = new PaymentTran();
        }
        PropertyUtils.copyProperties(masterPaymentTran, voidPaymentTran);
        masterHeader.setVoidPaymentTran(masterPaymentTran);
        if (masterPaymentTran.getPaymentTranId() == null) {
            em.persist(masterPaymentTran);
        }
    }
}

From source file:com.jada.admin.site.SiteLoader.java

public void loadCreditCard() throws Exception {
    EntityManager em = JpaConnection.getInstance().getCurrentEntityManager();
    String sql = "from CreditCard where siteId = :siteId order by creditCardId";
    Query query = em.createQuery(sql);
    query.setParameter("siteId", Constants.SITE_SYSTEM);
    Iterator<?> iterator = query.getResultList().iterator();
    while (iterator.hasNext()) {
        CreditCard master = (CreditCard) iterator.next();
        CreditCard creditCard = new CreditCard();
        PropertyUtils.copyProperties(creditCard, master);
        creditCard.setSite(site);//  w  w w .j av a 2 s. com
        creditCard.setCreditCardId(null);
        creditCard.setRecUpdateBy(userId);
        creditCard.setRecUpdateDatetime(new Date(System.currentTimeMillis()));
        creditCard.setRecCreateBy(userId);
        creditCard.setRecCreateDatetime(new Date(System.currentTimeMillis()));
        em.persist(creditCard);
    }
}

From source file:jp.co.opentone.bsol.linkbinder.service.correspon.impl.CorresponSearchServiceImplTest.java

/**
 * ZIP?.//from   w w w .j  av a2s.c o m
 */
@Test
public void testGenerateZip() throws Exception {
    MockAbstractService.RET_CURRENT_PROJECT_ID = "PJ1";

    //  ?????
    //  ???????????
    //  ????
    Correspon noNotAssigned = new Correspon();
    PropertyUtils.copyProperties(noNotAssigned, list.get(list.size() - 1));
    noNotAssigned.setCorresponNo(null);
    noNotAssigned.setId(Long.valueOf(list.size() + 1));

    list.add(noNotAssigned);

    Correspon c = new Correspon();
    c.setId(7L);
    c.setCorresponNo("YOC:OT:BUILDING-00007");
    CorresponGroup from = new CorresponGroup();
    from.setId(new Long(6L));
    from.setName("YOC:BUILDING");
    c.setFromCorresponGroup(from);
    c.setSubject("Mock");
    List<AddressCorresponGroup> addressGroups = new ArrayList<AddressCorresponGroup>();
    AddressCorresponGroup addressGroup = new AddressCorresponGroup();
    CorresponGroup group = new CorresponGroup();
    group.setId(2L);
    group.setName("YOC:IT");
    addressGroup.setCorresponGroup(group);
    addressGroup.setAddressType(AddressType.TO);
    addressGroups.add(addressGroup);
    addressGroup = new AddressCorresponGroup();
    group = new CorresponGroup();
    group.setId(2L);
    group.setName("TOK:BUILDING");
    addressGroup.setCorresponGroup(group);
    addressGroup.setAddressType(AddressType.CC);
    addressGroups.add(addressGroup);
    c.setAddressCorresponGroups(addressGroups);
    CorresponType ct = new CorresponType();
    ct.setId(new Long(1L));
    ct.setCorresponType("Request");
    c.setCorresponType(ct);
    c.setWorkflowStatus(WorkflowStatus.ISSUED);
    c.setIssuedAt(new GregorianCalendar(2009, 3, 5, 1, 1, 1).getTime());
    c.setCreatedAt(new GregorianCalendar(2009, 3, 1, 1, 1, 1).getTime());
    c.setUpdatedAt(new GregorianCalendar(2009, 3, 10, 10, 10, 10).getTime());
    User u = new User();
    u.setEmpNo("00001");
    u.setNameE("Test User");
    c.setIssuedBy(u);
    c.setCreatedBy(u);
    c.setUpdatedBy(u);
    c.setCorresponStatus(CorresponStatus.OPEN);
    c.setCustomField1Label("FIELD1");
    c.setCustomField1Value("VALUE1");
    c.setCustomField2Label("FIELD2");
    c.setCustomField2Value("VALUE2");
    c.setCustomField3Label("FIELD3");
    c.setCustomField3Value("VALUE3");
    c.setCustomField4Label("FIELD4");
    c.setCustomField4Value("VALUE4");
    c.setCustomField5Label("FIELD5");
    c.setCustomField5Value("VALUE5");
    c.setCustomField6Label("FIELD6");
    c.setCustomField6Value("VALUE6");
    c.setCustomField7Label("FIELD7");
    c.setCustomField7Value("VALUE7");
    c.setCustomField8Label("FIELD8");
    c.setCustomField8Value("VALUE8");
    c.setCustomField9Label("FIELD9");
    c.setCustomField9Value("VALUE9");
    c.setCustomField10Label("FIELD10");
    c.setCustomField10Value("VALUE10");
    c.setWorkflows(new ArrayList<Workflow>());
    c.setPreviousRevCorresponId(null);
    group = new CorresponGroup();
    group.setName("YOC:IT");
    c.setToCorresponGroup(group);
    c.setToCorresponGroupCount(2L);
    c.setIssuedAt(null);
    c.setIssuedBy(null);
    c.setReplyRequired(null);
    c.setDeadlineForReply(null);
    list.add(c);

    MockCorresponService.RET_FIND = list;
    MockAbstractService.CORRESPONS = list;
    byte[] actual = service.generateZip(list);

    ByteArrayInputStream bi = new ByteArrayInputStream(actual);
    ZipInputStream zis = new ZipInputStream(bi);
    byte[] b = new byte[1024];
    StringBuilder sb = new StringBuilder();
    String[] expFileNames = { "PJ1_YOC-OT-BUILDING-00001(0000000001).html",
            "PJ1_YOC-OT-BUILDING-00002(0000000002).html", "PJ1_YOC-OT-BUILDING-00003(0000000003).html",
            "PJ1_YOC-OT-BUILDING-00001-001(0000000004).html", "PJ1_YOC-OT-BUILDING-00001-002(0000000005).html",
            "PJ1_(0000000006).html", "PJ1_YOC-OT-BUILDING-00007(0000000007).html" };
    int index = 0;
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat f2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        for (ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) {
            String expFileName = expFileNames[index];
            assertEquals(expFileName, ze.getName());
            if (ze.isDirectory()) {
                continue;
            }

            c = list.get(index);
            int i;
            while ((i = zis.read(b, 0, b.length)) != -1) {
                sb.append(new String(b, 0, i));
            }
            String html = sb.toString();

            // ??script????????
            assertTrue(html.contains("<body>"));
            assertFalse(html.contains(">Print</a>"));
            assertFalse(html.contains(">Close</a>"));

            // ???
            assertTrue(c.getId().toString(), html.contains(getExpectedString(c.getId().toString())));
            assertTrue(c.getCorresponStatus().getLabel(),
                    html.contains(getExpectedHTMLString(c.getCorresponStatus().getLabel())));

            //  ?????
            //  ?????????
            if (c.getCorresponNo() == null) {
                assertTrue(c.getCorresponNo(),
                        html.contains(getExpectedHTMLString(CorresponPageFormatter.DEFAULT_CORRESPON_NO)));
            } else {
                assertTrue(c.getCorresponNo(), html.contains(getExpectedHTMLString(c.getCorresponNo())));
            }

            assertTrue(c.getWorkflowStatus().getLabel(),
                    html.contains(getExpectedHTMLString(c.getWorkflowStatus().getLabel())));
            if (c.getParentCorresponId() != null) {
                assertTrue(c.getParentCorresponNo(),
                        html.contains(getExpectedHTMLString(c.getParentCorresponNo())));
            }
            if (c.getPreviousRevCorresponId() != null) {
                assertTrue(c.getPreviousRevCorresponNo(),
                        html.contains(getExpectedHTMLString(c.getPreviousRevCorresponNo())));
            }
            assertTrue(c.getFromCorresponGroup().getName() + " " + index,
                    html.contains(getExpectedString(c.getFromCorresponGroup().getName())));
            if (c.getAddressCorresponGroups() != null) {
                for (AddressCorresponGroup addressCorresponGroup : c.getAddressCorresponGroups()) {
                    assertTrue(addressCorresponGroup.getCorresponGroup().getName(),
                            html.contains(addressCorresponGroup.getCorresponGroup().getName()));
                    if (addressCorresponGroup.getUsers() == null) {
                        continue;
                    }
                    for (AddressUser aUser : addressCorresponGroup.getUsers()) {
                        if (addressCorresponGroup.isTo() && aUser.isAttention()) {
                            assertTrue(aUser.getUser().getLabel(), html.contains(aUser.getUser().getLabel()));
                            if (aUser.getPersonInCharges() != null) {
                                assertTrue(aUser.getPersonInCharges().get(0).getUser().getLabel(),
                                        html.contains(aUser.getPersonInCharges().get(0).getUser().getLabel()));
                            }
                        } else if (addressCorresponGroup.isTo() && !aUser.isAttention()) {
                            assertFalse(aUser.getUser().getLabel(), html.contains(aUser.getUser().getLabel()));
                        } else if (addressCorresponGroup.isCc() && aUser.isCc()) {
                            assertTrue(aUser.getUser().getLabel(), html.contains(aUser.getUser().getLabel()));
                        }
                    }
                }
            }
            assertTrue(c.getCorresponType().getName(),
                    html.contains(getExpectedHTMLString(c.getCorresponType().getName())));
            assertTrue(c.getSubject(), html.contains(getExpectedHTMLString(c.getSubject())));
            assertTrue(c.getBody(), html.contains(getExpectedHTMLString(c.getBody())));
            if (ReplyRequired.YES.equals(c.getReplyRequired())) {
                assertTrue(c.getDeadlineForReply().toString(),
                        html.contains(f.format(c.getDeadlineForReply())));
            }
            if (c.getFile1FileName() != null) {
                assertTrue(c.getFile1FileName(), html.contains(c.getFile1FileName()));
            }
            if (c.getFile2FileName() != null) {
                assertTrue(c.getFile2FileName(), html.contains(c.getFile2FileName()));
            }
            if (c.getFile3FileName() != null) {
                assertTrue(c.getFile3FileName(), html.contains(c.getFile3FileName()));
            }
            if (c.getFile4FileName() != null) {
                assertTrue(c.getFile4FileName(), html.contains(c.getFile4FileName()));
            }
            if (c.getFile5FileName() != null) {
                assertTrue(c.getFile5FileName(), html.contains(c.getFile5FileName()));
            }
            if (c.getCustomField1Label() != null) {
                assertTrue(c.getCustomField1Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField1Label())));
                assertTrue(c.getCustomField1Value(), html.contains(c.getCustomField1Value()));
            }
            if (c.getCustomField2Label() != null) {
                assertTrue(c.getCustomField2Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField2Label())));
                assertTrue(c.getCustomField2Value(), html.contains(c.getCustomField2Value()));
            }
            if (c.getCustomField3Label() != null) {
                assertTrue(c.getCustomField3Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField3Label())));
                assertTrue(c.getCustomField3Value(), html.contains(c.getCustomField3Value()));
            }
            if (c.getCustomField4Label() != null) {
                assertTrue(c.getCustomField4Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField4Label())));
                assertTrue(c.getCustomField4Value(), html.contains(c.getCustomField4Value()));
            }
            if (c.getCustomField5Label() != null) {
                assertTrue(c.getCustomField5Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField5Label())));
                assertTrue(c.getCustomField5Value(), html.contains(c.getCustomField5Value()));
            }
            if (c.getCustomField6Label() != null) {
                assertTrue(c.getCustomField6Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField6Label())));
                assertTrue(c.getCustomField6Value(), html.contains(c.getCustomField6Value()));
            }
            if (c.getCustomField7Label() != null) {
                //  ???HTML??????????...
                //  ????????????????
                //  ?
                //                    assertTrue("" + index + "*"+c.getCustomField7Label()+"*",
                //                        html.contains(getExpectedHTMLString(c.getCustomField7Label())));
                //                    assertTrue(c.getCustomField7Value(),
                //                        html.contains(c.getCustomField7Value()));
            }
            if (c.getCustomField8Label() != null) {
                assertTrue(c.getCustomField8Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField8Label())));
                assertTrue(c.getCustomField8Value(), html.contains(c.getCustomField8Value()));
            }
            if (c.getCustomField9Label() != null) {
                assertTrue(c.getCustomField9Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField9Label())));
                assertTrue(c.getCustomField9Value(), html.contains(c.getCustomField9Value()));
            }
            if (c.getCustomField10Label() != null) {
                assertTrue(c.getCustomField10Label(),
                        html.contains(getExpectedHTMLString(c.getCustomField10Label())));
                assertTrue(c.getCustomField10Value(), html.contains(c.getCustomField10Value()));
            }
            //Created??????????
            //                assertTrue(c.getCreatedAt().toString(),
            //                   html.contains(getExpectedHTMLString(f2.format(c.getCreatedAt()))));
            if (c.getIssuedAt() != null) {
                assertTrue(c.getIssuedAt().toString(),
                        html.contains(getExpectedHTMLString(f2.format(c.getIssuedAt()))));
            }
            assertTrue(c.getUpdatedAt().toString(),
                    html.contains(getExpectedHTMLString(f2.format(c.getUpdatedAt()))));
            //Created??????????
            //                assertTrue(c.getCreatedBy().getNameE() + "/" + c.getCreatedBy().getEmpNo(),
            //                    html.contains(
            //                        c.getCreatedBy().getNameE() + "/" + c.getCreatedBy().getEmpNo()));
            if ((c.getIssuedBy() != null) && (c.getIssuedBy().getNameE() != null)
                    && (c.getIssuedBy().getEmpNo() != null)) {
                assertTrue(c.getIssuedBy().getNameE() + "/" + c.getIssuedBy().getEmpNo(),
                        html.contains(c.getIssuedBy().getNameE() + "/" + c.getIssuedBy().getEmpNo()));
            }
            assertTrue(c.getUpdatedBy().getNameE() + "/" + c.getUpdatedBy().getEmpNo(),
                    html.contains(c.getUpdatedBy().getNameE() + "/" + c.getUpdatedBy().getEmpNo()));
            if (c.getWorkflows() != null) {
                for (Workflow flow : c.getWorkflows()) {
                    assertTrue(flow.getWorkflowNo().toString(),
                            html.contains(getExpectedHTMLString(flow.getWorkflowNo().toString())));
                    assertTrue(flow.getWorkflowType().getLabel(),
                            html.contains(getExpectedHTMLString(flow.getWorkflowType().getLabel())));
                    assertTrue(flow.getUser().getNameE() + "/" + flow.getUser().getEmpNo(), html.contains(
                            getExpectedString(flow.getUser().getNameE() + "/" + flow.getUser().getEmpNo())));
                    assertTrue(flow.getWorkflowProcessStatus().getLabel(),
                            html.contains(getExpectedString(flow.getWorkflowProcessStatus().getLabel())));
                    if (flow.getUpdatedBy() != null) {
                        assertTrue(flow.getUpdatedBy().getNameE() + "/" + flow.getUpdatedBy().getEmpNo(),
                                html.contains(getExpectedString(flow.getUpdatedBy().getNameE() + "/"
                                        + flow.getUpdatedBy().getEmpNo())));
                        assertTrue(flow.getUpdatedAt().toString(),
                                html.contains(f2.format(flow.getUpdatedAt())));
                    }
                    assertTrue(flow.getCommentOn(), html.contains(getExpectedString(flow.getCommentOn())));
                }
            }

            index++;
        }
    } finally {
        zis.close();
        bi.close();
    }
}

From source file:au.org.theark.lims.web.component.subjectlims.lims.biospecimen.form.BiospecimenModalDetailForm.java

/**
 * Takes all details of a biospecimen, copies to a new Biospecimen, then allows editing of details before save
 * /*from   w  w w  .  j  ava2  s .c  o m*/
 * @param target
 */
protected void onCloneBiospecimen(AjaxRequestTarget target) {
    final Biospecimen clonedBiospecimen = cpModel.getObject().getBiospecimen();
    final String clonedBiospecimenUid = clonedBiospecimen.getBiospecimenUid();
    final Biospecimen biospecimen = new Biospecimen();

    try {
        // Copy parent biospecimen details to new biospecimen
        PropertyUtils.copyProperties(biospecimen, clonedBiospecimen);

        // Amend specific fields/detail
        biospecimen.setId(null);

        if (biospecimen.getStudy().getAutoGenerateBiospecimenUid()) {
            biospecimen.setBiospecimenUid(Constants.AUTO_GENERATED);
        } else {
            biospecimen.setBiospecimenUid(null);
        }

        // Cloning not a child biospecimen
        // biospecimen.setParent(clonedBiospecimen);
        // biospecimen.setParentUid(clonedBiospecimen.getBiospecimenUid());

        biospecimen.setSampleType(clonedBiospecimen.getSampleType());
        biospecimen.setBioCollection(clonedBiospecimen.getBioCollection());
        biospecimen.setQuantity(null);
        biospecimen.setUnit(clonedBiospecimen.getUnit());
        biospecimen.setComments("Clone of " + clonedBiospecimenUid);
        biospecimen.setBarcoded(false);
        biospecimen.setQuantity(clonedBiospecimen.getQuantity());
        biospecimen.setUnit(clonedBiospecimen.getUnit());
        biospecimen.setTreatmentType(clonedBiospecimen.getTreatmentType());
        biospecimen.setChildren(new ArrayList<Biospecimen>(0));

        Study studyFromClone = clonedBiospecimen.getStudy();
        // There should be a study and only then do the rest of the code here
        if (studyFromClone != null) {
            Study study = iArkCommonService.getStudy(studyFromClone.getId());
            biospecimen.setStudy(study);
            // Reset the biospecimen detail
            cpModel.getObject().setBiospecimen(biospecimen);

            // Set the bioTransaction detail
            org.apache.shiro.subject.Subject currentUser = SecurityUtils.getSubject();
            cpModel.getObject().getBioTransaction().setRecorder(currentUser.getPrincipal().toString());
            cpModel.getObject().getBioTransaction().setQuantity(null);
            cpModel.getObject().getBioTransaction().setUnit(biospecimen.getUnit());

            enableQuantityTreatment(target);
            CompoundPropertyModel<BiospecimenCustomDataVO> bioCFDataCpModel = new CompoundPropertyModel<BiospecimenCustomDataVO>(
                    new BiospecimenCustomDataVO());
            bioCFDataCpModel.getObject().setBiospecimen(biospecimen);
            bioCFDataCpModel.getObject().setArkFunction(iArkCommonService
                    .getArkFunctionByName(au.org.theark.core.Constants.FUNCTION_KEY_VALUE_BIOSPECIMEN));
            biospecimenCFDataEntryPanel = new BiospecimenCustomDataDataViewPanel("biospecimenCFDataEntryPanel",
                    bioCFDataCpModel).initialisePanel(null);
            arkCrudContainerVo.getDetailPanelFormContainer().addOrReplace(biospecimenCFDataEntryPanel);

            // refresh the bioTransaction panel
            initialiseBioTransactionListPanel();
            arkCrudContainerVo.getDetailPanelFormContainer().addOrReplace(bioTransactionListPanel);

            // refresh the location panel
            cpModel.getObject().setBiospecimenLocationVO(new BiospecimenLocationVO());
            initialiseBiospecimenLocationPanel();
            arkCrudContainerVo.getDetailPanelFormContainer().addOrReplace(biospecimenLocationPanel);
            target.add(biospecimenLocationPanel);

            // Notify in progress
            this.info("Cloning biospecimen " + clonedBiospecimenUid + ", please save to confirm");
            target.add(feedbackPanel);

            // hide button panel
            biospecimenbuttonsPanel.setVisible(false);
            target.add(biospecimenbuttonsPanel);
        } else {
            log.error("Cannot find a study for the cloned biospecimen.");
        }
    } catch (IllegalAccessException e) {
        log.error(e.getMessage());
    } catch (InvocationTargetException e) {
        log.error(e.getMessage());
    } catch (NoSuchMethodException e) {
        log.error(e.getMessage());
    }

}

From source file:au.org.theark.lims.web.component.subjectlims.lims.biospecimen.form.BiospecimenModalDetailForm.java

/**
 * Handle processing or aliquoting of a parent biospecimen. Process essentially changing the type of a parent biospecimen. Aliquot essentially
 * taking an amount from a parent biospecimen.
 * // ww w .j a  va 2  s.c  o  m
 * @param target
 *           AjxaxRequestTarget
 * @param processOrAliquot
 *           indication to whether a process or an aliquot
 * @param comment
 *           comment to add to biospecimen comments
 */
protected void processOrAliquot(AjaxRequestTarget target, String processOrAliquot, String comment) {
    final Biospecimen parentBiospecimen = cpModel.getObject().getBiospecimen();
    final String parentBiospecimenUid = parentBiospecimen.getBiospecimenUid();
    final Biospecimen biospecimen = new Biospecimen();

    cpModel.getObject().setParentBiospecimen(parentBiospecimen);

    try {
        // Copy parent biospecimen details to new biospecimen
        PropertyUtils.copyProperties(biospecimen, parentBiospecimen);

        // Amend specific fields/detail
        biospecimen.setId(null);

        if (biospecimen.getStudy().getAutoGenerateBiospecimenUid()) {
            biospecimen.setBiospecimenUid(Constants.AUTO_GENERATED);
        } else {
            biospecimen.setBiospecimenUid(null);
        }
        /***
         * TRAV TO INVESTIGATE ASAP
        // Cloning not a child biospecimen
        // biospecimen.setParent(clonedBiospecimen);
        // biospecimen.setParentUid(clonedBiospecimen.getBiospecimenUid());
        **/

        biospecimen.setParent(parentBiospecimen);
        biospecimen.setParentUid(parentBiospecimen.getBiospecimenUid());
        biospecimen.setSampleType(parentBiospecimen.getSampleType());
        biospecimen.setBioCollection(parentBiospecimen.getBioCollection());
        biospecimen.setQuantity(null);
        biospecimen.setUnit(parentBiospecimen.getUnit());
        biospecimen.setComments(comment + parentBiospecimenUid);
        biospecimen.setBarcoded(false);
        biospecimen.setTreatmentType(parentBiospecimen.getTreatmentType());
        biospecimen.setChildren(new ArrayList<Biospecimen>(0));

        Study studyFromParent = parentBiospecimen.getStudy();
        // There should be a study and only then do the rest of the code here
        if (studyFromParent != null) {
            Study study = iArkCommonService.getStudy(studyFromParent.getId());
            biospecimen.setStudy(study);
            // Reset the biospecimen detail
            cpModel.getObject().setBiospecimen(biospecimen);
            cpModel.getObject().setBiospecimenProcessing(processOrAliquot);
            // Set the bioTransaction detail
            org.apache.shiro.subject.Subject currentUser = SecurityUtils.getSubject();
            cpModel.getObject().getBioTransaction().setRecorder(currentUser.getPrincipal().toString());
            cpModel.getObject().getBioTransaction().setQuantity(null);
            cpModel.getObject().getBioTransaction().setUnit(biospecimen.getUnit()); //TODO: unit
            enableQuantityTreatment(target);
            CompoundPropertyModel<BiospecimenCustomDataVO> bioCFDataCpModel = new CompoundPropertyModel<BiospecimenCustomDataVO>(
                    new BiospecimenCustomDataVO());
            bioCFDataCpModel.getObject().setBiospecimen(biospecimen);
            bioCFDataCpModel.getObject().setArkFunction(iArkCommonService
                    .getArkFunctionByName(au.org.theark.core.Constants.FUNCTION_KEY_VALUE_BIOSPECIMEN));
            biospecimenCFDataEntryPanel = new BiospecimenCustomDataDataViewPanel("biospecimenCFDataEntryPanel",
                    bioCFDataCpModel).initialisePanel(null);
            arkCrudContainerVo.getDetailPanelFormContainer().addOrReplace(biospecimenCFDataEntryPanel);
            // refresh the bioTransaction panel
            initialiseBioTransactionListPanel();
            arkCrudContainerVo.getDetailPanelFormContainer().addOrReplace(bioTransactionListPanel);
            // refresh the location panel
            cpModel.getObject().setBiospecimenLocationVO(new BiospecimenLocationVO());
            initialiseBiospecimenLocationPanel();
            arkCrudContainerVo.getDetailPanelFormContainer().addOrReplace(biospecimenLocationPanel);
            target.add(biospecimenLocationPanel);
            // Notify in progress
            this.info(processOrAliquot + " biospecimen " + cpModel.getObject().getBiospecimen().getParentUid()
                    + ", please save to confirm");
            target.add(feedbackPanel);

            // hide button panel
            biospecimenbuttonsPanel.setVisible(false);
            target.add(biospecimenbuttonsPanel);
        } else {
            log.error("Cannot find a study for the parent biospecimen.");
        }
    } catch (IllegalAccessException e) {
        log.error(e.getMessage());
    } catch (InvocationTargetException e) {
        log.error(e.getMessage());
    } catch (NoSuchMethodException e) {
        log.error(e.getMessage());
    }
}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

private void copiarModelos(ExClassificacao exClassNovo, ExClassificacao exClassAntigo, Date dt,
        CpIdentidade identidadeCadastrante) throws AplicacaoException {
    try {/*from w w w.  j a va 2  s . c  o m*/
        // classificacao geral
        for (ExModelo modAntigo : exClassAntigo.getExModeloSet()) {
            ExModelo modNovo = new ExModelo();

            PropertyUtils.copyProperties(modNovo, modAntigo);
            modNovo.setIdMod(null);
            modNovo.setExClassificacao(exClassNovo);

            dao().gravarComHistorico(modNovo, modAntigo, dt, identidadeCadastrante);
            if (exClassNovo.getExModeloSet() == null) {
                exClassNovo.setExModeloSet(new HashSet<ExModelo>());
            }
            exClassNovo.getExModeloSet().add(modNovo);

        }

        // classificacao criacao via
        for (ExModelo modAntigo : exClassAntigo.getExModeloCriacaoViaSet()) {
            ExModelo modNovo = new ExModelo();

            PropertyUtils.copyProperties(modNovo, modAntigo);
            modNovo.setIdMod(null);
            modNovo.setExClassCriacaoVia(exClassNovo);

            dao().gravarComHistorico(modNovo, modAntigo, dt, identidadeCadastrante);
            if (exClassNovo.getExModeloCriacaoViaSet() == null) {
                exClassNovo.setExModeloCriacaoViaSet(new HashSet<ExModelo>());
            }
            exClassNovo.getExModeloCriacaoViaSet().add(modNovo);

        }

    } catch (Exception e) {
        throw new AplicacaoException("No foi possvel fazer cpia dos modelos!");
    }
}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

private void copiarVias(ExClassificacao exClassNovo, ExClassificacao exClassAntigo, Date dt,
        CpIdentidade identidadeCadastrante) throws AplicacaoException {
    try {/*  w  w  w . j a v  a 2s  . c  o m*/
        for (ExVia viaAntiga : exClassAntigo.getExViaSet()) {
            if (viaAntiga.isAtivo()) {
                ExVia viaNova = new ExVia();

                PropertyUtils.copyProperties(viaNova, viaAntiga);
                viaNova.setId(null);
                viaNova.setExClassificacao(exClassNovo);

                dao().gravarComHistorico(viaNova, viaAntiga, dt, identidadeCadastrante);
                if (exClassNovo.getExViaSet() == null) {
                    exClassNovo.setExViaSet(new HashSet<ExVia>());
                }
                exClassNovo.getExViaSet().add(viaNova);
            }

        }
    } catch (Exception e) {
        throw new AplicacaoException("No foi possvel fazer cpia das vias!");
    }
}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

public ExClassificacao getCopia(ExClassificacao exClassOrigem) throws AplicacaoException {
    ExClassificacao exClassCopia = new ExClassificacao();
    try {/*  w ww. java  2s  .  c  o m*/

        PropertyUtils.copyProperties(exClassCopia, exClassOrigem);

        // novo id
        exClassCopia.setId(null);
        exClassCopia.setHisDtFim(null);
        exClassCopia.setHisDtIni(null);
        exClassCopia.atribuirAtivo();

        // objeto collection deve ser diferente (mas com mesmos elementos),
        // seno ocorre exception
        // HibernateException:Found shared references to a collection
        Set<ExVia> setExVia = new HashSet<ExVia>();
        exClassCopia.setExViaSet(setExVia);

        Set<ExModelo> setExModelo = new HashSet<ExModelo>();
        exClassCopia.setExModeloSet(setExModelo);

        Set<ExModelo> setExModeloCriacaoVia = new HashSet<ExModelo>();
        exClassCopia.setExModeloCriacaoViaSet(setExModeloCriacaoVia);

        Set<ExClassificacao> setPosteriores = new HashSet<ExClassificacao>();
        exClassCopia.setClassificacoesPosteriores(setPosteriores);

    } catch (Exception e) {
        throw new AplicacaoException("Erro ao copiar as propriedades do modelo anterior.");
    }

    return exClassCopia;
}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

public ExTemporalidade getCopia(ExTemporalidade exTempOrigem) throws AplicacaoException {
    ExTemporalidade exTempCopia = new ExTemporalidade();
    try {/*from   w ww .jav  a 2  s  .  c o  m*/

        PropertyUtils.copyProperties(exTempCopia, exTempOrigem);

        // novo id
        exTempCopia.setId(null);
        exTempCopia.setHisDtFim(null);
        exTempCopia.setHisDtIni(null);
        exTempCopia.atribuirAtivo();
        // objeto collection deve ser diferente (mas com mesmos elementos),
        // seno ocorre exception
        // HibernateException:Found shared references to a collection
        Set<ExVia> setExViaArqCorr = new HashSet<ExVia>();
        Set<ExVia> setExViaArqInterm = new HashSet<ExVia>();
        exTempCopia.setExViaArqCorrenteSet(setExViaArqCorr);
        exTempCopia.setExViaArqIntermediarioSet(setExViaArqInterm);

    } catch (Exception e) {
        throw new AplicacaoException("Erro ao copiar as propriedades do objeto ExTemporalidade.");
    }

    return exTempCopia;

}

From source file:br.gov.jfrj.siga.ex.bl.ExBL.java

public void alterarExTemporalidade(ExTemporalidade exTempNovo, ExTemporalidade exTempAntiga, Date dt,
        CpIdentidade identidadeCadastrante) throws AplicacaoException {

    dao().gravarComHistorico(exTempNovo, exTempAntiga, dt, identidadeCadastrante);

    // copiar Referncias arq corrente
    try {//from  w  ww.ja  v a 2 s.c om
        for (ExVia viaAntiga : exTempAntiga.getExViaArqCorrenteSet()) {
            ExVia viaNova = new ExVia();

            PropertyUtils.copyProperties(viaNova, viaAntiga);
            viaNova.setIdVia(null);
            viaNova.setTemporalidadeCorrente(exTempNovo);

            dao().gravarComHistorico(viaNova, viaAntiga, dt, identidadeCadastrante);
            if (exTempNovo.getExViaArqCorrenteSet() == null) {
                exTempNovo.setExViaArqCorrenteSet(new HashSet<ExVia>());
            }
            exTempNovo.getExViaArqCorrenteSet().add(viaNova);

        }
    } catch (Exception e) {
        throw new AplicacaoException("No foi possvel fazer cpia das vias em arquivo corrente!");
    }

    // copiar Referncias arq intermedirio
    try {
        for (ExVia viaAntiga : exTempAntiga.getExViaArqIntermediarioSet()) {
            ExVia viaNova = new ExVia();

            PropertyUtils.copyProperties(viaNova, viaAntiga);
            viaNova.setIdVia(null);
            viaNova.setTemporalidadeIntermediario(exTempNovo);

            dao().gravarComHistorico(viaNova, viaAntiga, dt, identidadeCadastrante);
            if (exTempNovo.getExViaArqIntermediarioSet() == null) {
                exTempNovo.setExViaArqIntermediarioSet(new HashSet<ExVia>());
            }
            exTempNovo.getExViaArqIntermediarioSet().add(viaNova);

        }
    } catch (Exception e) {
        throw new AplicacaoException("No foi possvel fazer cpia das vias em arquivo intermedirio!");
    }

}