List of usage examples for org.apache.commons.beanutils DynaBean getDynaClass
public DynaClass getDynaClass();
DynaClass
instance that describes the set of properties available for this DynaBean. From source file:net.sf.morph.reflect.reflectors.DynaBeanReflector.java
/** * {@inheritDoc}/*from w ww . j av a2 s. co m*/ */ protected Object getImpl(Object bean, String propertyName) throws Exception { DynaBean dyna = getDynaBean(bean); return IMPLICIT_PROPERTY_DYNA_CLASS.equals(propertyName) ? dyna.getDynaClass() : dyna.get(propertyName); }
From source file:net.mlw.vlh.adapter.jdbc.dynabean.DefaultDynaBeanAdapter.java
public List processResultSet(String name, ResultSet result, int numberPerPage, ValueListInfo info) throws SQLException { List list = new ArrayList(); ResultSetDynaClass rsdc = new ResultSetDynaClass(result, false, isUseName()); BasicDynaClass bdc = new BasicDynaClass(name, BasicDynaBean.class, rsdc.getDynaProperties()); int rowIndex = 0; for (Iterator rows = rsdc.iterator(); rows.hasNext() && rowIndex < numberPerPage; rowIndex++) { try {// w w w.jav a2s . com DynaBean oldRow = (DynaBean) rows.next(); DynaBean newRow = bdc.newInstance(); DynaProperty[] properties = oldRow.getDynaClass().getDynaProperties(); for (int i = 0, length = properties.length; i < length; i++) { String propertyName = properties[i].getName(); Object value = oldRow.get(propertyName); newRow.set(propertyName, value); } list.add(newRow); } catch (Exception e) { LOGGER.error(e); } } return list; }
From source file:io.coala.experimental.dynabean.DynaBeanTest.java
@Test public void testDynaBeans() throws Exception { // for usage, see // http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/org/apache/commons/beanutils/package-summary.html#package_description final DynaBean dynaBean = new LazyDynaBean(); // Create LazyDynaBean final MutableDynaClass dynaClass = (MutableDynaClass) dynaBean.getDynaClass(); // get DynaClass dynaClass.add("amount", java.lang.Integer.class); // add property dynaClass.add("myMap", java.util.TreeMap.class); // add mapped property final DynaBean employee = dynaClass.newInstance(); // TODO experiment with Jackson's AnnotationIntrospector to annotate // DynaBean#get(...) method with @JsonAnyGetter and #set(...) method // with @JsonAnySetter employee.set("address", new HashMap<String, String>()); employee.set("activeEmployee", Boolean.FALSE); employee.set("firstName", "Fred"); employee.set("lastName", "Flintstone"); LOG.trace("Employee: " + JsonUtil.toPrettyJSON(employee)); // set all <activeEmployee> attribute values to <true> final BeanPropertyValueChangeClosure closure = new BeanPropertyValueChangeClosure("activeEmployee", Boolean.TRUE);/*from w w w . ja v a 2s. c o m*/ final Collection<?> employees = Collections.singleton(employee); LOG.trace("Mutated employees: " + JsonUtil.toPrettyJSON(employees)); // update the Collection CollectionUtils.forAllDo(employees, closure); // filter for beans with <activeEmployee> set to <false> final BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate("lastName", "Flintstone"); // filter the Collection CollectionUtils.filter(employees, predicate); LOG.trace("Filtered employees: " + JsonUtil.toPrettyJSON(employees)); }
From source file:net.sf.json.util.DynaBeanToBeanMorpher.java
/** * DOCUMENT ME!//from ww w. j ava2 s . c o m * * @param value DOCUMENT ME! * * @return DOCUMENT ME! */ public Object morph(Object value) { if (value == null) { return null; } if (!supports(value.getClass())) { throw new MorphException("value is not a DynaBean"); } Object bean = null; try { bean = beanClass.newInstance(); DynaBean dynaBean = (DynaBean) value; DynaClass dynaClass = dynaBean.getDynaClass(); PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(beanClass); for (int i = 0; i < pds.length; i++) { PropertyDescriptor pd = pds[i]; String name = pd.getName(); DynaProperty dynaProperty = dynaClass.getDynaProperty(name); if (dynaProperty != null) { Class dynaType = dynaProperty.getType(); Class type = pd.getPropertyType(); if (type.isAssignableFrom(dynaType)) { PropertyUtils.setProperty(bean, name, dynaBean.get(name)); } else { if (IdentityObjectMorpher.getInstance() == morpherRegistry.getMorpherFor(type)) { throw new MorphException("Can't find a morpher for target class " + type); } else { PropertyUtils.setProperty(bean, name, morpherRegistry.morph(type, dynaBean.get(name))); } } } } } catch (InstantiationException e) { throw new MorphException(e); } catch (IllegalAccessException e) { throw new MorphException(e); } catch (InvocationTargetException e) { throw new MorphException(e); } catch (NoSuchMethodException e) { throw new MorphException(e); } return bean; }
From source file:net.mlw.vlh.web.tag.DynaBeanColumnsTag.java
/** * @see javax.servlet.jsp.tagext.Tag#doEndTag() *//*from w ww . ja va 2 s . co m*/ public int doEndTag() throws JspException { ValueListSpaceTag rootTag = (ValueListSpaceTag) JspUtils.getParent(this, ValueListSpaceTag.class); DefaultRowTag rowTag = (DefaultRowTag) JspUtils.getParent(this, DefaultRowTag.class); DynaBean bean = (DynaBean) pageContext.getAttribute(rowTag.getBeanName()); if (bean == null) { LOGGER.error("Zero results where returned."); return SKIP_BODY; } DynaClass dClass = bean.getDynaClass(); StringBuffer sb = new StringBuffer(); for (int i = 0, length = dClass.getDynaProperties().length; i < length; i++) { String name = dClass.getDynaProperties()[i].getName(); if ((include.isEmpty() || include.contains(name)) && (exclude.isEmpty() || !exclude.contains(name))) { if (rowTag.getCurrentRowNumber() == 0) { String displayName = name.substring(0, 1).toUpperCase() + name.substring(1); rowTag.addColumnInfo(new ColumnInfo(displayName, name, defaultSort, null)); } sb.append(rowTag.getDisplayProvider().getCellPreProcess(null)); if (bean.get(name) == null) { sb.append(rootTag.getConfig().getNullToken()); } else { sb.append(bean.get(name)); } sb.append(rowTag.getDisplayProvider().getCellPostProcess()); } } JspUtils.write(pageContext, sb.toString()); release(); return EVAL_PAGE; }
From source file:junit.mock.TestDynaPropertiesMO.java
public void testDoStartTag() throws Exception { DynaBean bean = createDynaBean(); /*mockPageContext.setupFindAttribute(bean); mockPageContext.addExpectedFindAttributeValues("item"); mockPageContext.addExpectedSetAttributeStringObjectValues( "var", bean.getDynaClass().getDynaProperties());*/ mockPageContext.expectFindAttribute("item").returns(bean); mockPageContext.expectSetAttribute("var", bean.getDynaClass().getDynaProperties()); tag.setItem("${item}"); tag.setVar("var"); int result = tag.doStartTag(); assertEquals(Tag.SKIP_BODY, result); //mockPageContext. //System.out.print(mockPageContext.getAttribute("var")); }
From source file:com.xwtec.xwserver.util.json.JSONObject.java
private static JSONObject _fromDynaBean(DynaBean bean, JsonConfig jsonConfig) { if (bean == null) { fireObjectStartEvent(jsonConfig); fireObjectEndEvent(jsonConfig);/*from ww w . ja va 2 s . c om*/ return new JSONObject(true); } if (!addInstance(bean)) { try { return jsonConfig.getCycleDetectionStrategy().handleRepeatedReferenceAsObject(bean); } catch (JSONException jsone) { removeInstance(bean); fireErrorEvent(jsone, jsonConfig); throw jsone; } catch (RuntimeException e) { removeInstance(bean); JSONException jsone = new JSONException(e); fireErrorEvent(jsone, jsonConfig); throw jsone; } } fireObjectStartEvent(jsonConfig); JSONObject jsonObject = new JSONObject(); try { DynaProperty[] props = bean.getDynaClass().getDynaProperties(); Collection exclusions = jsonConfig.getMergedExcludes(); PropertyFilter jsonPropertyFilter = jsonConfig.getJsonPropertyFilter(); for (int i = 0; i < props.length; i++) { boolean bypass = false; DynaProperty dynaProperty = props[i]; String key = dynaProperty.getName(); if (exclusions.contains(key)) { continue; } Class type = dynaProperty.getType(); Object value = bean.get(dynaProperty.getName()); if (jsonPropertyFilter != null && jsonPropertyFilter.apply(bean, key, value)) { continue; } JsonValueProcessor jsonValueProcessor = jsonConfig.findJsonValueProcessor(type, key); if (jsonValueProcessor != null) { value = jsonValueProcessor.processObjectValue(key, value, jsonConfig); bypass = true; if (!JsonVerifier.isValidJsonValue(value)) { throw new JSONException("Value is not a valid JSON value. " + value); } } setValue(jsonObject, key, value, type, jsonConfig, bypass); } } catch (JSONException jsone) { removeInstance(bean); fireErrorEvent(jsone, jsonConfig); throw jsone; } catch (RuntimeException e) { removeInstance(bean); JSONException jsone = new JSONException(e); fireErrorEvent(jsone, jsonConfig); throw jsone; } removeInstance(bean); fireObjectEndEvent(jsonConfig); return jsonObject; }
From source file:no.sesat.search.mode.command.GoogleSearchCommand.java
protected ResultItem createItem(final DynaBean entry) { ResultItem resItem = new BasicResultItem(); final DynaProperty[] descriptors = entry.getDynaClass().getDynaProperties(); for (DynaProperty d : descriptors) { if (entry.get(d.getName()) instanceof Serializable) { resItem = resItem.addObjectField(d.getName(), (Serializable) entry.get(d.getName())); }/*from w w w . j ava 2s . c o m*/ } return resItem; }
From source file:org.apache.action2.legacy.DynaBeanPropertyAccessor.java
public Object getProperty(Map context, Object target, Object name) throws OgnlException { if (target instanceof DynaBean && name != null) { DynaBean bean = (DynaBean) target; DynaClass cls = bean.getDynaClass(); String key = name.toString(); if (cls.getDynaProperty(key) != null) { return bean.get(key); }//from w w w . j av a 2 s . c o m } return null; }
From source file:org.apache.ddlutils.dynabean.DynaClassCache.java
/** * Returns the {@link SqlDynaClass} for the given bean. * /* w w w. j ava 2 s . c o m*/ * @param dynaBean The bean * @return The dyna bean class */ public SqlDynaClass getDynaClass(DynaBean dynaBean) throws SqlDynaException { DynaClass dynaClass = dynaBean.getDynaClass(); if (dynaClass instanceof SqlDynaClass) { return (SqlDynaClass) dynaClass; } else { // TODO: we could autogenerate an SqlDynaClass here ? throw new SqlDynaException("The dyna bean is not an instance of a SqlDynaClass"); } }