r262 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
Author: bleny Date: 2010-08-16 11:06:20 +0200 (Mon, 16 Aug 2010) New Revision: 262 Url: http://nuiton.org/repositories/revision/wikitty/262 Log: starting multiple inheritance support Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java =================================================================== --- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-13 15:21:26 UTC (rev 261) +++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-16 09:06:20 UTC (rev 262) @@ -239,7 +239,7 @@ if (attribute.isNavigable()) { // needed below, in templates String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true); - String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType()); + String attributeType = WikittyTransformerUtil.generateResultType(attribute, false); String attributeName = attribute.getName(); if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) { @@ -250,7 +250,7 @@ if (WikittyTransformerUtil.isAttributeCollection(attribute)) { // attributed is a collection, we will generate operations get, add, remove and clear - String attributeTypeSimpleNameInSet = "Set<" + attributeType + ">"; + String attributeTypeSimpleNameInSet = WikittyTransformerUtil.generateResultType(attribute, true); // now, for this attribute, we will generate add, remove and clear methods // adding operations to contract Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java =================================================================== --- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-13 15:21:26 UTC (rev 261) +++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-16 09:06:20 UTC (rev 262) @@ -80,7 +80,7 @@ String addName = "add" + StringUtils.capitalize(attributeName); ObjectModelOperation adder = addOperation(helper, addName, "void"); addParameter(adder, "Wikitty", "wikitty"); - addParameter(adder, "String", "element"); + addParameter(adder, attributeType, "element"); String adderBody = "" /*{ wikitty.addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element); @@ -90,7 +90,7 @@ String removeName = "remove" + StringUtils.capitalize(attributeName); ObjectModelOperation remover = addOperation(helper, removeName, "void"); addParameter(remover, "Wikitty", "wikitty"); - addParameter(remover, "String", "element"); + addParameter(remover, attributeType, "element"); String removerBody = "" /*{ wikitty.removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element); Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java =================================================================== --- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java 2010-08-13 15:21:26 UTC (rev 261) +++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java 2010-08-16 09:06:20 UTC (rev 262) @@ -36,11 +36,13 @@ private static final Log log = LogFactory.getLog(WikittyMetaTransformer.class); public WikittyMetaTransformer() { + super(WikittyContractGenerator.class, WikittyAbstractGenerator.class, WikittyImplementationGenerator.class, WikittyHelperGenerator.class ); + } /** */ @@ -53,6 +55,7 @@ for (ObjectModelClass clazz : model.getClasses()) { + // warn user if deprecated stereotype is used if (clazz.getStereotypes().contains(WikittyTransformerUtil.BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)) { log.warn(clazz.getQualifiedName() + " uses deprecated \"" + WikittyTransformerUtil.BUSINESS_ENTITY_STEREOTYPE_OLD_NAME Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java =================================================================== --- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java 2010-08-13 15:21:26 UTC (rev 261) +++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java 2010-08-16 09:06:20 UTC (rev 262) @@ -68,50 +68,47 @@ // allUsedNames contains name that we // can't use without generating a conflict for (ObjectModelAttribute attribute : clazz.getAttributes()) { - if (allUsedNames.contains(attribute.getName())) { - // conflict ! + + // will be null as long as a non-conflicting name is found + String attributeName = null; - // let's try to find an alternative name for this attribute - // as long as we has not found, alternativeName should - // remains null - String alternativeName = null; - - // first, try to use an alternative name provided by the user in the model - if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) { - alternativeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME); - if (allUsedNames.contains(alternativeName)) { - // using alternative name lead to a conflict - alternativeName = null; - } + if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) { + attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME); + if (allUsedNames.contains(attributeName)) { + // using alternative name lead to a conflict + attribute.getTagValues().remove(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME); + attributeName = null; } + } - if (alternativeName == null) { - // it wasn't a success, try to generate an alternative name - alternativeName = attribute.getName() + "From" + clazz.getName(); - if (allUsedNames.contains(alternativeName)) { - log.error("are you joking ? do you *really* " + - "need to call an attribue" + - alternativeName + " ?"); - alternativeName = null; - } + if (attributeName == null) { + attributeName = attribute.getName(); + if (allUsedNames.contains(attributeName)) { + // using alternative name lead to a conflict + attributeName = null; } - - if (alternativeName == null) { - // still no alternative :-( - log.error("no way to resolve conflict with attribute" + - attribute.getName() + " from class " + clazz - + ". You should add or change a tagValue \"" + - WikittyTransformerUtil.TAG_ALTERNATIVE_NAME + - "\" on this attribute"); + } + + if (attributeName == null) { + attributeName = attribute.getName() + "From" + clazz.getName(); + if (allUsedNames.contains(attributeName)) { + // using alternative name lead to a conflict + attributeName = null; } else { - // using alternative name is OK - addTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME, alternativeName); - allUsedNames.add(alternativeName); + addTagValue(attribute, WikittyTransformerUtil.TAG_ALTERNATIVE_NAME, attributeName); } - + } + + // finally + if (attributeName == null) { + // still no alternative :-( + log.error("no way to resolve conflict with attribute" + + attribute.getName() + " from class " + clazz + + ". You should add or change a tagValue \"" + + WikittyTransformerUtil.TAG_ALTERNATIVE_NAME + + "\" on this attribute"); } else { - // no conflict, we name consider this attribute name as taken - allUsedNames.add(attribute.getName()); + allUsedNames.add(attributeName); } } Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java =================================================================== --- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2010-08-13 15:21:26 UTC (rev 261) +++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2010-08-16 09:06:20 UTC (rev 262) @@ -110,7 +110,7 @@ result = "Collection<" + type + ">"; if (attribute.isUnique()) { if (attribute.isOrdered()) { - // FIXME 20100813 doesn't take isUnique into account + // FIXME 20100813 bleny doesn't take isUnique into account result = "List<" + type + ">"; } else { result = "Set<" + type + ">"; @@ -146,5 +146,40 @@ return result; } + private static Set<String> commonNumerics; + static { + commonNumerics = new HashSet<String>(); + commonNumerics.add("byte"); + commonNumerics.add("Byte"); + commonNumerics.add("short"); + commonNumerics.add("Short"); + commonNumerics.add("int"); + commonNumerics.add("Integer"); + commonNumerics.add("long"); + commonNumerics.add("Long"); + commonNumerics.add("float"); + commonNumerics.add("Float"); + commonNumerics.add("double"); + commonNumerics.add("Double"); + } + private static Set<String> commonStrings; + static { + commonStrings = new HashSet<String>(); + commonStrings.add("char"); + commonStrings.add("Char"); + commonStrings.add("String"); + } + + private static Set<String> commonTypes; + static { + commonTypes = new HashSet<String>(); + commonTypes.addAll(commonNumerics); + commonTypes.addAll(commonStrings); + commonTypes.add("boolean"); + commonTypes.add("Boolean"); + commonTypes.add("Date"); + } + + }
participants (1)
-
bleny@users.nuiton.org