Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 1653 discussions
Author: bleny
Date: 2010-08-17 18:19:53 +0200 (Tue, 17 Aug 2010)
New Revision: 266
Url: http://nuiton.org/repositories/revision/wikitty/266
Log:
draft presentation wikitty
Added:
trunk/src/site/presentation_Wikitty_2010-08-20.odp
Added: trunk/src/site/presentation_Wikitty_2010-08-20.odp
===================================================================
(Binary files differ)
Property changes on: trunk/src/site/presentation_Wikitty_2010-08-20.odp
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
r265 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 16 Aug '10
by bleny@users.nuiton.org 16 Aug '10
16 Aug '10
Author: bleny
Date: 2010-08-16 18:58:46 +0200 (Mon, 16 Aug 2010)
New Revision: 265
Url: http://nuiton.org/repositories/revision/wikitty/265
Log:
abstract delegate to helper ; all setters now return old value
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/WikittyContractGenerator.java
branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.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-16 16:12:57 UTC (rev 264)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-16 16:58:46 UTC (rev 265)
@@ -59,12 +59,10 @@
}
for (ObjectModelClass businessEntity : model.getClasses()) {
-
- addImports(processedClasses.get(businessEntity));
-
- addConstructors(processedClasses.get(businessEntity));
-
- addConstants(businessEntity, processedClasses.get(businessEntity));
+ ObjectModelClass abstractClassForThisEntity = processedClasses.get(businessEntity);
+ addImports(abstractClassForThisEntity);
+ addConstructors(abstractClassForThisEntity);
+ addConstants(businessEntity, abstractClassForThisEntity);
}
processedClasses.clear();
@@ -228,6 +226,7 @@
protected void addOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(businessEntity, true);
+ String helperClassName = businessEntity.getName() + "Helper";
// generating operations with bodies to realize contract
for (ObjectModelAttribute attribute : businessEntity.getAttributes()) {
@@ -255,9 +254,9 @@
addAnnotation(abstractClass, getter, "Override");
String getterBody = ""
/*{
- <%= attributeTypeSimpleNameInSet %> result = getWikitty().<%=getFieldMethodName%>(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeType %>.class);
+ <%=attributeTypeSimpleNameInSet%> result = <%=helperClassName%>.<%=getterName%>(getWikitty());
return result;
-}*/;
+}*/;
setOperationBody(getter, getterBody);
String addName = "add" + StringUtils.capitalize(attributeName);
@@ -266,7 +265,7 @@
addParameter(adder, "String", "element");
String adderBody = ""
/*{
- getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+ <%=helperClassName%>.<%=addName%>(getWikitty(), element);
getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
}*/;
setOperationBody(adder, adderBody);
@@ -277,7 +276,7 @@
addParameter(remover, "String", "element");
String removerBody = ""
/*{
- getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+ <%=helperClassName%>.<%=removeName%>(getWikitty(), element);
getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
}*/;
setOperationBody(remover, removerBody);
@@ -287,7 +286,7 @@
addAnnotation(abstractClass, clear, "Override");
String clearBody = ""
/*{
- getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+ <%=helperClassName%>.<%=clearName%>(getWikitty());
getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
}*/;
setOperationBody(clear, clearBody);
@@ -302,24 +301,23 @@
addAnnotation(abstractClass, getter, "Override");
setOperationBody(getter, ""
/*{
- <%=attributeType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
- return result;
+ <%=attributeType%> value = <%=helperClassName%>.<%=getterName%>(getWikitty());
+ return value;
}*/);
String setterName = "set" + StringUtils.capitalize(attributeName);
- ObjectModelOperation setter = addOperation(abstractClass, setterName, "void");
+ ObjectModelOperation setter = addOperation(abstractClass, setterName, attributeType);
addAnnotation(abstractClass, setter, "Override");
addParameter(setter, attributeType, attributeName);
setOperationBody(setter, ""
/*{
- Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
- getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeName%>);
- getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attributeName%>);
+ <%=attributeType%> oldValue = <%=helperClassName%>.<%=setterName%>(getWikitty(), <%=attributeName%>);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=getter.getName()%>());
+ return oldValue;
}*/);
}
}
}
-
}
protected void addInheritedOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-16 16:12:57 UTC (rev 264)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-16 16:58:46 UTC (rev 265)
@@ -151,7 +151,7 @@
getter = addOperation(contract, getterName, attributeType);
String setterName = "set" + StringUtils.capitalize(attributeName);
- ObjectModelOperation setter = addOperation(contract, setterName, "void");
+ ObjectModelOperation setter = addOperation(contract, setterName, attributeType);
addParameter(setter, attributeType, attributeName);
}
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-16 16:12:57 UTC (rev 264)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-16 16:58:46 UTC (rev 265)
@@ -70,7 +70,7 @@
// now, for this attribute, we will generate add, remove and clear methods
// adding operations to contract
String getterName = "get" + StringUtils.capitalize(attributeName);
- ObjectModelOperation getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet);
+ ObjectModelOperation getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
addParameter(getter, "Wikitty", "wikitty");
String getterBody = ""
/*{
@@ -80,7 +80,7 @@
setOperationBody(getter, getterBody);
String addName = "add" + StringUtils.capitalize(attributeName);
- ObjectModelOperation adder = addOperation(helper, addName, "void");
+ ObjectModelOperation adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
addParameter(adder, "Wikitty", "wikitty");
addParameter(adder, attributeType, "element");
String adderBody = ""
@@ -90,7 +90,7 @@
setOperationBody(adder, adderBody);
String removeName = "remove" + StringUtils.capitalize(attributeName);
- ObjectModelOperation remover = addOperation(helper, removeName, "void");
+ ObjectModelOperation remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
addParameter(remover, "Wikitty", "wikitty");
addParameter(remover, attributeType, "element");
String removerBody = ""
@@ -100,7 +100,7 @@
setOperationBody(remover, removerBody);
String clearName = "clear" + StringUtils.capitalize(attributeName);
- ObjectModelOperation clear = addOperation(helper, clearName, "void");
+ ObjectModelOperation clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
addParameter(clear, "Wikitty", "wikitty");
String clearBody = ""
/*{
@@ -114,21 +114,23 @@
// adding getter and setter to contract
String getterName = "get" + StringUtils.capitalize(attributeName);
- ObjectModelOperation getter = addOperation(helper, getterName, attributeType);
+ ObjectModelOperation getter = addOperation(helper, getterName, attributeType, ObjectModelModifier.STATIC);
addParameter(getter, "Wikitty", "wikitty");
setOperationBody(getter, ""
/*{
- <%=attributeType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
- return result;
+ <%=attributeType%> value = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+ return value;
}*/);
String setterName = "set" + StringUtils.capitalize(attributeName);
- ObjectModelOperation setter = addOperation(helper, setterName, "void");
+ ObjectModelOperation setter = addOperation(helper, setterName, attributeType, ObjectModelModifier.STATIC);
addParameter(setter, "Wikitty", "wikitty");
addParameter(setter, attributeType, attributeName);
setOperationBody(setter, ""
/*{
+ <%=attributeType%> oldValue = <%=getter.getName()%>(wikitty);
wikitty.setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeName%>);
+ return oldValue;
}*/);
}
}
1
0
r264 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 16 Aug '10
by bleny@users.nuiton.org 16 Aug '10
16 Aug '10
Author: bleny
Date: 2010-08-16 18:12:57 +0200 (Mon, 16 Aug 2010)
New Revision: 264
Url: http://nuiton.org/repositories/revision/wikitty/264
Log:
bugfixes ; removing static equals
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/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-16 14:00:32 UTC (rev 263)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-16 16:12:57 UTC (rev 264)
@@ -64,8 +64,6 @@
addConstructors(processedClasses.get(businessEntity));
- addStaticEquals(businessEntity, processedClasses.get(businessEntity));
-
addConstants(businessEntity, processedClasses.get(businessEntity));
}
@@ -104,7 +102,6 @@
"long",
serialVersionUIDs.toString() + "L",
ObjectModelModifier.PRIVATE);
-
}
protected void addConstructors(ObjectModelClass clazz) {
@@ -229,44 +226,6 @@
}
- protected void addStaticEquals(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
-
- ObjectModelOperation equals = addOperation(abstractClass, "equals", "boolean", ObjectModelModifier.STATIC);
- addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w1");
- addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w2");
-
- // the body of the equals method, will be assembled while reading attributes
- String equalsBody = ""
-/*{
- boolean result = true;
-}*/;
- String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(businessEntity, true);
- for(ObjectModelAttribute attribute : businessEntity.getAttributes()) {
- if (attribute.isNavigable()) {
- // two variables needed below
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
-
- // considering field in equals body
- equalsBody += ""
-/*{
- if (result) {
- Object f1 = w1.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
- Object f2 = w2.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
- result = f1 == f2 || (f1 != null && f1.equals(f2));
- };
-}*/;
- }
- }
-
- // finishing equals body
- equalsBody += ""
-/*{
- return result;
-}*/;
- setOperationBody(equals, equalsBody);
-
- }
-
protected void addOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(businessEntity, true);
@@ -287,6 +246,7 @@
// 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
@@ -295,7 +255,7 @@
addAnnotation(abstractClass, getter, "Override");
String getterBody = ""
/*{
- <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeType %>.class);
+ <%= attributeTypeSimpleNameInSet %> result = getWikitty().<%=getFieldMethodName%>(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeType %>.class);
return result;
}*/;
setOperationBody(getter, getterBody);
@@ -334,7 +294,7 @@
} else {
- String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute.getType());
+ String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute);
// adding getter and setter to contract
String getterName = "get" + StringUtils.capitalize(attributeName);
@@ -353,8 +313,8 @@
setOperationBody(setter, ""
/*{
Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
- getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
- getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
+ getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeName%>);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attributeName%>);
}*/);
}
}
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-16 14:00:32 UTC (rev 263)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-16 16:12:57 UTC (rev 264)
@@ -65,6 +65,7 @@
// 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
@@ -73,7 +74,7 @@
addParameter(getter, "Wikitty", "wikitty");
String getterBody = ""
/*{
- <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeType%>.class);
+ <%=attributeTypeSimpleNameInSet%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeType%>.class);
return result;
}*/;
setOperationBody(getter, getterBody);
@@ -109,7 +110,7 @@
} else {
- String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute.getType());
+ String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute);
// adding getter and setter to contract
String getterName = "get" + StringUtils.capitalize(attributeName);
@@ -127,7 +128,7 @@
addParameter(setter, attributeType, attributeName);
setOperationBody(setter, ""
/*{
- wikitty.setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
+ wikitty.setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=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-16 14:00:32 UTC (rev 263)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2010-08-16 16:12:57 UTC (rev 264)
@@ -3,6 +3,7 @@
import java.util.HashSet;
import java.util.Set;
+import org.apache.commons.lang.StringUtils;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -77,54 +78,46 @@
* @param typeName a name of a business entity or "String", "Integer" etc.
* @return the name of a method "getFieldAsInt" for example
*/
- protected static String generateGetFieldAsCall(String typeName) {
- String asWhat = FQNtoSimpleName(typeName);
- if ("boolean".equals(asWhat)) {
- asWhat = "Boolean";
- } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
- asWhat = "Int";
- } else if ("Date".equals(asWhat)) {
- // asWhat = "Date";
- } else if (commonStrings.contains(asWhat)) {
- asWhat = "String";
+ protected static String generateGetFieldAsCall(ObjectModelAttribute attribute) {
+ String asWhat = null;
+ if (isAttributeCollection(attribute)) {
+ asWhat = getCollectionTypeName(attribute);
} else {
- asWhat = "String";
+ String simpleTypeName = FQNtoSimpleName(attribute.getType());
+ if (commonTypes.contains(simpleTypeName)) {
+ asWhat = StringUtils.capitalize(simpleTypeName);
+ } else {
+ asWhat = "Wikitty";
+ }
}
return "getFieldAs" + asWhat;
}
-
+
/** for a given type of attribute, the getter returned type must be... */
protected static String generateResultType(ObjectModelAttribute attribute,
boolean considerMultiplicity) {
- String type = FQNtoSimpleName(attribute.getType());
-
- if ("boolean".equals(type) || "Boolean".equals(type)) {
- //
- } else if ("int".equals(type) || "Integer".equals(type)) {
- //
- } else if ("Date".equals(type)) {
- //
- } else {
- type = "String";
+ String simpleTypeName = FQNtoSimpleName(attribute.getType());
+ if (! commonTypes.contains(simpleTypeName)) {
+ simpleTypeName = "String"; // return a wikitty Id
}
- String result = type;
if (considerMultiplicity && isAttributeCollection(attribute)) {
- result = "Collection<" + type + ">";
- if (attribute.isUnique()) {
- if (attribute.isOrdered()) {
- result = "LinkedHashSet<" + type + ">";
- } else {
- result = "Set<" + type + ">";
- }
- } else {
- result = "List<" + type + ">";
- }
+ simpleTypeName = getCollectionTypeName(attribute) + "<" + simpleTypeName + ">";
}
- return result;
+ return simpleTypeName;
}
+ protected static String getCollectionTypeName(ObjectModelAttribute attribute) {
+ String result = null;
+ if (attribute.isUnique()) {
+ result = "Set";
+ } else {
+ result = "List";
+ }
+ return result;
+ }
+
public static boolean isAttributeCollection(ObjectModelAttribute attribute) {
return attribute.getMaxMultiplicity() == -1 // -1 is infinity
|| attribute.getMaxMultiplicity() > 1;
@@ -133,21 +126,16 @@
protected static String typeToWikittyColumn(String type) {
String simpleType = FQNtoSimpleName(type);
String result = null;
- if ("Date".equals(simpleType)) {
- result = "Date";
- } else if ("String".equals(simpleType)) {
- result = "String";
- } else if ("boolean".equals(simpleType)) {
- result = "boolean";
- } else if ("int".equals(simpleType) ||
- "Integer".equals(simpleType)) {
- result = "Numeric";
- } else {
+ if (!commonTypes.contains(simpleType)) {
result = "Wikitty";
+ } else if(commonNumerics.contains(simpleType)) {
+ result = "Numeric";
+ } else if(commonStrings.contains(simpleType)) {
+ result = "String";
}
return result;
}
-
+
private static Set<String> commonNumerics;
static {
commonNumerics = new HashSet<String>();
@@ -182,6 +170,4 @@
commonTypes.add("Boolean");
commonTypes.add("Date");
}
-
-
}
1
0
r263 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 16 Aug '10
by bleny@users.nuiton.org 16 Aug '10
16 Aug '10
Author: bleny
Date: 2010-08-16 16:00:32 +0200 (Mon, 16 Aug 2010)
New Revision: 263
Url: http://nuiton.org/repositories/revision/wikitty/263
Log:
multiple inheritence, refactoring
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/WikittyContractGenerator.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/WikittyImplementationGenerator.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-16 09:06:20 UTC (rev 262)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-16 14:00:32 UTC (rev 263)
@@ -2,7 +2,9 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Random;
import org.apache.commons.lang.StringUtils;
@@ -13,6 +15,7 @@
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
@@ -32,76 +35,106 @@
return new WikittyPurifierTransformer();
}
+ protected Map<ObjectModelClass, ObjectModelClass> processedClasses =
+ new HashMap<ObjectModelClass, ObjectModelClass>();
+
@Override
- public void transformFromClass(ObjectModelClass clazz) {
- ObjectModelClass abstractClass = createAbstractClass(clazz.getName() + "Abstract", clazz.getPackageName());
+ public void transformFromModel(ObjectModel model) {
+ for (ObjectModelClass businessEntity : model.getClasses()) {
+ ObjectModelClass abstractClass = createAbstractClass(businessEntity.getName() + "Abstract", businessEntity.getPackageName());
+ processedClasses.put(businessEntity, abstractClass);
+ setSuperClass(abstractClass, "BusinessEntityWikitty");
+ addInterface(abstractClass, businessEntity.getQualifiedName());
+ }
+
+ for (ObjectModelClass businessEntity : model.getClasses()) {
+ addOperations(businessEntity, processedClasses.get(businessEntity));
+ }
+
+ // at this time, all operations in generated abstracts are just the operations
+ // like get/set etc. we will copy all operations of a given class to all children
+ // that's why constructors and others operations are not yet added
+ for (ObjectModelClass businessEntity : model.getClasses()) {
+ addInheritedOperations(businessEntity, processedClasses.get(businessEntity));
+ }
- // TODO 20100811 bleny remove unused imports
- addImport(abstractClass, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
- addImport(abstractClass, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
- addImport(abstractClass, WikittyTransformerUtil.WIKITTY_CLASS_FQN);
- addImport(abstractClass, "org.nuiton.wikitty.WikittyExtension");
- addImport(abstractClass, "org.nuiton.wikitty.WikittyUtil");
- addImport(abstractClass, "org.nuiton.wikitty.WikittyUser");
- addImport(abstractClass, "org.nuiton.wikitty.WikittyUserAbstract");
- addImport(abstractClass, "org.nuiton.wikitty.WikittyUserImpl");
- addImport(abstractClass, "org.nuiton.wikitty.TreeNode");
- addImport(abstractClass, "org.nuiton.wikitty.TreeNodeAbstract");
- addImport(abstractClass, "org.nuiton.wikitty.TreeNodeImpl");
- addImport(abstractClass, java.util.List.class);
- addImport(abstractClass, java.util.ArrayList.class);
- addImport(abstractClass, java.util.Collection.class);
- addImport(abstractClass, java.util.Collections.class);
- addImport(abstractClass, java.util.Set.class);
- addImport(abstractClass, java.util.Date.class);
+ for (ObjectModelClass businessEntity : model.getClasses()) {
- addInterface(abstractClass, clazz.getQualifiedName());
+ addImports(processedClasses.get(businessEntity));
- Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
- if (superClasses.isEmpty()) {
- // no inheritance so inheritance from BusinessEntityWikitty
- setSuperClass(abstractClass, "BusinessEntityWikitty");
- } else {
- for (ObjectModelClass superClass : superClasses) {
- // using "for" but there will be 0 or 1 iteration
- addInterface(abstractClass, superClass.getQualifiedName());
- setSuperClass(abstractClass, superClass.getQualifiedName() + "Impl");
- }
+ addConstructors(processedClasses.get(businessEntity));
+
+ addStaticEquals(businessEntity, processedClasses.get(businessEntity));
+
+ addConstants(businessEntity, processedClasses.get(businessEntity));
}
+ processedClasses.clear();
+ }
+
+
+ protected void addImports(ObjectModelClass clazz) {
+ // TODO 20100811 bleny remove unused imports
+ addImport(clazz, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
+ addImport(clazz, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN);
+ addImport(clazz, WikittyTransformerUtil.WIKITTY_CLASS_FQN);
+ addImport(clazz, "org.nuiton.wikitty.WikittyExtension");
+ addImport(clazz, "org.nuiton.wikitty.WikittyUtil");
+ addImport(clazz, "org.nuiton.wikitty.WikittyUser");
+ addImport(clazz, "org.nuiton.wikitty.WikittyUserAbstract");
+ addImport(clazz, "org.nuiton.wikitty.WikittyUserImpl");
+ addImport(clazz, "org.nuiton.wikitty.TreeNode");
+ addImport(clazz, "org.nuiton.wikitty.TreeNodeAbstract");
+ addImport(clazz, "org.nuiton.wikitty.TreeNodeImpl");
+ addImport(clazz, java.util.List.class);
+ addImport(clazz, java.util.ArrayList.class);
+ addImport(clazz, java.util.Collection.class);
+ addImport(clazz, java.util.Collections.class);
+ addImport(clazz, java.util.Set.class);
+ addImport(clazz, java.util.Date.class);
+ addImport(clazz, java.util.LinkedHashSet.class);
+ }
+
+ protected void addSerialVersionUID(ObjectModelClass clazz) {
// adding a generated serialVersionUID
Random random = new Random();
Long serialVersionUIDs = random.nextLong();
- addConstant(abstractClass,
+ addConstant(clazz,
"serialVersionUID",
"long",
serialVersionUIDs.toString() + "L",
ObjectModelModifier.PRIVATE);
- ObjectModelOperation constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
+ }
+
+ protected void addConstructors(ObjectModelClass clazz) {
+
+ ObjectModelOperation constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
setOperationBody(constructor, ""
/*{
super();
}*/);
- constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
+ constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
addParameter(constructor, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "wikitty");
setOperationBody(constructor, ""
/*{
super(wikitty);
}*/);
- constructor = addConstructor(abstractClass, ObjectModelModifier.PUBLIC);
+ constructor = addConstructor(clazz, ObjectModelModifier.PUBLIC);
addParameter(constructor, WikittyTransformerUtil.BUSINESS_ENTITY_WIKITTY_CLASS_FQN, "businessEntityWikitty");
setOperationBody(constructor, ""
/*{
super(businessEntityWikitty.getWikitty());
}*/);
-
+ }
+
+ protected void addConstants(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
// adding some constants about extension to abstract
addConstant(abstractClass, "extensions", "List<WikittyExtension>", null, ObjectModelModifier.PUBLIC);
- addConstant(abstractClass, "extension" + clazz.getName(), "WikittyExtension", null, ObjectModelModifier.PUBLIC);
+ addConstant(abstractClass, "extension" + businessEntity.getName(), "WikittyExtension", null, ObjectModelModifier.PUBLIC);
// ... and a getter
ObjectModelOperation getStaticExtensions = addOperation(abstractClass, "getStaticExtensions", "Collection<WikittyExtension>", ObjectModelModifier.PUBLIC);
@@ -111,45 +144,6 @@
return extensions;
}*/);
-
- //// preparing static equals(w1, w2)
-
- ObjectModelOperation equals = addOperation(abstractClass, "equals", "boolean", ObjectModelModifier.STATIC);
- addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w1");
- addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w2");
-
- // the body of the equals method, will be assembled while reading attributes
- String equalsBody = ""
-/*{
- boolean result = true;
-}*/;
- String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz, true);
- for(ObjectModelAttribute attribute : clazz.getAttributes()) {
- if (attribute.isNavigable()) {
- // two variables needed below
- // String fieldVariableName = "FIELD_" + clazz.getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
-
- // considering field in equals body
- equalsBody += ""
-/*{
- if (result) {
- Object f1 = w1.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
- Object f2 = w2.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
- result = f1 == f2 || (f1 != null && f1.equals(f2));
- };
-}*/;
- }
- }
-
- // finishing equals body
- equalsBody += ""
-/*{
- return result;
-}*/;
- setOperationBody(equals, equalsBody);
-
-
//// preparing a static block to initialize those constants
ObjectModelOperation staticInitialization = addBlock(abstractClass, ObjectModelModifier.STATIC);
@@ -160,7 +154,7 @@
// now process attributes
- for(ObjectModelAttribute attribute : clazz.getAttributes()) {
+ for(ObjectModelAttribute attribute : businessEntity.getAttributes()) {
if (attribute.isNavigable()) {
// now add the attribute to the piece of code that build the extension
String wikittyType = WikittyTransformerUtil.typeToWikittyColumn(attribute.getType());
@@ -189,24 +183,25 @@
}
// finishing static block
- String extensionVersion = clazz.getTagValue("version");
+ String extensionVersion = businessEntity.getTagValue("version");
if (extensionVersion == null || "".equals(extensionVersion)) {
extensionVersion = "0.1";
- log.warn("no version specified in model for " + clazz.getQualifiedName() + " using " + extensionVersion);
+ log.warn("no version specified in model for " + businessEntity.getQualifiedName() + " using " + extensionVersion);
}
// a piece of code used in the static block
String requires = null;
- for (ObjectModelClass superClass : superClasses) {
+ for (ObjectModelClass superClass : businessEntity.getSuperclasses()) {
// using "for" but there will be 0 or 1 iteration
requires = WikittyTransformerUtil.classToExtensionVariableName(superClass, true);
}
String buildFieldMapExtensionParametersInLine = StringUtils.join(buildFieldMapExtensionParameters, ", \n");
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(businessEntity, false);
String staticInitializationBody = ""
/*{
- extension<%=clazz.getName()%> =
- new WikittyExtension(EXT_<%=clazz.getName().toUpperCase()%>,
+ extension<%=businessEntity.getName()%> =
+ new WikittyExtension(<%=extensionVariableName%>,
"<%=extensionVersion%>", // version
<%= requires %>,
WikittyUtil.buildFieldMapExtension( // building field map
@@ -216,7 +211,7 @@
List<WikittyExtension> exts = new ArrayList<WikittyExtension>();
}*/;
- for (ObjectModelClass superClass : superClasses) {
+ for (ObjectModelClass superClass : businessEntity.getSuperclasses()) {
// using "for" but there will be 0 or 1 iteration
staticInitializationBody += ""
/*{
@@ -227,15 +222,56 @@
staticInitializationBody += ""
/*{
- exts.add(extension<%=clazz.getName()%>);
+ exts.add(extension<%=businessEntity.getName()%>);
extensions = Collections.unmodifiableList(exts);
}*/;
setOperationBody(staticInitialization, staticInitializationBody);
+ }
+
+ protected void addStaticEquals(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
+ ObjectModelOperation equals = addOperation(abstractClass, "equals", "boolean", ObjectModelModifier.STATIC);
+ addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w1");
+ addParameter(equals, WikittyTransformerUtil.WIKITTY_CLASS_FQN, "w2");
+
+ // the body of the equals method, will be assembled while reading attributes
+ String equalsBody = ""
+/*{
+ boolean result = true;
+}*/;
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(businessEntity, true);
+ for(ObjectModelAttribute attribute : businessEntity.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // two variables needed below
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
+ // considering field in equals body
+ equalsBody += ""
+/*{
+ if (result) {
+ Object f1 = w1.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
+ Object f2 = w2.getFieldAsObject(<%= extensionVariableName %>, <%= fieldVariableName %>);
+ result = f1 == f2 || (f1 != null && f1.equals(f2));
+ };
+}*/;
+ }
+ }
+
+ // finishing equals body
+ equalsBody += ""
+/*{
+ return result;
+}*/;
+ setOperationBody(equals, equalsBody);
+
+ }
+
+ protected void addOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(businessEntity, true);
+
// generating operations with bodies to realize contract
- for (ObjectModelAttribute attribute : clazz.getAttributes()) {
+ for (ObjectModelAttribute attribute : businessEntity.getAttributes()) {
if (attribute.isNavigable()) {
// needed below, in templates
String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
@@ -323,5 +359,28 @@
}
}
}
+
}
+
+ protected void addInheritedOperations(ObjectModelClass businessEntity, ObjectModelClass abstractClass) {
+ // now, add to this abstract all operation due to inheritence from
+ // other business entities
+
+ for (ObjectModelClass superClass : businessEntity.getSuperclasses()) {
+ addInterface(abstractClass, superClass.getQualifiedName()); // extends ?
+ // setSuperClass(abstractClass, superClass.getQualifiedName() + "Impl");
+ if (WikittyTransformerUtil.isBusinessEntity(superClass)) {
+ // getting the signatures and bodies of those operations
+ for (ObjectModelOperation operation : processedClasses.get(superClass).getOperations()) {
+
+ ObjectModelOperation operationClone = cloneOperationSignature(operation, abstractClass, true);
+ setOperationBody(operationClone, operation.getBodyCode());
+
+ // XXX 20100816 bleny should be a call to cloneOperation(operation, abstractClass, true);
+ }
+ }
+ }
+
+
+ }
}
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-16 09:06:20 UTC (rev 262)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-16 14:00:32 UTC (rev 263)
@@ -1,6 +1,10 @@
package org.nuiton.wikitty.generator;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
@@ -32,9 +36,25 @@
return new WikittyPurifierTransformer();
}
+
+ protected Map<ObjectModelClass, ObjectModelInterface> processedClasses =
+ new HashMap<ObjectModelClass, ObjectModelInterface>();
+
@Override
- public void transformFromClass(ObjectModelClass clazz) {
+ public void transformFromModel(ObjectModel model) {
+
+ log.info(model.getClasses().size() + " classes to process");
+ for (ObjectModelClass clazz : model.getClasses()) {
+ processClass(clazz);
+ }
+
+ processedClasses.clear();
+
+ }
+
+ protected void processClass(ObjectModelClass clazz) {
+ log.info("will process " + clazz.getPackageName() + ".." + clazz.getName());
ObjectModelInterface contract = createInterface(clazz.getName(), clazz.getPackageName());
addInterface(contract, WikittyTransformerUtil.BUSINESS_ENTITY_CLASS_FQN);
@@ -56,24 +76,17 @@
addImport(contract, java.util.Collections.class);
addImport(contract, java.util.Set.class);
addImport(contract, java.util.Date.class);
+ addImport(contract, java.util.LinkedHashSet.class);
setDocumentation(contract, clazz.getDocumentation());
-
- Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
- if (! superClasses.isEmpty()) {
- for (ObjectModelClass superClass : superClasses) {
- // using "for" but there will be 0 or 1 iteration
- addInterface(contract, superClass.getQualifiedName());
- }
- }
-
+
// adding public static final String EXT_CLIENT = "Client";
addConstant(contract,
"EXT_" + clazz.getName().toUpperCase(),
"String",
"\"" + clazz.getName() + "\"",
ObjectModelModifier.PUBLIC);
-
+
String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz, false);
for(ObjectModelAttribute attribute : clazz.getAttributes()) {
@@ -107,9 +120,9 @@
// there is a conflict, purifier transformer give as the right name to use
attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
}
-
+
ObjectModelOperation getter;
-
+
if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
// attributed is a collection, we will generate operations get, add, remove and clear
@@ -145,5 +158,25 @@
setDocumentation(getter, attribute.getDocumentation());
}
}
+
+ // now, add to this contract all operation due to inheritence from
+ // other business entities
+ Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
+ for (ObjectModelClass superClass : superClasses) {
+ addInterface(contract, superClass.getQualifiedName()); // extends ?
+ if (WikittyTransformerUtil.isBusinessEntity(superClass)) {
+ // superclass must have benn processed first to have its operations set
+ if (! processedClasses.containsKey(superClass)) {
+ processClass(superClass);
+ }
+
+ // getting the signatures of thoses operation
+ for (ObjectModelOperation operation : processedClasses.get(superClass).getOperations()) {
+ cloneOperationSignature(operation, contract, true);
+ }
+ }
+ }
+
+ processedClasses.put(clazz, 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-16 09:06:20 UTC (rev 262)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-16 14:00:32 UTC (rev 263)
@@ -39,6 +39,7 @@
addImport(helper, java.util.Collections.class);
addImport(helper, java.util.Set.class);
addImport(helper, java.util.Date.class);
+ addImport(helper, java.util.LinkedHashSet.class);
// making constructor for helper class (empty and private)
ObjectModelOperation constructor = addConstructor(helper, ObjectModelModifier.PRIVATE);
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java 2010-08-16 09:06:20 UTC (rev 262)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyImplementationGenerator.java 2010-08-16 14:00:32 UTC (rev 263)
@@ -38,6 +38,7 @@
addImport(implementation, java.util.Collections.class);
addImport(implementation, java.util.Set.class);
addImport(implementation, java.util.Date.class);
+ addImport(implementation, java.util.LinkedHashSet.class);
setSuperClass(implementation, clazz.getQualifiedName() + "Abstract");
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-16 09:06:20 UTC (rev 262)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2010-08-16 14:00:32 UTC (rev 263)
@@ -55,6 +55,7 @@
/** given "my.java.package.MyClass" or "MyClass" return "MyClass" */
protected static String FQNtoSimpleName(String fqn) {
+ // XXX should use GeneratorUtil#getSimpleName(String)
int lastDotIndex = fqn.lastIndexOf(".");
String simpleName = fqn;
if (lastDotIndex != -1) {
@@ -84,6 +85,8 @@
asWhat = "Int";
} else if ("Date".equals(asWhat)) {
// asWhat = "Date";
+ } else if (commonStrings.contains(asWhat)) {
+ asWhat = "String";
} else {
asWhat = "String";
}
@@ -110,8 +113,7 @@
result = "Collection<" + type + ">";
if (attribute.isUnique()) {
if (attribute.isOrdered()) {
- // FIXME 20100813 bleny doesn't take isUnique into account
- result = "List<" + type + ">";
+ result = "LinkedHashSet<" + type + ">";
} else {
result = "Set<" + type + ">";
}
1
0
r262 - branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 16 Aug '10
by bleny@users.nuiton.org 16 Aug '10
16 Aug '10
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");
+ }
+
+
}
1
0
r261 - in branches/wikitty-eugene-migration: . wikitty-generators/src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 13 Aug '10
by bleny@users.nuiton.org 13 Aug '10
13 Aug '10
Author: bleny
Date: 2010-08-13 17:21:26 +0200 (Fri, 13 Aug 2010)
New Revision: 261
Url: http://nuiton.org/repositories/revision/wikitty/261
Log:
update POM ; bug fixes in transformers
Modified:
branches/wikitty-eugene-migration/pom.xml
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/WikittyContractGenerator.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/WikittyTransformerUtil.java
Modified: branches/wikitty-eugene-migration/pom.xml
===================================================================
--- branches/wikitty-eugene-migration/pom.xml 2010-08-13 13:40:59 UTC (rev 260)
+++ branches/wikitty-eugene-migration/pom.xml 2010-08-13 15:21:26 UTC (rev 261)
@@ -223,7 +223,7 @@
<projectId>wikitty</projectId>
<!-- common versions used in sub-poms -->
- <eugene.version>2.1.1</eugene.version>
+ <eugene.version>2.1.2-SNAPSHOT</eugene.version>
<spring.version>3.0.1.RELEASE</spring.version>
<jetty.version>6.1.22</jetty.version>
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 13:40:59 UTC (rev 260)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-13 15:21:26 UTC (rev 261)
@@ -123,12 +123,12 @@
/*{
boolean result = true;
}*/;
- String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz);
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz, true);
for(ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// two variables needed below
// String fieldVariableName = "FIELD_" + clazz.getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
// considering field in equals body
equalsBody += ""
@@ -199,7 +199,7 @@
String requires = null;
for (ObjectModelClass superClass : superClasses) {
// using "for" but there will be 0 or 1 iteration
- requires = superClass.getName() + "." + WikittyTransformerUtil.classToExtensionVariableName(superClass);
+ requires = WikittyTransformerUtil.classToExtensionVariableName(superClass, true);
}
String buildFieldMapExtensionParametersInLine = StringUtils.join(buildFieldMapExtensionParameters, ", \n");
@@ -238,7 +238,7 @@
for (ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// needed below, in templates
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType());
String attributeName = attribute.getName();
@@ -247,7 +247,7 @@
attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
}
- if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+ if (WikittyTransformerUtil.isAttributeCollection(attribute)) {
// attributed is a collection, we will generate operations get, add, remove and clear
String attributeTypeSimpleNameInSet = "Set<" + attributeType + ">";
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-13 13:40:59 UTC (rev 260)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-13 15:21:26 UTC (rev 261)
@@ -57,6 +57,8 @@
addImport(contract, java.util.Set.class);
addImport(contract, java.util.Date.class);
+ setDocumentation(contract, clazz.getDocumentation());
+
Collection<ObjectModelClass> superClasses = clazz.getSuperclasses();
if (! superClasses.isEmpty()) {
for (ObjectModelClass superClass : superClasses) {
@@ -72,12 +74,12 @@
"\"" + clazz.getName() + "\"",
ObjectModelModifier.PUBLIC);
- String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz);
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz, false);
for(ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// two variables needed below
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, false);
// adding constants to contract
addConstant(contract,
@@ -97,8 +99,8 @@
for (ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// needed below, in templates
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
- String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType());
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute, true);
+ String attributeType = WikittyTransformerUtil.generateResultType(attribute, false);
String attributeName = attribute.getName();
if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) {
@@ -106,15 +108,17 @@
attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
}
+ ObjectModelOperation getter;
+
if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
// 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
String getterName = "get" + StringUtils.capitalize(attributeName);
- addOperation(contract, getterName, attributeTypeSimpleNameInSet);
+ getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
String addName = "add" + StringUtils.capitalize(attributeName);
ObjectModelOperation adder = addOperation(contract, addName, "void");
@@ -131,12 +135,14 @@
} else {
// attribute is not a collection, we generate a getter and a setter
String getterName = "get" + StringUtils.capitalize(attributeName);
- addOperation(contract, getterName, attributeType);
+ getter = addOperation(contract, getterName, attributeType);
String setterName = "set" + StringUtils.capitalize(attributeName);
ObjectModelOperation setter = addOperation(contract, setterName, "void");
addParameter(setter, attributeType, attributeName);
}
+
+ setDocumentation(getter, attribute.getDocumentation());
}
}
}
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 13:40:59 UTC (rev 260)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-13 15:21:26 UTC (rev 261)
@@ -39,41 +39,36 @@
addImport(helper, java.util.Collections.class);
addImport(helper, java.util.Set.class);
addImport(helper, java.util.Date.class);
-
- // provides interface constants for to the helper
- setSuperClass(helper, clazz.getQualifiedName() + "Impl");
// making constructor for helper class (empty and private)
ObjectModelOperation constructor = addConstructor(helper, ObjectModelModifier.PRIVATE);
- setOperationBody(constructor, "\n// utility class\n"); // empty implementation
-
-
+ setDocumentation(constructor, "utility class all provided methods are accessible the static way");
+ setOperationBody(constructor, "// empty\n"); // empty implementation
- String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz);
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz, true);
// generating operations with bodies to realize contract
for (ObjectModelAttribute attribute : clazz.getAttributes()) {
if (attribute.isNavigable()) {
// needed below, in templates
- String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
- String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType());
+ 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
attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
}
-
- if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+
+ 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
String getterName = "get" + StringUtils.capitalize(attributeName);
ObjectModelOperation getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet);
- addAnnotation(helper, getter, "Override");
addParameter(getter, "Wikitty", "wikitty");
String getterBody = ""
/*{
@@ -81,36 +76,33 @@
return result;
}*/;
setOperationBody(getter, getterBody);
-
+
String addName = "add" + StringUtils.capitalize(attributeName);
ObjectModelOperation adder = addOperation(helper, addName, "void");
- addAnnotation(helper, adder, "Override");
- addParameter(getter, "Wikitty", "wikitty");
+ addParameter(adder, "Wikitty", "wikitty");
addParameter(adder, "String", "element");
String adderBody = ""
/*{
- wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+ wikitty.addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
}*/;
setOperationBody(adder, adderBody);
-
+
String removeName = "remove" + StringUtils.capitalize(attributeName);
ObjectModelOperation remover = addOperation(helper, removeName, "void");
- addAnnotation(helper, remover, "Override");
- addParameter(getter, "Wikitty", "wikitty");
+ addParameter(remover, "Wikitty", "wikitty");
addParameter(remover, "String", "element");
String removerBody = ""
/*{
- wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+ wikitty.removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
}*/;
setOperationBody(remover, removerBody);
String clearName = "clear" + StringUtils.capitalize(attributeName);
ObjectModelOperation clear = addOperation(helper, clearName, "void");
- addAnnotation(helper, clear, "Override");
- addParameter(getter, "Wikitty", "wikitty");
+ addParameter(clear, "Wikitty", "wikitty");
String clearBody = ""
/*{
- wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
+ wikitty.clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
}*/;
setOperationBody(clear, clearBody);
@@ -121,7 +113,6 @@
// adding getter and setter to contract
String getterName = "get" + StringUtils.capitalize(attributeName);
ObjectModelOperation getter = addOperation(helper, getterName, attributeType);
- addAnnotation(helper, getter, "Override");
addParameter(getter, "Wikitty", "wikitty");
setOperationBody(getter, ""
/*{
@@ -131,12 +122,11 @@
String setterName = "set" + StringUtils.capitalize(attributeName);
ObjectModelOperation setter = addOperation(helper, setterName, "void");
- addAnnotation(helper, setter, "Override");
- addParameter(getter, "Wikitty", "wikitty");
+ addParameter(setter, "Wikitty", "wikitty");
addParameter(setter, attributeType, attributeName);
setOperationBody(setter, ""
/*{
- wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
+ wikitty.setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
}*/);
}
}
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 13:40:59 UTC (rev 260)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyTransformerUtil.java 2010-08-13 15:21:26 UTC (rev 261)
@@ -1,5 +1,8 @@
package org.nuiton.wikitty.generator;
+import java.util.HashSet;
+import java.util.Set;
+
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
@@ -25,15 +28,28 @@
/** given a class called Client will return "EXT_CLIENT"
* should be used as a variable name to store the extension name
+ * @param withClassNamePrefix add class name as prefix (will return "Client.EXT_CLIENT")
*/
- protected static String classToExtensionVariableName(ObjectModelClass clazz) {
- String extensionVariableName = "EXT_" + clazz.getName().toUpperCase();
+ protected static String classToExtensionVariableName(ObjectModelClass clazz,
+ boolean withClassNamePrefix) {
+ String extensionVariableName = "";
+ if (withClassNamePrefix) {
+ extensionVariableName += clazz.getName() + ".";
+ }
+ extensionVariableName += "EXT_" + clazz.getName().toUpperCase();
return extensionVariableName;
}
- /** given the field name of the class client, will return FIELD_CLIENT_NAME */
- protected static String attributeToFielVariableName(ObjectModelAttribute attribute) {
- String fieldVariableName = "FIELD_" + attribute.getDeclaringElement().getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
+ /** given the field name of the class Client, will return "FIELD_CLIENT_NAME"
+ * @param withClassNamePrefix add class name as prefix (ie "Client.FIELD_CLIENT_NAME")
+ */
+ protected static String attributeToFielVariableName(ObjectModelAttribute attribute,
+ boolean withClassNamePrefix) {
+ String fieldVariableName = "";
+ if (withClassNamePrefix) {
+ fieldVariableName += attribute.getDeclaringElement().getName() + ".";
+ }
+ fieldVariableName += "FIELD_" + attribute.getDeclaringElement().getName().toUpperCase() + "_" + attribute.getName().toUpperCase();
return fieldVariableName;
}
@@ -52,7 +68,7 @@
|| clazz.hasStereotype(BUSINESS_ENTITY_STEREOTYPE_OLD_NAME);
return result;
}
-
+
/**
* wikitty interface provide getFieldAsString, getFieldAsDate etc. methods
* this method returns the good name of the method to call depending the
@@ -73,22 +89,45 @@
}
return "getFieldAs" + asWhat;
}
-
- protected static String generateResultType(String typeName) {
- String asWhat = FQNtoSimpleName(typeName);
- if ("boolean".equals(asWhat)) {
- // asWhat = "boolean";
- } else if ("int".equals(asWhat) || "Integer".equals(asWhat)) {
- // asWhat = "Int";
- } else if ("Date".equals(asWhat)) {
- // asWhat = "Date";
+ /** for a given type of attribute, the getter returned type must be... */
+ protected static String generateResultType(ObjectModelAttribute attribute,
+ boolean considerMultiplicity) {
+ String type = FQNtoSimpleName(attribute.getType());
+
+ if ("boolean".equals(type) || "Boolean".equals(type)) {
+ //
+ } else if ("int".equals(type) || "Integer".equals(type)) {
+ //
+ } else if ("Date".equals(type)) {
+ //
} else {
- asWhat = "String";
+ type = "String";
}
- return asWhat;
+
+ String result = type;
+ if (considerMultiplicity && isAttributeCollection(attribute)) {
+ result = "Collection<" + type + ">";
+ if (attribute.isUnique()) {
+ if (attribute.isOrdered()) {
+ // FIXME 20100813 doesn't take isUnique into account
+ result = "List<" + type + ">";
+ } else {
+ result = "Set<" + type + ">";
+ }
+ } else {
+ result = "List<" + type + ">";
+ }
+ }
+
+ return result;
}
+ public static boolean isAttributeCollection(ObjectModelAttribute attribute) {
+ return attribute.getMaxMultiplicity() == -1 // -1 is infinity
+ || attribute.getMaxMultiplicity() > 1;
+ }
+
protected static String typeToWikittyColumn(String type) {
String simpleType = FQNtoSimpleName(type);
String result = null;
@@ -106,7 +145,6 @@
}
return result;
}
-
}
1
0
13 Aug '10
Author: bbrossaud
Date: 2010-08-13 15:40:59 +0200 (Fri, 13 Aug 2010)
New Revision: 260
Url: http://nuiton.org/repositories/revision/wikitty/260
Log:
addition proxy restore method which returns a wikitty object
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-08-13 12:52:59 UTC (rev 259)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-08-13 13:40:59 UTC (rev 260)
@@ -151,6 +151,17 @@
/**
* Restore wikitty entity with specified id or {@code null} if entity can't be found.
*
+ * @param id entity id
+ * @return wikitty entity with specified id or {@code null} if entity can't be found
+ */
+ public Wikitty restore(String id) {
+ Wikitty wikitty = wikittyService.restore(securityToken, id);
+ return wikitty;
+ }
+
+ /**
+ * Restore wikitty entity with specified id or {@code null} if entity can't be found.
+ *
* @param <E> object type
* @param clazz entity class
* @param id entity id
1
0
13 Aug '10
Author: sletellier
Date: 2010-08-13 14:52:59 +0200 (Fri, 13 Aug 2010)
New Revision: 259
Url: http://nuiton.org/repositories/revision/wikitty/259
Log:
Redefine equals and hashCode mothods
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-08-13 09:33:35 UTC (rev 258)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/BusinessEntityWikitty.java 2010-08-13 12:52:59 UTC (rev 259)
@@ -116,9 +116,26 @@
return Collections.emptyList();
}
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (!BusinessEntityWikitty.class.isAssignableFrom(obj.getClass())) {
+ return false;
+ }
+ BusinessEntityWikitty wikitty = (BusinessEntityWikitty) obj;
+ return getWikittyId().equals(wikitty.getWikittyId());
+ }
+
+ @Override
+ public int hashCode() {
+ return getWikittyId().hashCode();
+ }
+
/*
- * @see org.nuiton.wikitty.BusinessEntity#addPropertyChangeListener(java.beans.PropertyChangeListener)
- */
+ * @see org.nuiton.wikitty.BusinessEntity#addPropertyChangeListener(java.beans.PropertyChangeListener)
+ */
@Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
getPropertyChangeSupport().addPropertyChangeListener(listener);
1
0
r258 - in branches/wikitty-eugene-migration/wikitty-generators: . src/main/java/org/nuiton/wikitty/generator
by bleny@users.nuiton.org 13 Aug '10
by bleny@users.nuiton.org 13 Aug '10
13 Aug '10
Author: bleny
Date: 2010-08-13 11:33:35 +0200 (Fri, 13 Aug 2010)
New Revision: 258
Url: http://nuiton.org/repositories/revision/wikitty/258
Log:
complete migration to transformers
Modified:
branches/wikitty-eugene-migration/wikitty-generators/pom.xml
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/WikittyContractGenerator.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
Modified: branches/wikitty-eugene-migration/wikitty-generators/pom.xml
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/pom.xml 2010-08-13 08:30:55 UTC (rev 257)
+++ branches/wikitty-eugene-migration/wikitty-generators/pom.xml 2010-08-13 09:33:35 UTC (rev 258)
@@ -22,6 +22,10 @@
<artifactId>eugene</artifactId>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
</dependencies>
<!-- ************************************************************* -->
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 08:30:55 UTC (rev 257)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyAbstractGenerator.java 2010-08-13 09:33:35 UTC (rev 258)
@@ -5,6 +5,7 @@
import java.util.List;
import java.util.Random;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.Transformer;
@@ -201,6 +202,7 @@
requires = superClass.getName() + "." + WikittyTransformerUtil.classToExtensionVariableName(superClass);
}
+ String buildFieldMapExtensionParametersInLine = StringUtils.join(buildFieldMapExtensionParameters, ", \n");
String staticInitializationBody = ""
/*{
extension<%=clazz.getName()%> =
@@ -208,7 +210,7 @@
"<%=extensionVersion%>", // version
<%= requires %>,
WikittyUtil.buildFieldMapExtension( // building field map
-<%=StringUtils.join(buildFieldMapExtensionParameters, ", \n")%>));
+<%=buildFieldMapExtensionParametersInLine%>));
// init extensions
List<WikittyExtension> exts = new ArrayList<WikittyExtension>();
@@ -230,6 +232,96 @@
}*/;
setOperationBody(staticInitialization, staticInitializationBody);
+
+
+ // generating operations with bodies to realize contract
+ for (ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // needed below, in templates
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
+ String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType());
+
+ String attributeName = attribute.getName();
+ if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) {
+ // there is a conflict, purifier transformer give as the right name to use
+ attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
+ }
+
+ if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+ // attributed is a collection, we will generate operations get, add, remove and clear
+
+ String attributeTypeSimpleNameInSet = "Set<" + attributeType + ">";
+
+ // now, for this attribute, we will generate add, remove and clear methods
+ // adding operations to contract
+ String getterName = "get" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation getter = addOperation(abstractClass, getterName, attributeTypeSimpleNameInSet);
+ addAnnotation(abstractClass, getter, "Override");
+ String getterBody = ""
+/*{
+ <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeType %>.class);
+ return result;
+}*/;
+ setOperationBody(getter, getterBody);
+
+ String addName = "add" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation adder = addOperation(abstractClass, addName, "void");
+ addAnnotation(abstractClass, adder, "Override");
+ addParameter(adder, "String", "element");
+ String adderBody = ""
+/*{
+ getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
+}*/;
+ setOperationBody(adder, adderBody);
+
+ String removeName = "remove" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation remover = addOperation(abstractClass, removeName, "void");
+ addAnnotation(abstractClass, remover, "Override");
+ addParameter(remover, "String", "element");
+ String removerBody = ""
+/*{
+ getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
+}*/;
+ setOperationBody(remover, removerBody);
+
+ String clearName = "clear" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation clear = addOperation(abstractClass, clearName, "void");
+ addAnnotation(abstractClass, clear, "Override");
+ String clearBody = ""
+/*{
+ getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
+}*/;
+ setOperationBody(clear, clearBody);
+
+
+ } else {
+ String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute.getType());
+
+ // adding getter and setter to contract
+ String getterName = "get" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation getter = addOperation(abstractClass, getterName, attributeType);
+ addAnnotation(abstractClass, getter, "Override");
+ setOperationBody(getter, ""
+/*{
+ <%=attributeType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+ return result;
+}*/);
+
+ String setterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(abstractClass, setterName, "void");
+ addAnnotation(abstractClass, setter, "Override");
+ addParameter(setter, attributeType, attributeName);
+ setOperationBody(setter, ""
+/*{
+ Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
+ getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
+ getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
+}*/);
+ }
+ }
+ }
}
-
}
Modified: branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java
===================================================================
--- branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-13 08:30:55 UTC (rev 257)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyContractGenerator.java 2010-08-13 09:33:35 UTC (rev 258)
@@ -2,6 +2,7 @@
import java.util.Collection;
+import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.Transformer;
@@ -12,6 +13,8 @@
import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelInterface;
import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+import org.nuiton.util.StringUtil;
/*{generator option: writeString = }*/
/*{generator option: parentheses = false}*/
@@ -89,6 +92,52 @@
extensionVariableName + " + \"." + attribute.getName() + "\"",
ObjectModelModifier.PUBLIC);
}
- }
+ }
+
+ for (ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // needed below, in templates
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
+ String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType());
+
+ String attributeName = attribute.getName();
+ if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) {
+ // there is a conflict, purifier transformer give as the right name to use
+ attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
+ }
+
+ if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+ // attributed is a collection, we will generate operations get, add, remove and clear
+
+ String attributeTypeSimpleNameInSet = "Set<" + attributeType + ">";
+
+ // now, for this attribute, we will generate add, remove and clear methods
+ // adding operations to contract
+ String getterName = "get" + StringUtils.capitalize(attributeName);
+ addOperation(contract, getterName, attributeTypeSimpleNameInSet);
+
+ String addName = "add" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation adder = addOperation(contract, addName, "void");
+ addParameter(adder, "String", "element");
+
+ String removeName = "remove" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation remover = addOperation(contract, removeName, "void");
+ addParameter(remover, "String", "element");
+
+ String clearName = "clear" + StringUtils.capitalize(attributeName);
+ addOperation(contract, clearName, "void");
+
+
+ } else {
+ // attribute is not a collection, we generate a getter and a setter
+ String getterName = "get" + StringUtils.capitalize(attributeName);
+ addOperation(contract, getterName, attributeType);
+
+ String setterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(contract, setterName, "void");
+ addParameter(setter, attributeType, attributeName);
+ }
+ }
+ }
}
}
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 08:30:55 UTC (rev 257)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyHelperGenerator.java 2010-08-13 09:33:35 UTC (rev 258)
@@ -1,6 +1,8 @@
package org.nuiton.wikitty.generator;
+import org.apache.commons.lang.StringUtils;
import org.nuiton.eugene.java.ObjectModelTransformerToJava;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
@@ -44,5 +46,100 @@
// making constructor for helper class (empty and private)
ObjectModelOperation constructor = addConstructor(helper, ObjectModelModifier.PRIVATE);
setOperationBody(constructor, "\n// utility class\n"); // empty implementation
+
+
+
+ String extensionVariableName = WikittyTransformerUtil.classToExtensionVariableName(clazz);
+
+ // generating operations with bodies to realize contract
+ for (ObjectModelAttribute attribute : clazz.getAttributes()) {
+ if (attribute.isNavigable()) {
+ // needed below, in templates
+ String fieldVariableName = WikittyTransformerUtil.attributeToFielVariableName(attribute);
+ String attributeType = WikittyTransformerUtil.generateResultType(attribute.getType());
+
+ String attributeName = attribute.getName();
+ if (attribute.hasTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME)) {
+ // there is a conflict, purifier transformer give as the right name to use
+ attributeName = attribute.getTagValue(WikittyTransformerUtil.TAG_ALTERNATIVE_NAME);
+ }
+
+ if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
+ // attributed is a collection, we will generate operations get, add, remove and clear
+
+ String attributeTypeSimpleNameInSet = "Set<" + attributeType + ">";
+
+ // now, for this attribute, we will generate add, remove and clear methods
+ // adding operations to contract
+ String getterName = "get" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet);
+ addAnnotation(helper, getter, "Override");
+ addParameter(getter, "Wikitty", "wikitty");
+ String getterBody = ""
+/*{
+ <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeType%>.class);
+ return result;
+}*/;
+ setOperationBody(getter, getterBody);
+
+ String addName = "add" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation adder = addOperation(helper, addName, "void");
+ addAnnotation(helper, adder, "Override");
+ addParameter(getter, "Wikitty", "wikitty");
+ addParameter(adder, "String", "element");
+ String adderBody = ""
+/*{
+ wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+}*/;
+ setOperationBody(adder, adderBody);
+
+ String removeName = "remove" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation remover = addOperation(helper, removeName, "void");
+ addAnnotation(helper, remover, "Override");
+ addParameter(getter, "Wikitty", "wikitty");
+ addParameter(remover, "String", "element");
+ String removerBody = ""
+/*{
+ wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
+}*/;
+ setOperationBody(remover, removerBody);
+
+ String clearName = "clear" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation clear = addOperation(helper, clearName, "void");
+ addAnnotation(helper, clear, "Override");
+ addParameter(getter, "Wikitty", "wikitty");
+ String clearBody = ""
+/*{
+ wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
+}*/;
+ setOperationBody(clear, clearBody);
+
+
+ } else {
+ String getFieldMethodName = WikittyTransformerUtil.generateGetFieldAsCall(attribute.getType());
+
+ // adding getter and setter to contract
+ String getterName = "get" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation getter = addOperation(helper, getterName, attributeType);
+ addAnnotation(helper, getter, "Override");
+ addParameter(getter, "Wikitty", "wikitty");
+ setOperationBody(getter, ""
+/*{
+ <%=attributeType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
+ return result;
+}*/);
+
+ String setterName = "set" + StringUtils.capitalize(attributeName);
+ ObjectModelOperation setter = addOperation(helper, setterName, "void");
+ addAnnotation(helper, setter, "Override");
+ addParameter(getter, "Wikitty", "wikitty");
+ addParameter(setter, attributeType, attributeName);
+ setOperationBody(setter, ""
+/*{
+ wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
+}*/);
+ }
+ }
+ }
}
}
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 08:30:55 UTC (rev 257)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyMetaTransformer.java 2010-08-13 09:33:35 UTC (rev 258)
@@ -1,24 +1,10 @@
package org.nuiton.wikitty.generator;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Random;
-
-import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.AbstractMetaTransformer;
-import org.nuiton.eugene.TemplateConfiguration;
-import org.nuiton.eugene.Transformer;
-import org.nuiton.eugene.java.ObjectModelTransformerToJava;
import org.nuiton.eugene.models.object.ObjectModel;
-import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelClass;
-import org.nuiton.eugene.models.object.ObjectModelClassifier;
-import org.nuiton.eugene.models.object.ObjectModelInterface;
-import org.nuiton.eugene.models.object.ObjectModelModifier;
-import org.nuiton.eugene.models.object.ObjectModelOperation;
/**
*
@@ -49,13 +35,12 @@
private static final Log log = LogFactory.getLog(WikittyMetaTransformer.class);
-
-
public WikittyMetaTransformer() {
super(WikittyContractGenerator.class,
WikittyAbstractGenerator.class,
WikittyImplementationGenerator.class,
- WikittyHelperGenerator.class);
+ WikittyHelperGenerator.class
+ );
}
/** */
@@ -67,10 +52,6 @@
}
for (ObjectModelClass clazz : model.getClasses()) {
- if (clazz.getSuperclasses().size() > 1) {
- log.error("multiple inheritance for class " + clazz.getName());
- return false;
- }
if (clazz.getStereotypes().contains(WikittyTransformerUtil.BUSINESS_ENTITY_STEREOTYPE_OLD_NAME)) {
log.warn(clazz.getQualifiedName() + " uses deprecated \"" +
@@ -89,182 +70,4 @@
return true;
}
-// will be moved soon
-// protected void processAttribute(ObjectModelAttribute attribute) {
-// // two variables needed below
-// String extensionVariableName = WikittyGeneratorUtil.classToExtensionVariableName(clazz);
-// String fieldVariableName = WikittyGeneratorUtil.attributeToFielVariableName(attribute);
-//
-//
-//
-// // let's find a name for the getter
-// String getterName = getMethodName("get", contract, attribute, attribute.getTagValue("getter"));
-//
-// // let's find a name for the setter
-// String setterName = getMethodName("set", contract, attribute, attribute.getTagValue("setter"));
-//
-// // attribute type simple name as it should be in signature
-// String attributeTypeSimpleName = WikittyGeneratorUtil.FQNtoSimpleName(attribute.getType());
-// if ("boolean".equals(attributeTypeSimpleName)) {
-// attributeTypeSimpleName = "Boolean";
-// } else if ("int".equals(attributeTypeSimpleName)) {
-// attributeTypeSimpleName = "Integer";
-// }
-//
-// if (attribute.getMaxMultiplicity() > 1 || attribute.getMaxMultiplicity() == -1) {
-// // attributed is a collection, we will generate operations get, add, remove and clear
-// String attributeTypeSimpleNameInSet = "Set<" + attributeTypeSimpleName + ">";
-//
-// // now, for this attribute, we will generate add, remove and clear methods
-//
-// // adding operations to contract
-// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleNameInSet);
-//
-// String addName = getMethodName("add", contract, attribute, attribute.getTagValue("adder"));
-// ObjectModelOperation adder = addOperation(contract, addName, "void");
-// addParameter(adder, "String", "element");
-//
-// String removeName = getMethodName("remove", contract, attribute, attribute.getTagValue("remover"));
-// ObjectModelOperation remover = addOperation(contract, removeName, "void");
-// addParameter(remover, "String", "element");
-//
-// String clearName = getMethodName("clear", contract, attribute, attribute.getTagValue("clear"));
-// ObjectModelOperation clear = addOperation(contract, clearName, "void");
-//
-// // adding operations to abstract with bodies
-// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String getterBody = ""
-///*{
-// <%= attributeTypeSimpleNameInSet %> result = getWikitty().getFieldAsSet(<%= extensionVariableName %>, <%= fieldVariableName %>, <%= attributeTypeSimpleName %>.class);
-// return result;
-//}*/;
-// setOperationBody(getter, getterBody);
-//
-// adder = cloneOperationSignature(adder, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String adderBody = ""
-///*{
-// getWikitty().addToField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%= getter.getName() %>());
-//}*/;
-// setOperationBody(adder, adderBody);
-//
-// remover = cloneOperationSignature(remover, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String removerBody = ""
-///*{
-// getWikitty().removeFromField(<%=extensionVariableName%>, <%=fieldVariableName%>, element);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
-//}*/;
-// setOperationBody(remover, removerBody);
-//
-// clear = cloneOperationSignature(clear, abstractClass, true, ObjectModelModifier.PUBLIC);
-// String clearBody = ""
-///*{
-// getWikitty().clearField(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, null, <%=getter.getName()%>());
-//}*/;
-// setOperationBody(clear, clearBody);
-//
-// // adding operations to Helper with bodies
-// getter = addOperation(helper, getterName, attributeTypeSimpleNameInSet, ObjectModelModifier.STATIC);
-// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
-// setOperationBody(getter, ""
-///*{
-// <%=attributeTypeSimpleNameInSet%> result = wikitty.getFieldAsSet(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attributeTypeSimpleName%>.class);
-// return result;
-//}*/);
-//
-// adder = addOperation(helper, addName, "void", ObjectModelModifier.STATIC);
-// addParameter(adder, WIKITTY_CLASS_FQN, "wikitty");
-// addParameter(adder, attributeTypeSimpleName, "element");
-// setOperationBody(adder, ""
-///*{
-// wikitty.addToField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
-//}*/
-//);
-//
-// remover = addOperation(helper, removeName, "void", ObjectModelModifier.STATIC);
-// addParameter(remover, WIKITTY_CLASS_FQN, "wikitty");
-// addParameter(remover, attributeTypeSimpleName, "element");
-// setOperationBody(remover, ""
-///*{
-// wikitty.removeFromField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, element);
-//}*/);
-//
-// clear = addOperation(helper, clearName, "void", ObjectModelModifier.STATIC);
-// addParameter(clear, WIKITTY_CLASS_FQN, "wikitty");
-// setOperationBody(clear, ""
-///*{
-// wikitty.clearField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>);
-//}*/);
-//
-// } else {
-// // attribute is not a collection, we generate a getter and a setter
-// String getFieldMethodName = WikittyGeneratorUtil.generateGetFieldAsCall(attribute.getType());
-// String resultType = WikittyGeneratorUtil.generateResultType(attribute.getType());
-// attributeTypeSimpleName = resultType;
-//
-// // adding getter and setter to contract
-// ObjectModelOperation getter = addOperation(contract, getterName, attributeTypeSimpleName);
-// ObjectModelOperation setter = addOperation(contract, setterName, "void");
-// addParameter(setter, attributeTypeSimpleName, attribute.getName());
-//
-// // adding getter and setter to abstract with bodies
-// getter = cloneOperationSignature(getter, abstractClass, true, ObjectModelModifier.PUBLIC);
-// setOperationBody(getter, ""
-///*{
-// <%=resultType%> result = getWikitty().<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// return result;
-//}*/);
-//
-// setter = cloneOperationSignature(setter, abstractClass, true, ObjectModelModifier.PUBLIC);
-// setOperationBody(setter, ""
-///*{
-// Object oldValue = getField(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// getWikitty().setField(<%=extensionVariableName%>, <%=fieldVariableName%>, <%=attribute.getName()%>);
-// getPropertyChangeSupport().firePropertyChange(<%=fieldVariableName%>, oldValue, <%=attribute.getName()%>);
-//}*/);
-//
-// // adding getter and setter to Helper with bodies
-// getter = addOperation(helper, getterName, attributeTypeSimpleName, ObjectModelModifier.STATIC);
-// addParameter(getter, WIKITTY_CLASS_FQN, "wikitty");
-// setOperationBody(getter, ""
-///*{
-// <%=resultType%> result = wikitty.<%=getFieldMethodName%>(<%=extensionVariableName%>, <%=fieldVariableName%>);
-// return result;
-//}*/);
-//
-// setter = addOperation(helper, setterName, "void", ObjectModelModifier.STATIC);
-// addParameter(setter, WIKITTY_CLASS_FQN, "wikitty");
-// addParameter(setter, attributeTypeSimpleName, attribute.getName());
-// setOperationBody(setter, ""
-///*{
-// wikitty.setField(<%=extensionVariableName%>, <%=clazz.getName()%>.<%=fieldVariableName%>, <%=attribute.getName()%>);
-//}*/);
-// }
-// }
-
- /** getMethodName("add", contract, attribute, "myNameForThisAdder")
- * will return "myNameForThisAdder" if not already defined in contract ;
- * if already defined, will try add<attributeName>. If it already exists
- * will return add<attributeName>From<ExtensionName> */
- protected String getMethodName(String operatorName,
- ObjectModelClassifier classifier,
- ObjectModelAttribute attribute,
- String claimedValue) {
- String methodName = claimedValue;
- if (methodName != null) {
- if (! classifier.getOperations(methodName).isEmpty()) {
- log.warn(methodName + " operation already exists in " + attribute.getDeclaringElement().getName() + " ignoring tagValue");
- methodName = null;
- }
- }
-
- if (methodName == null) {
- methodName = operatorName + StringUtils.capitalize(attribute.getName());
- if (! classifier.getOperations(methodName).isEmpty()) {
- methodName += "From" + attribute.getDeclaringElement().getName();
- }
- }
- return methodName;
- }
}
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 08:30:55 UTC (rev 257)
+++ branches/wikitty-eugene-migration/wikitty-generators/src/main/java/org/nuiton/wikitty/generator/WikittyPurifierTransformer.java 2010-08-13 09:33:35 UTC (rev 258)
@@ -23,8 +23,10 @@
private static final Log log = LogFactory.getLog(WikittyPurifierTransformer.class);
+ /** for a given class, store all the names used by this class and subClasses */
Map<ObjectModelClass, List<String>> namesUsedByClass = new HashMap<ObjectModelClass, List<String>>();
+ /** class of the original model that are already processed */
List<ObjectModelClass> processedClasses = new ArrayList<ObjectModelClass>();
/**
1
0
Author: sletellier
Date: 2010-08-13 10:30:55 +0200 (Fri, 13 Aug 2010)
New Revision: 257
Url: http://nuiton.org/repositories/revision/wikitty/257
Log:
Oups
Modified:
trunk/wikitty-hessian-server/pom.xml
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2010-08-13 08:27:13 UTC (rev 256)
+++ trunk/wikitty-hessian-server/pom.xml 2010-08-13 08:30:55 UTC (rev 257)
@@ -54,11 +54,6 @@
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
- <dependency>
- <groupId>postgresql</groupId>
- <artifactId>postgresql</artifactId>
- <scope>runtime</scope>
- </dependency>
<!-- TEST -->
<dependency>
<groupId>junit</groupId>
1
0