@Override protected void generateInitInstanceMethodBody(DomainClass domClass, PrintWriter out) { // smf: this method restores the behavior by default in CodeGenerator, undoing what JVSTMCodeGenerator does. If, as // expected, the generation of slot and roleSlots is all moved to the CodeGenerator, then this code may be deleted. onNewline(out); for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null) { generateInitRoleSlot(role, out); } } }
@Override protected void generateInitInstanceMethodBody(DomainClass domClass, PrintWriter out) { boolean firstInLoop = true; for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null) { firstInLoop = generateInitRoleSlot(role, firstInLoop, out); } } if (!firstInLoop) { closeBlock(out); } }
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 static void updateFields(final DomainModel domainModel, final ClassDescriptor classDescriptor, final DomainClass domClass, final Map<String, ClassDescriptor> ojbMetadata, final Class<?> persistentFieldClass) throws Exception { DomainEntity domEntity = domClass; int fieldID = 1; addPrimaryFieldDescriptor(domainModel, "oid", "long", fieldID++, classDescriptor, persistentFieldClass); // write the domainMetaObject for all domain objects addFieldDescriptor(domainModel, "oidDomainMetaObject", "Long", fieldID++, classDescriptor, persistentFieldClass); while (domEntity instanceof DomainClass) { DomainClass dClass = (DomainClass) domEntity; Iterator<Slot> slots = dClass.getSlots(); while (slots.hasNext()) { Slot slot = slots.next(); String slotName = slot.getName(); String slotType = slot.getSlotType().getDomainName(); addFieldDescriptor(domainModel, slotName, slotType, fieldID++, classDescriptor, persistentFieldClass); } for (Role role : dClass.getRoleSlotsList()) { String roleName = role.getName(); if ((role.getMultiplicityUpper() == 1) && (roleName != null)) { String foreignOidField = "oid" + StringUtils.capitalize(roleName); addFieldDescriptor(domainModel, foreignOidField, "Long", fieldID++, classDescriptor, persistentFieldClass); } } domEntity = dClass.getSuperclass(); } }
protected void checkForRepeatedSlots() { for (DomainClass domClass : classes.values()) { DomainEntity superDomClass = domClass.getSuperclass(); if (superDomClass != null) { for (Slot slot : domClass.getSlotsList()) { if (superDomClass.findSlot(slot.getName()) != null) { System.err.printf("WARNING: Slot named '%s' in class '%s' already exists in a superclass\n", slot.getName(), domClass.getName()); } if (superDomClass.findRoleSlot(slot.getName()) != null) { System.err.printf("WARNING: Slot named '%s' in class '%s' already exists in a superclass as role slot\n", slot.getName(), domClass.getName()); } } for (Role role : domClass.getRoleSlotsList()) { if (superDomClass.findSlot(role.getName()) != null) { System.err.printf( "WARNING: Role slot named '%s' in class '%s' already exists in a superclass as a slot\n", role.getName(), domClass.getName()); } if (superDomClass.findRoleSlot(role.getName()) != null) { System.err.printf( "WARNING: Role slot named '%s' in class '%s' already exists in a superclass as role slot\n", role.getName(), domClass.getName()); } } } } }
protected void generateMethodGetRelationFor(DomainClass domClass, PrintWriter out) { printMethod(out, "protected", Relation.class.getName(), "get$$relationFor", makeArg("String", "attrName")); startMethodBody(out); for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() != 1) { print(out, "if (attrName.equals(\""); print(out, role.getName()); print(out, "\")) return "); print(out, getRelationMethodNameFor(role)); println(out, ";"); } } println(out, "return super.get$$relationFor(attrName);"); endMethodBody(out); }
protected void generateCreateAllListsMethod(DomainClass domClass, PrintWriter out) { printMethod(out, "protected", "void", "create$allLists"); startMethodBody(out); println(out, "super.create$allLists();"); for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() != 1) { print(out, "get$$relationList(\""); print(out, role.getName()); print(out, "\", "); print(out, getRelationMethodNameFor(role)); println(out, ");"); } } endMethodBody(out); }
protected void generateDatabaseReader(DomainClass domClass, PrintWriter out) { newline(out); printMethod(out, "protected", "void", "readSlotsFromResultSet", makeArg("java.sql.ResultSet", "rs"), makeArg("int", "txNumber")); print(out, " throws java.sql.SQLException"); startMethodBody(out); if (domClass.hasSuperclass()) { println(out, "super.readSlotsFromResultSet(rs, txNumber);"); } for (Slot slot : domClass.getSlotsList()) { generateOneSlotRsReader(out, slot.getName(), slot.getSlotType()); } for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() == 1) { generateOneRoleSlotRsReader(out, role.getName()); } } endMethodBody(out); }
@Override protected void generateDatabaseReader(DomainClass domClass, PrintWriter out) { newline(out); printMethod(out, "protected", "void", "readStateFromResultSet", makeArg("java.sql.ResultSet", "rs"), makeArg(DO_STATE_SUPER, "state")); print(out, " throws java.sql.SQLException"); startMethodBody(out); if (domClass.hasSuperclass()) { println(out, "super.readStateFromResultSet(rs, state);"); } println(out, "DO_State castedState = (DO_State)state;"); for (Slot slot : domClass.getSlotsList()) { generateOneSlotRsReader(out, slot.getName(), slot.getSlotType()); } for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() == 1) { generateOneRoleSlotRsReader(out, role.getName()); } } endMethodBody(out); }
for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() == 1) { generateSlotDeclaration(out, getTypeFullName(role.getType()), role.getName()); for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() == 1) { printWords(out, "newCasted." + role.getName(), "=", "this." + role.getName());