@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 void generateRelationAddMethodCall(Role role, String otherArg, String indexParam, PrintWriter out) { generateSetterDAPStatement(dC, role.getName(), role.getType().getFullName(), out); super.generateRelationAddMethodCall(role, otherArg, indexParam, out); }
protected void generateValueTypeSerializations() { for (ValueType vt : getDomainModel().getAllValueTypes()) { if (!(vt.isBuiltin() || vt.isEnum())) { println(out, ""); print(out, "// VT: " + vt.getDomainName() + " serializes as " + getSerializedFormTypeName(vt)); generateValueTypeSerialization(vt); generateValueTypeDeSerialization(vt); } } }
protected void generateStaticKeyFunctionForRole(Role role, PrintWriter out) { if (role.getMultiplicityUpper() != 1) { println(out, generateMapKeyFunction(role.getName(), role.getType().getFullName(), "Comparable<?>", "Oid", false)); } }
@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); }
@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); } }
protected void generateInitInstanceMethodBody(DomainClass domClass, PrintWriter out) { println(out, "super.init$Instance(allocateOnly);"); for (Slot slot : domClass.getSlotsList()) { generateInitSlot(slot, out); } onNewline(out); for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null) { generateInitRoleSlot(role, out); } } }
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); }
protected String getRelationAwareTypeFor(Role role) { String elemType = getTypeFullName(role.getType()); String thisType = getTypeFullName(role.getOtherRole().getType()); return makeGenericType(getRelationAwareBaseTypeFor(role), thisType, elemType); }
protected void generateSlot(Slot slot, PrintWriter out) { onNewline(out); printWords(out, "private", slot.getTypeName(), slot.getName()); print(out, ";"); }
protected void generateInitRoleSlot(Role role, PrintWriter out) { if (role.getMultiplicityUpper() != 1) { onNewline(out); print(out, role.getName()); print(out, " = "); print(out, getNewRoleStarSlotExpression(role)); print(out, ";"); } }
@Override protected void generateSetterBody(String setterName, Slot slot, PrintWriter out) { //System.out.println("\tGenerating setter body named " + setterName + "() for slot " + slot.getName() + " of type " + slot.getTypeName()); generateSetterDAPStatement(dC, slot.getName(), slot.getTypeName(), out); //if (DAP_ENABLED) { //generateSetterDAPStatement(domainClass, slot.getName(), slot.getTypeName(), out); //print(out, "pt.ist.dap.implementation.simple.SimpleContextManager.updateWriteStatisticsWithoutContext(\""+ domainClass.getFullName() +"\", \""); //print(out, slot.getName()); //println(out, "\");"); //} super.generateSetterBody(setterName, slot, 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); }
protected void generateSetterBody(String setterName, Slot slot, PrintWriter out) { if (isDefaultCodeGenerator()) { printUnsupported(out); } else { printWords(out, getSlotSetterExpression(slot, slot.getName()) + ";"); } }
private static boolean is1toNRelation(DomainRelation domRelation) { int multiplicity1 = domRelation.getFirstRole().getMultiplicityUpper(); int multiplicity2 = domRelation.getSecondRole().getMultiplicityUpper(); return ((multiplicity1 == 1) && (multiplicity2 != 1)) || ((multiplicity1 != 1) && (multiplicity2 == 1)); }
@Override protected void generateBaseClassConstructorsBody(DomainClass domClass, PrintWriter out) { super.generateBaseClassConstructorsBody(domClass, out); if (enabled) { if (domClass.getSuperclass() == null) { onNewline(out); print(out, TX_STATS_INSTANCE + ".addNewObject(this);"); } } }
protected String getRelationMethodNameFor(Role role, boolean direct) { // when the two roles of a relation are played by the same class, // we need to give different names to the relation slots because both // will be in the same class return "getRelation" + role.getRelation().getName() + "()" + (direct ? "" : ".getInverseRelation()"); }
/** * Generate the backend-specific code for the domain model. */ public void generateCode() { // used by the value-type generator ValueTypeSerializationGenerator valueTypeGenerator = new ValueTypeSerializationGenerator(compArgs, domainModel); valueTypeGenerator.generateCode(); generateClasses(getDomainModel().getClasses()); generateBackEndId(); }
@Override protected void generateBackEndIdClassBody(PrintWriter out) { if (enabled) { // add parameter in static initializer block newline(out); newBlock(out); print(out, "setParam(\"" + TXINTROSPECTOR_ON_CONFIG_KEY + "\", \"" + TXINTROSPECTOR_ON_CONFIG_VALUE + "\");"); closeBlock(out); } super.generateBackEndIdClassBody(out); } }
@Override protected void generateGetterBody(String slotName, String typeName, PrintWriter out) { //System.out.println("\tGenerating getter body for " + slotName + " of type " + typeName); generateGetterDAPStatement(dC, slotName, typeName, out); //if (DAP_ENABLED) { //print(out, "pt.ist.dap.implementation.simple.SimpleContextManager.updateReadStatisticsWithoutContext(\""+ dC.getFullName() +"\", \""); //print(out, slotName); //println(out, "\");"); //} super.generateGetterBody(slotName, typeName, out); }