public BeanCreator(Class<?> ofClass, Class<?> declaringClass, Class<?> concreteClass, String[] parameterNames, Type[] types, Annotation[][] anns) { this.ofClass = ofClass; this.parameters = new LinkedHashMap<String, BeanCreatorProperty>(parameterNames.length); for (int i = 0; i < parameterNames.length; i++) { this.parameters.put(parameterNames[i], new BeanCreatorProperty(parameterNames[i], types[i], i, anns[i], declaringClass, concreteClass, this)); } paramsAndAliases = new LinkedHashMap<String, BeanCreatorProperty>(); for (BeanCreatorProperty p : parameters.values()) { paramsAndAliases.put(p.getName(), p); for (String alias : p.aliases()) paramsAndAliases.put(alias, p); } }
@Override protected void mergeMutatorsWithCreatorProperties(Type ofType, Map<String, PropertyMutator> mutators, BeanCreator creator) { for (Map.Entry<String, ? extends BeanCreatorProperty> entry : creator.parameters.entrySet()) { PropertyMutator muta = mutators.get(entry.getKey()); if (muta == null) { // add to mutators only creator properties that don't exist as standard // mutator (dont exist as field or method, but only as ctr arg) BeanCreatorProperty ctrProperty = entry.getValue(); mutators.put(entry.getKey(), ctrProperty); } else { // update the creator property annotations with mutator annotations and vice versa entry.getValue().updateBoth(muta); } } }
@Override protected void mergeMutatorsWithCreatorProperties(Type ofType, Map<String, PropertyMutator> mutators, BeanCreator creator) { for (Map.Entry<String, ? extends BeanCreatorProperty> entry : creator.parameters.entrySet()) { PropertyMutator muta = mutators.get(entry.getKey()); if (muta == null) { // add to mutators only creator properties that don't exist as standard // mutator (dont exist as field or method, but only as ctr arg) BeanCreatorProperty ctrProperty = entry.getValue(); mutators.put(entry.getKey(), ctrProperty); } else { // update the creator property annotations with mutator annotations and vice versa entry.getValue().updateBoth(muta); } } }
public BeanCreator(Class<?> ofClass, Class<?> declaringClass, Class<?> concreteClass, String[] parameterNames, Type[] types, Annotation[][] anns) { this.ofClass = ofClass; this.parameters = new LinkedHashMap<String, BeanCreatorProperty>(parameterNames.length); for (int i = 0; i < parameterNames.length; i++) { this.parameters.put(parameterNames[i], new BeanCreatorProperty(parameterNames[i], types[i], i, anns[i], declaringClass, concreteClass, this)); } paramsAndAliases = new LinkedHashMap<String, BeanCreatorProperty>(); for (BeanCreatorProperty p : parameters.values()) { paramsAndAliases.put(p.getName(), p); for (String alias : p.aliases()) paramsAndAliases.put(alias, p); } }
private void updateWithDefaultValues(Object[] creatorArgs, Genson genson) { for (int i = 0; i < creatorArgs.length; i++) { if (creatorArgs[i] == MISSING) { for (BeanCreatorProperty property : creator.parameters.values()) { if (property.index == i) { creatorArgs[i] = genson.defaultValue(property.getRawClass()); break; } } } } }
private void updateWithDefaultValues(Object[] creatorArgs, Genson genson) { for (int i = 0; i < creatorArgs.length; i++) { if (creatorArgs[i] == MISSING) { for (BeanCreatorProperty property : creator.parameters.values()) { if (property.index == i) { creatorArgs[i] = genson.defaultValue(property.getRawClass()); break; } } } } }