Author: echatellier Date: 2011-07-05 17:02:52 +0200 (Tue, 05 Jul 2011) New Revision: 1053 Url: http://nuiton.org/repositories/revision/wikitty/1053 Log: Generate multiples requires. Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java Modified: trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java =================================================================== --- trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2011-07-05 14:23:24 UTC (rev 1052) +++ trunk/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2011-07-05 15:02:52 UTC (rev 1053) @@ -58,7 +58,7 @@ public class WikittyAbstractGenerator extends ObjectModelTransformerToJava { private static final Log log = LogFactory.getLog(WikittyAbstractGenerator.class); - + /** map busines entity from source model to generated abstract class */ protected Map<ObjectModelClass, ObjectModelClass> processedClasses = new HashMap<ObjectModelClass, ObjectModelClass>(); @@ -163,7 +163,7 @@ addImport(clazz, Date.class); addImport(clazz, LinkedHashSet.class); } - + protected void addSerialVersionUID(ObjectModelClass clazz) { // adding a generated serialVersionUID Random random = new Random(); @@ -174,9 +174,9 @@ serialVersionUIDs.toString() + "L", ObjectModelModifier.PRIVATE); } - + protected void addConstructors(ObjectModelClass clazz) { - + ObjectModelOperation constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC); setOperationBody(constructor, "" /*{ @@ -196,9 +196,9 @@ /*{ super(businessEntityImpl.getWikitty()); }*/); - + } - + protected void addConstants(ObjectModelClass businessEntity, ObjectModelClass abstractClass) { // adding some constants about extension to abstract addConstant(abstractClass, "extensions", "List<WikittyExtension>", null, ObjectModelModifier.PUBLIC); @@ -236,7 +236,7 @@ + (attribute.getMaxMultiplicity() == -1 ? "*" : attribute.getMaxMultiplicity()) + "]"; } - + // // generate a string line like " deprecated=true" or "" // String deprecated = attribute.hasTagValue("deprecated") ? " deprecated=" + attribute.getTagValue("deprecated") : ""; // // generate a string line like ' documentation="my documentation"' or "" @@ -271,12 +271,14 @@ } // a piece of code used in the static block - String requires = null; + String requires = ""; + String requiresSep = ""; for (ObjectModelClass superClass : businessEntity.getSuperclasses()) { // using "for" but there will be 0 or 1 iteration addImport(abstractClass, superClass); addImport(abstractClass, superClass.getQualifiedName() + "Abstract"); - requires = WikittyTransformerUtil.classToExtensionVariableName(superClass, true); + requires += requiresSep + WikittyTransformerUtil.classToExtensionVariableName(superClass, true); + requiresSep = ","; } String buildFieldMapExtensionParametersInLine = StringUtils.join(buildFieldMapExtensionParameters, ", \n"); @@ -335,10 +337,10 @@ if (WikittyTransformerUtil.isAttributeCollection(attribute)) { // attributed is a collection, we will generate operations get, add, remove and clear - + String attributeTypeSimpleNameInSet = WikittyTransformerUtil.generateResultType(attribute, true); String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute); - + // now, for this attribute, we will generate add, remove and clear methods // adding operations to contract getterName = "get" + StringUtils.capitalize(attributeName); @@ -348,7 +350,7 @@ /*{ <%=attributeTypeSimpleNameInSet%> result = <%=helperClassName%>.<%=getterName%>(getWikitty()); return result; -}*/; +}*/; setOperationBody(getter, getterBody); String setterName = "set" + capitalizedAttributeName; @@ -431,7 +433,7 @@ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=getter.getName()%>()); }*/); } - + // save the getter name for this attribute attributeToGetterName.put(businessEntity.getName() + "." + attributeName, getterName); } @@ -515,7 +517,7 @@ entitiesWithInheritedOperations.add(businessEntity); } } - + /** add a toString method * if a toString is tagValue is attached to businessEntity, it will be used * to generate a toString as this : @@ -530,7 +532,7 @@ protected void addToString(ObjectModelClass businessEntity, ObjectModelClass abstractClass) { String toStringOperationBody = null; - + if (businessEntity.hasTagValue(WikittyTransformerUtil.TAG_TO_STRING)) { String toStringPattern = businessEntity.getTagValue(WikittyTransformerUtil.TAG_TO_STRING); @@ -603,7 +605,7 @@ // needed below, in templates String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true); String attributeType = WikittyTransformerUtil.generateResultType(attribute, false); - + String attributeName = attribute.getName(); if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) { // there is a conflict, purifier transformer give as the right name to use @@ -614,11 +616,11 @@ if (WikittyTransformerUtil.isAttributeCollection(attribute)) { // attributed is a collection, we will generate operations get, add, remove and clear - + String attributeTypeSimpleNameInSet = WikittyTransformerUtil.generateResultType(attribute, true); String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute); String attributeNameCapitalized = StringUtils.capitalize(attributeName); - + // now, for this attribute, we will generate add, remove and clear methods // adding operations to contract getterName = "get" + attributeNameCapitalized; @@ -719,11 +721,11 @@ } }*/; setOperationBody(clear, clearBody); - - + + } else { String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute); - + // adding getter and setter to contract getterName = "get" + StringUtils.capitalize(attributeName); ObjectModelOperation getter = addOperation(abstractClassForThisMetaExtension, getterName, attributeType); @@ -738,7 +740,7 @@ } return value; }*/); - + String setterName = "set" + StringUtils.capitalize(attributeName); ObjectModelOperation setter = addOperation(abstractClassForThisMetaExtension, setterName, "void"); addAnnotation(abstractClassForThisMetaExtension, setter, "Override");