protected void onNewline(PrintWriter out) { if (!onNewline) { newline(out); } }
protected void println(PrintWriter out, String text) { print(out, text); newline(out); }
protected void comment(PrintWriter out, String msg) { print(out, "// "); print(out, msg); newline(out); }
protected void generatePackageDecl(String subPackageName, PrintWriter out) { String topPackageName = getPackageName(); if ((topPackageName.length() + subPackageName.length()) > 0) { printWords(out, "package"); printWords(out, topPackageName); if ((topPackageName.length() > 0) && (subPackageName.length() > 0)) { print(out, "."); } print(out, subPackageName); print(out, ";"); newline(out); newline(out); } }
protected void newBlock(PrintWriter out) { if (!afterSpace) { print(out, " "); } print(out, "{"); indentMore(); newline(out); }
protected void generateGetter(String visibility, String getterName, String slotName, String typeName, PrintWriter out) { newline(out); printFinalMethod(out, visibility, typeName, getterName); startMethodBody(out); generateGetterBody(slotName, typeName, out); endMethodBody(out); }
protected void generatePublicClassConstructors(String className, PrintWriter out) { newline(out); printConstructor(out, "public", className); startMethodBody(out); print(out, "super();"); endMethodBody(out); }
protected void generateInitInstanceNoArg(DomainClass domClass, PrintWriter out) { onNewline(out); newline(out); printMethod(out, "private", "void", "initInstance"); startMethodBody(out); print(out, "init$Instance(true);"); endMethodBody(out); }
protected void generateBaseClassBody(DomainClass domClass, PrintWriter out) { comment(out, "Static Slots"); generateStaticSlots(domClass, out); newline(out); if (!isDefaultCodeGenerator()) { comment(out, "Slots"); generateSlots(domClass.getSlots(), out); newline(out); comment(out, "Role Slots"); generateRoleSlots(domClass.getRoleSlots(), out); newline(out); comment(out, "Init Instance"); generateInitInstance(domClass, out); newline(out); } comment(out, "Constructors"); printMethod(out, "protected", "", domClass.getBaseName()); startMethodBody(out); generateBaseClassConstructorsBody(domClass, out); endMethodBody(out); newline(out); comment(out, "Getters and Setters"); generateSlotsAccessors(domClass, out); newline(out); comment(out, "Role Methods"); generateRoleSlotsMethods(domClass.getRoleSlots(), out); newline(out); // comment(out, "Slot Consistency Predicates"); // generateSlotConsistencyPredicates(domClass, out); }
protected void generateInitInstanceMethod(DomainClass domClass, PrintWriter out) { newline(out); println(out, "@Override"); printMethod(out, "protected", "void", "init$Instance", makeArg("boolean", "allocateOnly")); startMethodBody(out); generateInitInstanceMethodBody(domClass, out); endMethodBody(out); }
protected void generateRelationGetter(String getterName, String valueToReturn, Role role, String typeName, PrintWriter out) { newline(out); printFinalMethod(out, chooseVisibilityModifier(role), typeName, getterName); startMethodBody(out); if (isDefaultCodeGenerator()) { printUnsupported(out); } else { generateRelationGetterBody(role, out); } endMethodBody(out); }
protected void generateSetter(String visibility, String setterName, Slot slot, PrintWriter out) { newline(out); printFinalMethod(out, visibility, "void", setterName, makeArg(slot.getTypeName(), slot.getName())); startMethodBody(out); generateSetterBody(setterName, slot, out); endMethodBody(out); }
protected void generateBaseClass(DomainClass domClass, PrintWriter out) { newline(out); println(out, "@SuppressWarnings(\"all\")"); // This should be the other way around, but that would cause API disruption String modifier = domClass.hasModifier(Modifier.PROTECTED) ? "" : "public"; printWords(out, modifier, "abstract", "class", domClass.getBaseName(), "extends"); String superclassName = getEntityFullName(domClass.getSuperclass()); printWords(out, (superclassName == null) ? getDomainClassRoot() : superclassName); final List interfacesNames = domClass.getInterfacesNames(); if (interfacesNames != null && !interfacesNames.isEmpty()) { printWords(out, "implements"); for (final Object ifsn : interfacesNames) { printWords(out, ifsn.toString()); } } newBlock(out); generateBaseClassBody(domClass, out); closeBlock(out); }
protected void generateBackEndIdClassBody(PrintWriter out) { newline(out); printMethod(out, "public", "String", "getBackEndName"); startMethodBody(out); newline(out); printMethod(out, "public", "Class<? extends pt.ist.fenixframework.Config>", "getDefaultConfigClass"); startMethodBody(out); newline(out); printMethod(out, "public", "Class<? extends pt.ist.fenixframework.core.AbstractDomainObject>", "getDomainClassRoot"); startMethodBody(out); newline(out); printMethod(out, "public", "String", "getAppName"); startMethodBody(out);
protected void generateRoleSlotMethodsMultOneSetter(Role role, PrintWriter out) { String typeName = getTypeFullName(role.getType()); String slotName = role.getName(); String capitalizedSlotName = capitalize(slotName); String setterName = "set" + capitalizedSlotName; String methodModifiers = getMethodModifiers(role); newline(out); printMethod(out, methodModifiers, "void", setterName, makeArg(typeName, slotName)); startMethodBody(out); if (isDefaultCodeGenerator()) { printUnsupported(out); } else { generateRelationAddMethodCall(role, slotName, null, out); } endMethodBody(out); }
newline(out); printMethod(out, methodModifiers, "void", adderMethodName, makeArg(typeName, slotName)); startMethodBody(out); newline(out); printMethod(out, methodModifiers, "void", adderMethodName, makeArg(typeName, slotName), makeArg("int", indexParam)); startMethodBody(out); newline(out); printMethod(out, methodModifiers, "void", removerMethodName, makeArg(typeName, slotName)); startMethodBody(out);
protected void generateStaticRelationSlots(Role role, PrintWriter out) { newline(out);