private boolean needsToString(Iterator<Property> iter) { while (iter.hasNext()) { Property element = (Property) iter.next(); if (c2j.getMetaAsBool(element, "use-in-tostring")) { return true; } } return false; }
public String generateHashCode(Property property, String result, String thisName, boolean jdk5) { StringBuffer buf = new StringBuffer(); if (c2j.getMetaAsBool(property, "use-in-equals")) { String javaTypeName = c2j.getJavaTypeName(property, jdk5, this); boolean isPrimitive = c2j.isPrimitive(javaTypeName); if (isPrimitive) { buf.append(result).append(" = 37 * ").append(result).append(" + "); String thisValue = thisName + "." + getGetterSignature(property) + "()"; if ("char".equals(javaTypeName) || "int".equals(javaTypeName) || "short".equals(javaTypeName) || "byte".equals(javaTypeName)) { buf.append(thisValue); } else if ("boolean".equals(javaTypeName)) { buf.append("(" + thisValue + "?1:0)"); } else { buf.append("(int) "); buf.append(thisValue); } buf.append(";"); } else { if (javaTypeName.endsWith("[]")) { if (jdk5) { buf.append(result).append(" = 37 * ").append(result).append(" + "); buf.append("( ") .append(getGetterSignature(property)) .append("() == null ? 0 : " + importType("java.util.Arrays") + ".hashCode(") .append(thisName) .append(".") .append(getGetterSignature(property)) .append("())") .append(" )") .append(";"); } else { buf.append(internalGenerateArrayHashcode(property, javaTypeName, result, thisName)); } } else { buf.append(result).append(" = 37 * ").append(result).append(" + "); buf.append("( ") .append(getGetterSignature(property)) .append("() == null ? 0 : ") .append(thisName) .append(".") .append(getGetterSignature(property)) .append("()") .append(".hashCode()") .append(" )") .append(";"); } } } return buf.toString(); }
private Iterator<Property> getToStringPropertiesIterator(Iterator<Property> iter) { List<Property> properties = new ArrayList<Property>(); while (iter.hasNext()) { Property element = (Property) iter.next(); if (c2j.getMetaAsBool(element, "use-in-tostring")) { properties.add(element); } } return properties.iterator(); }
private boolean usePropertyInEquals(Property property) { boolean hasEqualsMetaAttribute = c2j.hasMetaAttribute(property, "use-in-equals"); boolean useInEquals = c2j.getMetaAsBool(property, "use-in-equals"); if (property.isNaturalIdentifier()) { if (hasEqualsMetaAttribute && !useInEquals) { return false; } else { return true; } } return useInEquals; }