public String name() { return property != null ? property.getName() : name; }
private static String join(Property[] array, String separator, int startIndex, int endIndex) { if (array == null) { return null; } int bufSize = (endIndex - startIndex); if (bufSize <= 0) { return ""; } bufSize *= ((array[startIndex] == null ? 16 : array[startIndex].toString().length()) + 1); StringBuilder buf = new StringBuilder(bufSize); for (int i = startIndex; i < endIndex; i++) { if (i > startIndex) { buf.append(separator); } if (array[i] != null) { buf.append(array[i].getName()); } } return buf.toString(); }
private String getIteratorName() { if (iteratorName == null) { String prefix = this.name(); if (this.property() != null && this.property().getName().matches("[\\w$]+")) { prefix = this.property().getName(); } if ("".equals(prefix) && !"".equals(this.name)) { prefix = this.name; } if (isArray()) { iteratorName = prefix + "_$_index"; } else { iteratorName = prefix + "_$_iter"; } } return iteratorName; }
private String getIteratorName() { if (iteratorName == null) { String prefix = this.name(); if (this.property() != null && this.property().getName().matches("[\\w$]+")) { prefix = this.property().getName(); } if ("".equals(prefix) && !"".equals(this.name)) { prefix = this.name; } if (isArray()) { iteratorName = prefix + "_$_index"; } else { iteratorName = prefix + "_$_iter"; } } return iteratorName; }
@Test public void testAdHocResolution() { Property prop = propertyResolver.getProperty(A.class, "name:{readTheNameForThisBean|assignTheName}.firstName"); Assert.assertNotNull(prop); Assert.assertEquals("firstName", prop.getName()); Assert.assertEquals("name.firstName", prop.getExpression()); Assert.assertEquals(TypeFactory.valueOf(String.class), prop.getType()); }
@Test public void testAdHocResolution_withType() { Property prop = propertyResolver.getProperty(A.class, "name:{readTheNameForThisBean|assignTheName|type=ma.glasnost.orika.test.property.TestCaseClasses$Name}.firstName"); Assert.assertNotNull(prop); Assert.assertEquals("firstName", prop.getName()); Assert.assertEquals("name.firstName", prop.getExpression()); Assert.assertEquals(TypeFactory.valueOf(String.class), prop.getType()); }
private static String isNull(Property property, String name) { if (property == null) { return name + " == null"; } else { String getterNull = getGetter(property, name) + " == null"; if (property.isListElement()) { return "(" + unwrap(getGetter(property, name)) + ".size() <= " + property.getName().replaceAll("[\\[\\]]", "") + " || " + getterNull + ")"; } else if (property.isArrayElement()) { return "(" + unwrap(getGetter(property, name)) + ".length <= " + property.getName().replaceAll("[\\[\\]]", "") + " || " + getterNull + ")"; } else { return getterNull; } } }
private static String isNull(Property property, String name) { if (property == null) { return name + " == null"; } else { String getterNull = getGetter(property, name) + " == null"; if (property.isListElement()) { return "(" + unwrap(getGetter(property, name)) + ".size() <= " + property.getName().replaceAll("[\\[\\]]", "") + " || " + getterNull + ")"; } else if (property.isArrayElement()) { return "(" + unwrap(getGetter(property, name)) + ".length <= " + property.getName().replaceAll("[\\[\\]]", "") + " || " + getterNull + ")"; } else { return getterNull; } } }
private FieldMap mapConstructorArgument(FieldMap existing, Type<?> argumentType, boolean byDefault) { Property destProp = new Property.Builder() .name(existing.getDestination().getName()) .getter(existing.getDestination().getName()) .type(argumentType) .build(); FieldMap fieldMap = new FieldMap(existing.getSource(), destProp, null, null, MappingDirection.A_TO_B, false, existing.getConverterId(), byDefault, null, null); return fieldMap; } }
private FieldMap mapConstructorArgument(FieldMap existing, Type<?> argumentType, boolean byDefault) { final Property destProp = new Property.Builder() .name(existing.getDestination().getName()) .getter(existing.getDestination().getName()) .type(argumentType) .build(); return new FieldMap(existing.getSource(), destProp, null, null, MappingDirection.A_TO_B, false, existing.getConverterId(), byDefault, null, null); } }
/** * Returns a fully type-cast setter for the property which has no reliance * on java generics. * * @param property * the Property for which to return the getter * @param variableExpression * the String value to use for the variable on which the getter * is called * @return */ protected static String getSetter(final Property property, final String variableExpression) { if (property.getSetter() == null) return null; String var = variableExpression; if (property.hasPath()) { for (final Property p : property.getPath()) { var = getGetter(p, var); } } return var + (property.isArrayElement() || "".equals(property.getName()) || property.getSetter().startsWith("[") ? "" : ".") + property.getSetter(); }
public NestedProperty(String expression, Property property, Property[] path) { super(expression,property.getName(),property.getGetter(),property.getSetter(),property.getType(),property.getElementType(), property.getContainer()); this.path = collapse(path); this.tail = property; }
protected static String getGetter(final Property property, String variableExpression) { if (property.getGetter() == null) return null; String var = variableExpression; if (property.hasPath()) { for (final Property p : property.getPath()) { var = getGetter(p, var); } } String getter = "((" + property.getType().getCanonicalName() + ")" + var; if (!property.isArrayElement() && !"".equals(property.getName()) && !property.getGetter().startsWith("[")) { getter += "." + property.getGetter() + ")"; } else { getter += property.getGetter() + ")"; } return getter; }
protected static String getGetter(final Property property, String variableExpression) { if (property.getGetter() == null) return null; String var = variableExpression; if (property.hasPath()) { for (final Property p : property.getPath()) { var = getGetter(p, var); } } String getter = "((" + property.getType().getCanonicalName() + ")" + var; if (!property.isArrayElement() && !"".equals(property.getName()) && !property.getGetter().startsWith("[")) { getter += "." + property.getGetter() + ")"; } else { getter += property.getGetter() + ")"; } return getter; }
/** * Creates a new NestedProperty * * @param expression * @param property * @param path */ public NestedProperty(String expression, Property property, Property[] path) { super(expression,property.getName(),property.getGetter(),property.getSetter(),property.getType(),property.getElementType(), property.getContainer()); this.path = collapse(property.getPath(), path); this.tail = property; }
/** * @param owningProperty * @param elementProperty * @param resolver */ public NestedElementProperty(Property owningProperty, Property elementProperty, PropertyResolverStrategy resolver) { super(getElementExpression(owningProperty, elementProperty), elementProperty.getName(), elementProperty.getGetter(), elementProperty.getSetter(), elementProperty.getType(), elementProperty.getElementType(), initContainer(owningProperty, elementProperty.getExpression(), resolver) ); Property element = initElement(getContainer(), elementProperty.getExpression(), resolver); if (element == null) { element = elementProperty; } this.elementProperty = element; }
/** * @param owningProperty * @param elementProperty * @param resolver */ public NestedElementProperty(Property owningProperty, Property elementProperty, PropertyResolverStrategy resolver) { super(getElementExpression(owningProperty, elementProperty), elementProperty.getName(), elementProperty.getGetter(), elementProperty.getSetter(), elementProperty.getType(), elementProperty.getElementType(), initContainer(owningProperty, elementProperty.getExpression(), resolver) ); Property element = initElement(getContainer(), elementProperty.getExpression(), resolver); if (element == null) { element = elementProperty; } this.elementProperty = element; }