List of usage examples for org.apache.commons.beanutils PropertyUtils copyProperties
public static void copyProperties(Object dest, Object orig) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
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
.
From source file:com.feilong.core.bean.PropertyUtil.java
/** * <code>fromObj</code>,?<code>toObj</code>. * /*from w ww .j a v a 2 s .c o m*/ * <h3>??:</h3> * <blockquote> * <p> * <code>includePropertyNames</code>?,{@link PropertyUtils#copyProperties(Object, Object)},<br> * ? {@link #getProperty(Object, String)}?{@link #setProperty(Object, String, Object)}<code>toObj</code> * </p> * </blockquote> * * <h3>?:</h3> * * <blockquote> * * <ol> * <li> <code>toObj</code> null, {@link NullPointerException}</li> * <li> <code>fromObj</code> null, {@link NullPointerException}</li> * <li><code>includePropertyNames</code>,? <code>fromObj</code>??,</li> * <li><code>includePropertyNames</code>,? <code>fromObj</code>, <code>toObj</code>??,,see * {@link PropertyUtilsBean#setSimpleProperty(Object, String, Object) copyProperties} Line2078</li> * <li>Date,<span style="color:red">??converter</span></li> * <li>?copy <span style="color:red">?</span>,??2Bean???ref,??, .</li> * </ol> * </blockquote> * * <h3>:</h3> * * <blockquote> * * <pre class="code"> * User oldUser = new User(); * oldUser.setId(5L); * oldUser.setMoney(new BigDecimal(500000)); * oldUser.setDate(new Date()); * oldUser.setNickName(ConvertUtil.toArray("feilong", "", "venusdrogon")); * * User newUser = new User(); * PropertyUtil.copyProperties(newUser, oldUser, "date", "money", "nickName"); * LOGGER.debug(JsonUtil.format(newUser)); * </pre> * * : * * <pre class="code"> * { "date": "2015-09-06 13:27:43", "id": 0, "nickName": [ "feilong", "", "venusdrogon" ], "age": 0, "name": "feilong", "money": 500000, "userInfo": {"age": 0} } * </pre> * * </blockquote> * * <h3>{@link BeanUtils#copyProperties(Object, Object)} {@link PropertyUtils#copyProperties(Object, Object)}</h3> * * <blockquote> * <ul> * <li>{@link BeanUtils#copyProperties(Object, Object) BeanUtils} ???,??JavaBean?????,???,<br> * {@link PropertyUtils#copyProperties(Object, Object) PropertyUtils}??,.</li> * <li>commons-beanutils v1.9.0? BeanUtils?? null,PropertyUtils?? null.<br> * (<b>:</b>commons-beanutils v1.9.0+?,BeanUtilsBean.copyProperties() no longer throws a ConversionException for null properties * of certain data types),?commons-beanutils * <a href="http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/RELEASE-NOTES.txt">RELEASE-NOTES.txt</a></li> * </ul> * </blockquote> * * @param toObj * * @param fromObj * * @param includePropertyNames * ???,(can be nested/indexed/mapped/combo)<br> * nullempty, {@link PropertyUtils#copyProperties(Object, Object)} * @see #setProperty(Object, String, Object) * @see BeanUtil#copyProperties(Object, Object, String...) * @see org.apache.commons.beanutils.PropertyUtilsBean#copyProperties(Object, Object) * @see <a href="http://www.cnblogs.com/kaka/archive/2013/03/06/2945514.html">Bean??(Apache BeanUtils?PropertyUtils,Spring * BeanUtils,Cglib BeanCopier)</a> * @since 1.4.1 */ public static void copyProperties(Object toObj, Object fromObj, String... includePropertyNames) { Validate.notNull(toObj, "toObj [destination bean] not specified!"); Validate.notNull(fromObj, "fromObj [origin bean] not specified!"); if (isNullOrEmpty(includePropertyNames)) { try { PropertyUtils.copyProperties(toObj, fromObj); return; } catch (Exception e) { throw new BeanUtilException(e); } } for (String propertyName : includePropertyNames) { Object value = getProperty(fromObj, propertyName); setProperty(toObj, propertyName, value); } }
From source file:com.jdon.model.ModelHandler.java
/** * for old version below 1.4// w w w. java 2s.c o m */ public void formCopyToModel(ModelForm form, Model model) throws Exception { try { PropertyUtils.copyProperties(model, form); } catch (Exception e) { String error = " ModelForm:" + form.getClass().getName() + " copy To Model:" + model.getClass().getName() + " error:" + e; Debug.logError(error, module); throw new Exception(error); } }
From source file:com.floreantpos.bo.ui.explorer.ModifierExplorer.java
private void createActionButtons() { ExplorerButtonPanel explorerButtonPanel = new ExplorerButtonPanel(); JButton editButton = explorerButtonPanel.getEditButton(); JButton addButton = explorerButtonPanel.getAddButton(); JButton deleteButton = explorerButtonPanel.getDeleteButton(); JButton duplicateButton = new JButton(POSConstants.DUPLICATE); addButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { MenuModifierForm editor = new MenuModifierForm(); BeanEditorDialog dialog = new BeanEditorDialog(POSUtil.getBackOfficeWindow(), editor); dialog.open();// ww w .j a v a 2s . c o m if (dialog.isCanceled()) return; MenuModifier modifier = (MenuModifier) editor.getBean(); tableModel.addModifier(modifier); } catch (Throwable x) { BOMessageDialog.showError(com.floreantpos.POSConstants.ERROR_MESSAGE, x); } } }); editButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { doEditSelectedMenuModifier(); } }); deleteButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { int index = table.getSelectedRow(); if (index < 0) return; index = table.convertRowIndexToModel(index); if (ConfirmDeleteDialog.showMessage(ModifierExplorer.this, com.floreantpos.POSConstants.CONFIRM_DELETE, com.floreantpos.POSConstants.DELETE) != ConfirmDeleteDialog.NO) { MenuModifier category = (MenuModifier) tableModel.getRowData(index); ModifierDAO modifierDAO = new ModifierDAO(); modifierDAO.delete(category); tableModel.deleteModifier(category, index); } } catch (Throwable x) { BOMessageDialog.showError(com.floreantpos.POSConstants.ERROR_MESSAGE, x); } } }); duplicateButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { int index = table.getSelectedRow(); if (index < 0) return; index = table.convertRowIndexToModel(index); MenuModifier existingModifier = (MenuModifier) tableModel.getRowData(index); MenuModifier newMenuModifier = new MenuModifier(); PropertyUtils.copyProperties(newMenuModifier, existingModifier); newMenuModifier.setId(null); String newName = doDuplicateName(existingModifier); newMenuModifier.setName(newName); newMenuModifier.setModifierGroup(existingModifier.getModifierGroup()); newMenuModifier.setSortOrder(existingModifier.getSortOrder()); newMenuModifier.setTax(existingModifier.getTax()); newMenuModifier.setButtonColor(existingModifier.getButtonColor()); newMenuModifier.setTextColor(existingModifier.getTextColor()); newMenuModifier.setShouldPrintToKitchen(existingModifier.isShouldPrintToKitchen()); MenuModifierForm editor = new MenuModifierForm(newMenuModifier); BeanEditorDialog dialog = new BeanEditorDialog(POSUtil.getBackOfficeWindow(), editor); dialog.open(); if (dialog.isCanceled()) return; MenuModifier menuModifier = (MenuModifier) editor.getBean(); tableModel.addModifier(menuModifier); table.getSelectionModel().addSelectionInterval(tableModel.getRowCount() - 1, tableModel.getRowCount() - 1); table.scrollRowToVisible(tableModel.getRowCount() - 1); } catch (Throwable x) { BOMessageDialog.showError(POSConstants.ERROR_MESSAGE, x); } } }); TransparentPanel panel = new TransparentPanel(); panel.add(addButton); panel.add(editButton); panel.add(deleteButton); panel.add(duplicateButton); add(panel, BorderLayout.SOUTH); }
From source file:br.gov.jfrj.siga.dp.dao.CpDaoTest.java
public void testAtualizarGrupoComAlteracao() throws AplicacaoException, Exception, IllegalAccessException { dao.iniciarTransacao();//from www . j a v a 2 s . c o m CpGrupo grpIni = dao.listarGruposDeEmail().get(0); CpGrupo grp = (CpGrupo) Objeto.getImplementation(dao.consultar(grpIni.getId(), CpGrupo.class, false)); CpGrupo grpNovo = ((CpGrupo) Objeto.getImplementation(grp)).getClass().newInstance(); PropertyUtils.copyProperties(grpNovo, grp); grpNovo.setIdGrupo(null); grpNovo.setDscGrupo(grp.getDscGrupo() + "."); CpGrupo grpRecebido = (CpGrupo) dao.gravarComHistorico(grpNovo, grp, null, null); assertEquals(grpRecebido, grpNovo); }
From source file:jp.terasoluna.fw.collector.db.Queueing1NRelationResultHandlerImpl.java
/** * ?handleResult???<code>Row</code>??? *//* w ww . j a v a2s. c o m*/ @Override public void delayCollect() { if (this.prevRow == null) { return; } if (Thread.currentThread().isInterrupted()) { return; } try { // ?? Object copy = BeanUtils.cloneBean(this.prevRow); PropertyUtils.copyProperties(this.prevRow, this.prevRow.getClass().newInstance()); if (this.daoCollector != null) { // ????1??? this.daoCollector.addQueue(new DataValueObject(copy, this.dataCount.incrementAndGet())); } } catch (IllegalAccessException e) { throw new SystemException(e); } catch (InstantiationException e) { throw new SystemException(e); } catch (InvocationTargetException e) { throw new SystemException(e); } catch (NoSuchMethodException e) { throw new SystemException(e); } catch (InterruptedException e) { if (LOGGER.isTraceEnabled()) { LOGGER.trace(LogId.TAL041002, Thread.currentThread().getName()); } // InterruptedException?????? // ????????????????????? Thread.currentThread().interrupt(); } }
From source file:au.com.cybersearch2.classyjpa.entity.ObjectMonitor.java
/** * Merge entity objects. Performs copy using reflection. * @param dest Entity to be updated//from ww w.j a v a2 s .co m * @param orig Source entity */ private static <T> void mergeObjects(T dest, T orig) { try { PropertyUtils.copyProperties(dest, orig); } catch (IllegalAccessException e) { throw createReflectionErrorException("refresh", e.toString()); } catch (InvocationTargetException e) { throw createReflectionErrorException("refresh", e.getCause() == null ? e.toString() : e.getCause().toString()); } catch (NoSuchMethodException e) { throw createReflectionErrorException("refresh", e.toString()); } }
From source file:com.utest.webservice.builders.Builder.java
protected void populateIdentityAndTimeline(BaseInfo result, final To object, final UriBuilder ub, Object... uriBuilderArgs) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { ResourceIdentity resourceIdentity = new ResourceIdentity(); PropertyUtils.copyProperties(resourceIdentity, object); result.setResourceIdentity(resourceIdentity); // populate resource url if it's defined String resourcePath = null;/*w w w .j av a 2 s . c om*/ String resourceName = object.getClass().getSimpleName().toLowerCase(); resourcePath = getResourcePath(resourceName); if (resourcePath != null) { resourceIdentity.setUrl(ub.clone().path(resourcePath).build(resourceIdentity.getId()).toString()); } if (object instanceof TimelineVersionable) { Timeline timeline = new Timeline(); PropertyUtils.copyProperties(timeline, object); result.setTimeline(timeline); } }
From source file:com.bstek.dorado.util.proxy.MethodInterceptorDispatcher.java
protected Object getObjectForSerialization(Object object) throws Exception { Class<?> cl = ProxyBeanUtils.getProxyTargetType(object); if (cl != object.getClass()) { Object beanForSerialization = cl.newInstance(); PropertyUtils.copyProperties(beanForSerialization, object); return beanForSerialization; } else {/* www . ja v a 2 s. com*/ return object; } }
From source file:com.jdon.model.ModelHandler.java
/** * ModelForm object's data transfer to Model object * //from ww w. j a v a2s .c om * default implemention is copy mapping between with them; * * another implemention: String propertyName = * StringUtil.getLastString(model.getClass().getName()); Model hasDataModel * = PropertyUtils.getProperty(form, propertyName); model = hasDataModel; * * extends this class , and override this method * * @param model * @param form * @throws java.lang.Exception */ public void formCopyToModelIF(ModelForm form, Object model) throws Exception { if (model == null || form == null) return; if (model instanceof Model) { // for below 1.4 version formCopyToModel(form, (Model) model); return; } try { PropertyUtils.copyProperties(model, form); } catch (InvocationTargetException ie) { String error = "error happened in getXXX method of ModelForm:" + form.getClass().getName() + " error:" + ie; Debug.logError(error, module); throw new Exception(error); } catch (Exception e) { String error = " ModelForm:" + form.getClass().getName() + " copy To Model:" + model.getClass().getName() + " error:" + e; Debug.logError(error, module); throw new Exception(error); } }
From source file:com.jdon.strutsutil.FormBeanUtil.java
/** * create a EventModel from a existed ModelForm. it is only for * create/edit/delete of ModelSaveAction *///w w w. j av a 2s.c o m public static EventModel createEvent(ModelForm form, Object model) throws Exception { EventModel em = new EventModel(); try { PropertyUtils.copyProperties(model, form); em.setModelIF(model); String action = form.getAction(); em.setActionName(action); em.setActionType(FormBeanUtil.actionTransfer(action)); } catch (Exception ex) { Debug.logError("[JdonFramework]create Event error:" + ex, module); throw new Exception(ex); } return em; }