protected void ormGenerateRoleManyToOne(Role role) { StringBuilder buf = new StringBuilder(); buf.append(" <many-to-one name=\""); buf.append(role.getName()); buf.append("\" target-entity=\""); buf.append(getTypeFullName(role.getType())); buf.append("\">"); // buf.append(ormGetCascade()); buf.append("</many-to-one>"); this.ormWriter.println(buf.toString()); }
protected String getNewRoleStarSlotExpressionWithEmptySet(Role role) { StringBuilder buf = new StringBuilder(); buf.append("new "); buf.append(makeGenericType("java.util.HashSet", getTypeFullName(role.getType()))); buf.append("()"); return getNewRoleStarSlotExpressionWithBackingSet(role, buf.toString()); }
protected String getRoleHandlerName(Role role, boolean otherClass) { StringBuilder buf = new StringBuilder(); if (otherClass) { buf.append(getTypeFullName(role.getOtherRole().getType())); buf.append("."); } buf.append("role$$"); buf.append(role.getName()); return buf.toString(); }
@Override protected String getSetTypeDeclarationFor(Role role) { String elemType = getTypeFullName(role.getType()); return makeGenericType("java.util.Set", elemType); // String thisType = getTypeFullName(role.getOtherRole().getType()); // return makeGenericType(getRelationAwareBaseTypeFor(role), thisType, elemType); }
private Slot getIndexedSlot(Role role) { Slot indexedSlot = role.getType().findSlot(role.getIndexProperty()); if (indexedSlot == null) { // indexed field doesn't exist throw new Error("Unknown indexed field: " + role.getIndexProperty()); } return indexedSlot; }
@Override protected void generateRelationGetter(String getterName, Role role, PrintWriter out) { String paramListType = makeGenericType("java.util.Set", getTypeFullName(role.getType())); generateRelationGetter(role, paramListType, out); }
protected void generateStaticRoleSlotsMultOne(Role role, Role otherRole, PrintWriter out) { printMethod(out, "public", getTypeFullName(role.getType()), "getValue", makeArg(getTypeFullName(otherRole.getType()), "o1")); startMethodBody(out); generateStaticRoleSlotsMultOneGetterBody(role, otherRole, out); endMethodBody(out); printMethod(out, "public", "void", "setValue", makeArg(getTypeFullName(otherRole.getType()), "o1"), makeArg(getTypeFullName(role.getType()), "o2")); startMethodBody(out); generateStaticRoleSlotsMultOneSetterBody(role, otherRole, out); endMethodBody(out); }
@Override protected void generateRoleSlotMethodsMultOne(Role role, PrintWriter out) { super.generateRoleSlotMethodsMultOne(role, out); String typeName = getTypeFullName(role.getType()); String slotName = role.getName(); // generateGetter("public", "get$" + slotName, slotName, typeName, out); // generateOJBSetter(slotName, typeName, out); generateOidOJBGetter(slotName, out); }
protected String getCollectionTypeFor(Role role) { boolean indexed = (role.getIndexProperty() != null); boolean ordered = role.isOrdered(); if (indexed && ordered) { throw new Error("Can't handle roles that are both indexed and ordered"); } String elemsType = getTypeFullName(role.getType()); if (indexed) { // FIXME: the type of the key should correspond to the type of the index property return makeGenericType("java.util.Map", "java.lang.Object", elemsType); } else { return makeGenericType("java.util.Set", elemsType); } }
@Override protected void generateRelationAddMethodCall(Role role, String otherArg, String indexParam, PrintWriter out) { generateSetterDAPStatement(dC, role.getName(), role.getType().getFullName(), out); super.generateRelationAddMethodCall(role, otherArg, indexParam, out); }
@Override protected void generateRelationRemoveMethodCall(Role role, String otherArg, PrintWriter out) { generateSetterDAPStatement(dC, role.getName(), role.getType().getFullName(), out); super.generateRelationRemoveMethodCall(role, otherArg, out); }
@Override protected String getDefaultCollectionGetterFor(Role role) { if (role.isIndexed() && role.getIndexCardinality() == Role.MULTIPLICITY_MANY) { return makeGenericType(DomainBasedMap.Getter.class.getCanonicalName(), makeGenericType(LINKED_LIST_FULL_CLASS, getTypeFullName(role.getType()))); } else { return super.getDefaultCollectionGetterFor(role); } }
protected void generateStaticKeyFunctionForRole(Role role, PrintWriter out) { if (role.getMultiplicityUpper() != 1) { println(out, generateMapKeyFunction(role.getName(), role.getType().getFullName(), "Comparable<?>", "Oid", false)); } }
protected void generateRoleSlotMethodsMultOne(Role role, PrintWriter out) { String typeName = getTypeFullName(role.getType()); String slotName = role.getName(); // public getter generateRoleSlotMethodsMultOneGetter(chooseVisibilityModifier(role), slotName, typeName, out); // public setter generateRoleSlotMethodsMultOneSetter(role, out); }
@Override protected String getDefaultCollectionFor(Role role) { if (role.isIndexed() && role.getIndexCardinality() == Role.MULTIPLICITY_MANY) { return makeGenericType(getCollectionToUse(), makeGenericType(LINKED_LIST_FULL_CLASS, role.getType().getFullName())); } else { return super.getDefaultCollectionFor(role); } }
@Override protected void generateRelationGetter(String getterName, String valueToReturn, Role role, String typeName, PrintWriter out) { newline(out); printFinalMethod(out, "public", typeName, getterName); startMethodBody(out); generateGetterDAPStatement(dC, role.getName(), role.getType().getFullName(), out); generateRelationGetterBody(role, out); endMethodBody(out); }
protected void generateRoleMethodRemove(Role role, Role otherRole, PrintWriter out) { boolean multOne = (role.getMultiplicityUpper() == 1); String otherRoleTypeFullName = getTypeFullName(otherRole.getType()); String roleTypeFullName = getTypeFullName(role.getType()); printMethod(out, "public", "boolean", "remove", makeArg(otherRoleTypeFullName, "o1"), makeArg(roleTypeFullName, "o2")); startMethodBody(out); print(out, "if (o1 != null)"); newBlock(out); print(out, "o1.set" + capitalize(role.getName()) + "$unidirectional(null);"); closeBlock(out, false); newline(out); print(out, "return true;"); endMethodBody(out); }