private BeanProperties getProp(ELContext context, Object base, Object property) { if (base == null || ! (property instanceof String)) return null; String fieldName = (String) property; if (fieldName.length() == 0) return null; Class<?> cl = base.getClass(); BeanProperties props = getProps(cl); if (props == null) { if (cl.isArray() || Collection.class.isAssignableFrom(cl) || Map.class.isAssignableFrom(cl)) { return null; } props = new BeanProperties(cl); setProps(cl, props); } return props; }
@Override public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) { if (base == null) return null; Class<?> cl = base.getClass(); BeanProperties props = getProps(cl); if (props == null) { if (cl.isArray() || Collection.class.isAssignableFrom(cl) || Map.class.isAssignableFrom(cl)) { return null; } props = new BeanProperties(cl); setProps(cl, props); } ArrayList<FeatureDescriptor> descriptors = new ArrayList<FeatureDescriptor>(); for (BeanProperty prop : props.getProperties()) { descriptors.add(prop.getDescriptor()); } return descriptors.iterator(); }
setProps(cl, props);
setProps(cl, props);
setProps(cl, props);