Eugene-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
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
June 2012
- 1 participants
- 3 discussions
r1154 - trunk/eugene/src/main/java/org/nuiton/eugene/models/object
by athimel@users.nuiton.org 01 Jun '12
by athimel@users.nuiton.org 01 Jun '12
01 Jun '12
Author: athimel
Date: 2012-06-01 13:09:24 +0200 (Fri, 01 Jun 2012)
New Revision: 1154
Url: http://nuiton.org/repositories/revision/eugene/1154
Log:
Add missing toString method on ObjectModelUMLModifier for consistancy regarding to ObjectModelJavaModifier
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java 2012-06-01 10:54:38 UTC (rev 1153)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java 2012-06-01 11:09:24 UTC (rev 1154)
@@ -60,4 +60,10 @@
return name();
}
+ @Override
+ public String toString() {
+ String result = name().toLowerCase();
+ return result;
+ }
+
}
1
0
r1153 - in trunk: eugene/src/main/java/org/nuiton/eugene/models/object src/site/resources/images/logos
by athimel@users.nuiton.org 01 Jun '12
by athimel@users.nuiton.org 01 Jun '12
01 Jun '12
Author: athimel
Date: 2012-06-01 12:54:38 +0200 (Fri, 01 Jun 2012)
New Revision: 1153
Url: http://nuiton.org/repositories/revision/eugene/1153
Log:
Add missing file header and svn:keywords
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
trunk/src/site/resources/images/logos/jrst-logo.png
trunk/src/site/resources/images/logos/restructuredtext-logo.png
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java 2012-06-01 10:51:04 UTC (rev 1152)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java 2012-06-01 10:54:38 UTC (rev 1153)
@@ -1,3 +1,26 @@
+/*
+ * #%L
+ * EUGene :: EUGene
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2004 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.eugene.models.object;
import com.google.common.collect.ImmutableSet;
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java 2012-06-01 10:51:04 UTC (rev 1152)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java 2012-06-01 10:54:38 UTC (rev 1153)
@@ -1,3 +1,26 @@
+/*
+ * #%L
+ * EUGene :: EUGene
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2004 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.eugene.models.object;
import com.google.common.collect.ImmutableSet;
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/src/site/resources/images/logos/jrst-logo.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/src/site/resources/images/logos/restructuredtext-logo.png
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
Author: athimel
Date: 2012-06-01 12:51:04 +0200 (Fri, 01 Jun 2012)
New Revision: 1152
Url: http://nuiton.org/repositories/revision/eugene/1152
Log:
fixes #107 Remove attributes from the ObjectModel(Attr|Op|Class|Iface|Param) when based on an ObjectModelModifier.
ObjectModelModifier in splitter in two enum and used as a contract.
Added:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
Modified:
trunk/eugene/pom.xml
trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java
trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelModifier.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/validator/NameBasedValidator.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtension.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAssociationClassImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelOperationImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelParameterImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelComplexeStateImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelStateImpl.java
trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java
trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java
trunk/pom.xml
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/pom.xml 2012-06-01 10:51:04 UTC (rev 1152)
@@ -52,6 +52,11 @@
</dependency>
<dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-digester3</artifactId>
</dependency>
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/Transformer.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,14 +25,14 @@
package org.nuiton.eugene;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.models.Model;
+
import java.io.File;
import java.io.IOException;
import java.util.Properties;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.models.Model;
-
/**
* Transformer
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -28,7 +28,11 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.EugeneTagValues;
-import org.nuiton.eugene.models.object.*;
+import org.nuiton.eugene.models.object.ObjectModelAttribute;
+import org.nuiton.eugene.models.object.ObjectModelClass;
+import org.nuiton.eugene.models.object.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
@@ -188,7 +192,7 @@
constantName,
String.class,
"\"" + attrName + "\"",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
}
@@ -332,7 +336,7 @@
attrName,
attrType,
"",
- ObjectModelModifier.PROTECTED
+ ObjectModelJavaModifier.PROTECTED
);
}
@@ -344,7 +348,7 @@
operations,
ouput,
true,
- ObjectModelModifier.ABSTRACT
+ ObjectModelJavaModifier.ABSTRACT
);
}
@@ -373,7 +377,7 @@
output,
getJavaBeanMethodName(methodPrefix , attrName),
attrType,
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
setOperationBody(getter, ""
/*{
@@ -390,7 +394,7 @@
output,
getJavaBeanMethodName("get", attrName),
attrType,
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(getChild, "int", "index");
setOperationBody(getChild, ""
@@ -410,7 +414,7 @@
output,
getJavaBeanMethodName("add", attrName),
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(addChild, attrType, attrName);
@@ -439,7 +443,7 @@
output,
getJavaBeanMethodName("addAll", attrName),
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(addAllChild, "java.util.Collection<" + attrType + ">", attrName);
@@ -468,7 +472,7 @@
output,
getJavaBeanMethodName("remove", attrName),
"boolean",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, attrType, attrName);
String methodName = getJavaBeanMethodName("get", attrName);
@@ -506,7 +510,7 @@
output,
getJavaBeanMethodName("removeAll", attrName),
"boolean",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, "java.util.Collection<" + attrType + ">", attrName);
StringBuilder buffer = new StringBuilder();
@@ -544,7 +548,7 @@
output,
getJavaBeanMethodName("contains", attrName),
"boolean",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, attrType, attrName);
StringBuilder buffer = new StringBuilder();
@@ -573,7 +577,7 @@
output,
getJavaBeanMethodName("containsAll", attrName),
"boolean",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, "java.util.Collection<" + attrType + ">", attrName);
StringBuilder buffer = new StringBuilder();
@@ -602,7 +606,7 @@
output,
getJavaBeanMethodName("set", attrName),
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, attrType, attrName);
@@ -628,7 +632,7 @@
ObjectModelOperation getChild = addOperation(
output,
"getChild", "<T> T",
- ObjectModelModifier.PROTECTED
+ ObjectModelJavaModifier.PROTECTED
);
addParameter(getChild, "java.util.Collection<T>", "childs");
addParameter(getChild, "int", "index");
@@ -662,7 +666,7 @@
JavaGeneratorUtil.SERIAL_VERSION_UID,
"long",
serialVersionUID + "L",
- ObjectModelModifier.PRIVATE
+ ObjectModelJavaModifier.PRIVATE
);
}
@@ -716,7 +720,7 @@
JavaGeneratorUtil.SERIAL_VERSION_UID,
"long",
"1L",
- ObjectModelModifier.PRIVATE
+ ObjectModelJavaModifier.PRIVATE
);
return resultClassImpl;
}
@@ -727,8 +731,8 @@
"pcs",
PropertyChangeSupport.class,
"new PropertyChangeSupport(this)",
- ObjectModelModifier.PROTECTED,
- ObjectModelModifier.FINAL
+ ObjectModelJavaModifier.PROTECTED,
+ ObjectModelJavaModifier.FINAL
);
// Add PropertyListener
@@ -738,7 +742,7 @@
operation = addOperation(output,
"addPropertyChangeListener",
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, PropertyChangeListener.class, "listener");
setOperationBody(operation, ""
@@ -750,7 +754,7 @@
operation = addOperation(output,
"addPropertyChangeListener",
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, String.class, "propertyName");
addParameter(operation, PropertyChangeListener.class, "listener");
@@ -763,7 +767,7 @@
operation = addOperation(output,
"removePropertyChangeListener",
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, PropertyChangeListener.class, "listener");
setOperationBody(operation, ""
@@ -775,7 +779,7 @@
operation = addOperation(output,
"removePropertyChangeListener",
"void",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
addParameter(operation, String.class, "propertyName");
addParameter(operation, PropertyChangeListener.class, "listener");
@@ -788,7 +792,7 @@
operation = addOperation(output,
"firePropertyChange",
"void",
- ObjectModelModifier.PROTECTED
+ ObjectModelJavaModifier.PROTECTED
);
addParameter(operation, String.class, "propertyName");
addParameter(operation, Object.class, "oldValue");
@@ -802,7 +806,7 @@
operation = addOperation(output,
"firePropertyChange",
"void",
- ObjectModelModifier.PROTECTED
+ ObjectModelJavaModifier.PROTECTED
);
addParameter(operation, String.class, "propertyName");
addParameter(operation, Object.class, "newValue");
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBuilder.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -41,6 +41,7 @@
import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelElement;
import org.nuiton.eugene.models.object.ObjectModelEnumeration;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
import org.nuiton.eugene.models.object.ObjectModelParameter;
@@ -173,7 +174,7 @@
name,
type,
"",
- ObjectModelModifier.PROTECTED
+ ObjectModelJavaModifier.PROTECTED
);
}
@@ -252,7 +253,7 @@
*/
public ObjectModelClass createAbstractClass(String name,
String packageName) {
- return createClass(name, packageName, ObjectModelModifier.ABSTRACT);
+ return createClass(name, packageName, ObjectModelJavaModifier.ABSTRACT);
}
/**
@@ -351,7 +352,7 @@
throws IllegalArgumentException {
if (!visibility.isVisibility()) {
throw new IllegalArgumentException(
- "Illegal visibility type : " + visibility.name() +
+ "Illegal visibility type : " + visibility.toString() +
" for " + classifier.getQualifiedName());
}
@@ -360,8 +361,8 @@
type,
value,
visibility,
- ObjectModelModifier.STATIC,
- ObjectModelModifier.FINAL
+ ObjectModelJavaModifier.STATIC,
+ ObjectModelJavaModifier.FINAL
);
}
@@ -423,23 +424,15 @@
Set<ObjectModelModifier> modifiers = new HashSet<ObjectModelModifier>();
if (attribute.isStatic()) {
- modifiers.add(ObjectModelModifier.STATIC);
+ modifiers.add(ObjectModelJavaModifier.STATIC);
}
if (attribute.isFinal()) {
- modifiers.add(ObjectModelModifier.FINAL);
+ modifiers.add(ObjectModelJavaModifier.FINAL);
}
if (attribute.isTransient()) {
- modifiers.add(ObjectModelModifier.TRANSIENT);
+ modifiers.add(ObjectModelJavaModifier.TRANSIENT);
}
- if (attribute.getVisibility().equals("public")) {
- modifiers.add(ObjectModelModifier.PUBLIC);
- } else if (attribute.getVisibility().equals("protected")) {
- modifiers.add(ObjectModelModifier.PROTECTED);
- } else if (attribute.getVisibility().equals("private")) {
- modifiers.add(ObjectModelModifier.PRIVATE);
- } else if (attribute.getVisibility().equals("")) {
- modifiers.add(ObjectModelModifier.PACKAGE);
- }
+ modifiers.add(ObjectModelJavaModifier.fromVisibility(attribute.getVisibility()));
return addAttribute(
classifier,
@@ -462,7 +455,7 @@
ObjectModelModifier... modifiers) {
ObjectModelOperationImpl operation = (ObjectModelOperationImpl)
addOperation(classifier, null, null, modifiers);
- if (Arrays.asList(modifiers).contains(ObjectModelModifier.STATIC)) {
+ if (Arrays.asList(modifiers).contains(ObjectModelJavaModifier.STATIC)) {
operation.setStatic(true);
}
return operation;
@@ -503,7 +496,7 @@
if (!visibility.isVisibility()) {
throw new IllegalArgumentException(
- "Illegal visibility type : " + visibility.name() +
+ "Illegal visibility type : " + visibility.toString() +
" for " + classifier.getQualifiedName());
}
return addOperation(classifier, classifier.getName(), null, visibility);
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGenerator.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,6 +25,23 @@
package org.nuiton.eugene.java;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.eugene.GeneratorUtil;
+import org.nuiton.eugene.java.extension.AnnotationsManagerExtension;
+import org.nuiton.eugene.java.extension.ImportsManagerExtension;
+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.ObjectModelElement;
+import org.nuiton.eugene.models.object.ObjectModelEnumeration;
+import org.nuiton.eugene.models.object.ObjectModelGenerator;
+import org.nuiton.eugene.models.object.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+import org.nuiton.eugene.models.object.ObjectModelParameter;
+
import java.io.File;
import java.io.IOException;
import java.io.Writer;
@@ -34,16 +51,7 @@
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.eugene.GeneratorUtil;
-import org.nuiton.eugene.models.object.*;
-import org.nuiton.eugene.java.extension.ImportsManagerExtension;
-import org.nuiton.eugene.java.extension.AnnotationsManagerExtension;
-
/*{generator option: parentheses = true}*/
/*{generator option: writeString = output.write}*/
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaGeneratorUtil.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -31,6 +31,7 @@
import org.nuiton.eugene.models.object.ObjectModel;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelElement;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
import org.nuiton.eugene.models.object.ObjectModelParameter;
@@ -85,7 +86,7 @@
// compute visibility modifer
String visibility = op.getVisibility();
ObjectModelModifier modifier =
- ObjectModelModifier.toValue(visibility);
+ ObjectModelJavaModifier.fromVisibility(visibility);
int length = extraModifiers.length;
if (length == 0) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaInterfaceTransformer.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -30,7 +30,7 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.models.object.ObjectModelAttribute;
import org.nuiton.eugene.models.object.ObjectModelInterface;
-import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
import java.util.Set;
@@ -110,7 +110,7 @@
constantName,
attr.getType(),
attr.getDefaultValue(),
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/java/ObjectModelTransformerToJava.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -33,12 +33,29 @@
import org.nuiton.eugene.GeneratorUtil;
import org.nuiton.eugene.Template;
import org.nuiton.eugene.java.extension.ImportsManager;
-import org.nuiton.eugene.models.object.*;
+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.ObjectModelDependency;
+import org.nuiton.eugene.models.object.ObjectModelElement;
+import org.nuiton.eugene.models.object.ObjectModelEnumeration;
+import org.nuiton.eugene.models.object.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+import org.nuiton.eugene.models.object.ObjectModelParameter;
+import org.nuiton.eugene.models.object.ObjectModelTransformer;
+import org.nuiton.eugene.models.object.ObjectModelType;
import org.nuiton.i18n.I18n;
import java.beans.Introspector;
import java.net.URL;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
/**
* Created: 28 oct. 2009
@@ -481,7 +498,7 @@
// add body only if operation is not abstract
boolean opAbstract = false;
for (ObjectModelModifier modifier : modifiers) {
- if (modifier == ObjectModelModifier.ABSTRACT) {
+ if (modifier == ObjectModelJavaModifier.ABSTRACT) {
opAbstract = true;
break;
}
@@ -780,7 +797,7 @@
constantName,
String.class,
"\"" + literal + "\"",
- ObjectModelModifier.PUBLIC
+ ObjectModelJavaModifier.PUBLIC
);
constantNames.add(constantName);
}
@@ -831,7 +848,7 @@
String i18nPrefix) {
ObjectModelOperation block =
- addBlock(output, ObjectModelModifier.STATIC);
+ addBlock(output, ObjectModelJavaModifier.STATIC);
StringBuilder buffer = new StringBuilder(300);
addImport(output, I18n.class);
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModel.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -26,11 +26,11 @@
package org.nuiton.eugene.models.object;
+import org.nuiton.eugene.models.Model;
+
import java.util.Collection;
import java.util.List;
-import org.nuiton.eugene.models.Model;
-
/**
* Abstraction for the root node of object model trees.
* This an entry point for browsing a model tree. This object offers
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelBuilder.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -147,19 +147,20 @@
ObjectModelModifier... modifiers)
throws IllegalArgumentException {
- for (ObjectModelModifier modifier : modifiers) {
- switch (modifier) {
- case ABSTRACT:
- clazz.setAbstract(true);
- break;
- case STATIC:
- clazz.setStatic(true);
- break;
- default:
- throw new IllegalArgumentException(
- "Unsupported modifier type '" + modifier.name() + "'");
- }
- }
+ clazz.addModifier(modifiers);
+// for (ObjectModelModifier modifier : modifiers) {
+// switch (modifier) {
+// case ABSTRACT:
+// clazz.setAbstract(true);
+// break;
+// case STATIC:
+// clazz.setStatic(true);
+// break;
+// default:
+// throw new IllegalArgumentException(
+// "Unsupported modifier type '" + modifier.name() + "'");
+// }
+// }
}
/**
@@ -235,32 +236,33 @@
attribute.setType(type);
attribute.setDefaultValue(value);
- for (ObjectModelModifier modifier : modifiers) {
- if (modifier.isVisibility()) {
- attribute.setVisibility(modifier.toString());
- } else {
- switch (modifier) {
- case STATIC:
- attribute.setStatic(true);
- break;
- case FINAL:
- attribute.setFinal(true);
- break;
- case ORDERED:
- attribute.setOrdering(modifier.toString());
- break;
- case UNIQUE:
- attribute.setUnique(true);
- break;
- case TRANSIENT:
- attribute.setTransient(true);
- break;
- default:
- throw new IllegalArgumentException(
- "Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- }
+ attribute.addModifier(modifiers);
+// for (ObjectModelModifier modifier : modifiers) {
+// if (modifier.isVisibility()) {
+// attribute.setVisibility(modifier.toString());
+// } else {
+// switch (modifier) {
+// case STATIC:
+// attribute.setStatic(true);
+// break;
+// case FINAL:
+// attribute.setFinal(true);
+// break;
+// case ORDERED:
+// attribute.setOrdering(modifier.toString());
+// break;
+// case UNIQUE:
+// attribute.setUnique(true);
+// break;
+// case TRANSIENT:
+// attribute.setTransient(true);
+// break;
+// default:
+// throw new IllegalArgumentException(
+// "Unsupported modifier type '" + modifier.name() + "'");
+// }
+// }
+// }
ObjectModelClassifierImpl classifierImpl = (ObjectModelClassifierImpl) classifier;
classifierImpl.addAttribute(attribute);
@@ -298,32 +300,33 @@
attribute.setMaxMultiplicity(maxMultiplicity);
attribute.setType(classifierB.getQualifiedName());
- for (ObjectModelModifier modifier : modifiers) {
-
- if (modifier.isVisibility()) {
- attribute.setVisibility(modifier.toString());
- } else if (modifier.isAssociationType()) {
- attribute.setAssociationType(modifier.toString());
- } else {
- switch (modifier) {
- case ORDERED:
- attribute.setOrdering(modifier.toString());
- break;
- case UNIQUE:
- attribute.setUnique(true);
- break;
- case STATIC:
- attribute.setStatic(true);
- break;
- case NAVIGABLE:
- attribute.setNavigable(true);
- break;
- default:
- throw new IllegalArgumentException(
- "Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- }
+ attribute.addModifier(modifiers);
+// for (ObjectModelModifier modifier : modifiers) {
+//
+// if (modifier.isVisibility()) {
+// attribute.setVisibility(modifier.toString());
+// } else if (modifier.isAssociationType()) {
+// attribute.setAssociationType(modifier.toString());
+// } else {
+// switch (modifier) {
+// case ORDERED:
+// attribute.setOrdering(modifier.toString());
+// break;
+// case UNIQUE:
+// attribute.setUnique(true);
+// break;
+// case STATIC:
+// attribute.setStatic(true);
+// break;
+// case NAVIGABLE:
+// attribute.setNavigable(true);
+// break;
+// default:
+// throw new IllegalArgumentException(
+// "Unsupported modifier type '" + modifier.name() + "'");
+// }
+// }
+// }
ObjectModelClassifierImpl impl = (ObjectModelClassifierImpl) classifierA;
impl.addAttribute(attribute);
return attribute;
@@ -458,22 +461,23 @@
result.setReturnParameter(returnParameter);
}
- for (ObjectModelModifier modifier : modifiers) {
- if (modifier.isVisibility()) {
- result.setVisibility(modifier.toString());
- } else {
- switch (modifier) {
- case STATIC:
- result.setStatic(true);
- break;
- case ABSTRACT:
- result.setAbstract(true);
- break;
- default:
- throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
- }
- }
- }
+ result.addModifier(modifiers);
+// for (ObjectModelModifier modifier : modifiers) {
+// if (modifier.isVisibility()) {
+// result.setVisibility(modifier.toString());
+// } else {
+// switch (modifier) {
+// case STATIC:
+// result.setStatic(true);
+// break;
+// case ABSTRACT:
+// result.setAbstract(true);
+// break;
+// default:
+// throw new IllegalArgumentException("Unsupported modifier type '" + modifier.name() + "'");
+// }
+// }
+// }
((ObjectModelClassifierImpl) classifier).addOperation(result);
return result;
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelJavaModifier.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -0,0 +1,71 @@
+package org.nuiton.eugene.models.object;
+
+import com.google.common.collect.ImmutableSet;
+
+import java.util.Set;
+
+/**
+ * Enum that represents Java possible modifiers
+ *
+ * @author Arnaud Thimel <thimel(a)codelutin.com>
+ * @since 2.4.3
+ */
+public enum ObjectModelJavaModifier implements ObjectModelModifier {
+
+ STATIC,
+ FINAL,
+ ABSTRACT,
+ TRANSIENT,
+
+ PUBLIC,
+ PROTECTED,
+ PRIVATE,
+ PACKAGE,
+
+ VOLATILE,
+ SYNCHRONIZED,
+ NATIVE,
+ STRICTFP;
+
+ public static final Set<? extends ObjectModelModifier> visibilityModifiers =
+ ImmutableSet.of(PUBLIC, PROTECTED, PRIVATE, PACKAGE);
+
+ @Override
+ public boolean isVisibility() {
+ return visibilityModifiers.contains(this);
+ }
+
+ @Override
+ public boolean isAssociationType() {
+ return false;
+ }
+
+ @Override
+ public String getName() {
+ return name();
+ }
+
+ @Override
+ public String toString() {
+ String result = name().toLowerCase();
+ if (PACKAGE.equals(this)) {
+ result = "";
+ }
+ return result;
+ }
+
+ public static ObjectModelJavaModifier fromVisibility(String name) {
+ if (name.equals(PUBLIC.toString())) {
+ return PUBLIC;
+ } else if (name.equals(PRIVATE.toString())) {
+ return PRIVATE;
+ } else if (name.equals(PROTECTED.toString())) {
+ return PROTECTED;
+ } else if (name.equals(PACKAGE.toString())) {
+ return PACKAGE;
+ } else {
+ return null;
+ }
+ }
+
+}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelModifier.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelModifier.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelModifier.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -27,7 +27,7 @@
package org.nuiton.eugene.models.object;
/**
- * ObjectModelModifier
+ * Modifiers that can be used
*
* Created: 3 nov. 2009
*
@@ -36,62 +36,39 @@
*
* Mise a jour: $Date$
* par : */
-public enum ObjectModelModifier {
+public interface ObjectModelModifier {
- STATIC("static"),
- FINAL("final"),
- ABSTRACT("abstract"),
- TRANSIENT("transient"),
-
- PUBLIC("public"),
- PROTECTED("protected"),
- PRIVATE("private"),
- PACKAGE(""),
+ // Still present only for backward compatibility. Please use ObjectModelJavaModifier.*
+ @Deprecated public static final ObjectModelModifier STATIC = ObjectModelJavaModifier.STATIC;
+ @Deprecated public static final ObjectModelModifier FINAL = ObjectModelJavaModifier.FINAL;
+ @Deprecated public static final ObjectModelModifier ABSTRACT = ObjectModelJavaModifier.ABSTRACT;
+ @Deprecated public static final ObjectModelModifier TRANSIENT = ObjectModelJavaModifier.TRANSIENT;
+ @Deprecated public static final ObjectModelModifier PUBLIC = ObjectModelJavaModifier.PUBLIC;
+ @Deprecated public static final ObjectModelModifier PROTECTED = ObjectModelJavaModifier.PROTECTED;
+ @Deprecated public static final ObjectModelModifier PRIVATE = ObjectModelJavaModifier.PRIVATE;
+ @Deprecated public static final ObjectModelModifier PACKAGE = ObjectModelJavaModifier.PACKAGE;
- AGGREGATE("aggregate"),
- COMPOSITE("composite"),
- UNIQUE("unique"),
+ // Still present only for backward compatibility. Please use ObjectModelUMLModifier.*
+ @Deprecated public static final ObjectModelModifier AGGREGATE = ObjectModelUMLModifier.AGGREGATE;
+ @Deprecated public static final ObjectModelModifier COMPOSITE = ObjectModelUMLModifier.COMPOSITE;
+ @Deprecated public static final ObjectModelModifier UNIQUE = ObjectModelUMLModifier.UNIQUE;
+ @Deprecated public static final ObjectModelModifier ORDERED = ObjectModelUMLModifier.ORDERED;
+ @Deprecated public static final ObjectModelModifier NAVIGABLE = ObjectModelUMLModifier.NAVIGABLE;
- ORDERED("ordered"),
- NAVIGABLE("navigable");
+ /**
+ * @return true is the current ObjectModelModifier is a Java visibility
+ */
+ boolean isVisibility();
- private String stringValue;
+ /**
+ * @return true is the current ObjectModelModifier is an UML association
+ * type
+ */
+ boolean isAssociationType();
- ObjectModelModifier(String stringValue) {
- this.stringValue = stringValue;
- }
+ /**
+ * @return the name of the constant. This refers to Enum.name().
+ */
+ String getName();
- public boolean isVisibility() {
- return this == PUBLIC ||
- this == PROTECTED ||
- this == PRIVATE ||
- this == PACKAGE;
- }
-
- public boolean isAssociationType() {
- return this == AGGREGATE ||
- this == COMPOSITE;
- }
-
- @Override
- public String toString() {
- return stringValue;
- }
-
- public static ObjectModelModifier toValue(String name) {
- if (name.equals(PUBLIC.toString())) {
- return PUBLIC;
- } else if (name.equals(PRIVATE.toString())) {
- return PRIVATE;
- } else if (name.equals(PROTECTED.toString())) {
- return PROTECTED;
- } else if (name.equals(PACKAGE.toString())) {
- return PACKAGE;
- } else {
- return null;
- }
- }
-
-
-
}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelUMLModifier.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -0,0 +1,40 @@
+package org.nuiton.eugene.models.object;
+
+import com.google.common.collect.ImmutableSet;
+
+import java.util.Set;
+
+/**
+ * Enum that represents UML modifiers.
+ *
+ * @author Arnaud Thimel <thimel(a)codelutin.com>
+ * @since 2.4.3
+ */
+public enum ObjectModelUMLModifier implements ObjectModelModifier {
+
+ AGGREGATE,
+ COMPOSITE,
+ UNIQUE,
+
+ ORDERED,
+ NAVIGABLE;
+
+ public static final Set<ObjectModelUMLModifier> associationTypes =
+ ImmutableSet.of(AGGREGATE, COMPOSITE);
+
+ @Override
+ public boolean isVisibility() {
+ return false;
+ }
+
+ @Override
+ public boolean isAssociationType() {
+ return associationTypes.contains(this);
+ }
+
+ @Override
+ public String getName() {
+ return name();
+ }
+
+}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/validator/NameBasedValidator.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/validator/NameBasedValidator.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/validator/NameBasedValidator.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,11 +25,11 @@
package org.nuiton.eugene.models.object.validator;
+import org.nuiton.eugene.models.object.ObjectModel;
+
import java.util.HashMap;
import java.util.Map;
-import org.nuiton.eugene.models.object.ObjectModel;
-
/**
* NameBasedValidator.
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtension.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtension.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ExternalCacheExtension.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,12 +25,13 @@
package org.nuiton.eugene.models.object.xml;
-import java.util.HashMap;
-import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.GeneratorUtil;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* ExternalCacheExtension
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAssociationClassImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAssociationClassImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAssociationClassImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,10 +25,6 @@
package org.nuiton.eugene.models.object.xml;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.models.object.ObjectModelAssociationClass;
@@ -36,6 +32,10 @@
import org.nuiton.eugene.models.object.ObjectModelClass;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
/**
* ObjectModelAssociationClassImpl.java
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelAttributeImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,6 +25,9 @@
package org.nuiton.eugene.models.object.xml;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
import org.apache.commons.lang3.StringUtils;
import org.nuiton.eugene.EugeneStereoTypes;
import org.nuiton.eugene.GeneratorUtil;
@@ -32,7 +35,12 @@
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.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelUMLModifier;
+import java.util.Set;
+
/**
* ObjectModelAttributeImpl.
*
@@ -52,18 +60,17 @@
public static final String ATTRIBUTE_TYPE_COMPOSITE = "composite";
+ public static final ObjectModelJavaModifier DEFAULT_VISIBILITY = ObjectModelJavaModifier.PROTECTED;
+
protected String reverseAttributeName;
protected int reverseMaxMultiplicity = -1;
- protected String associationType;
- protected String visibility = "protected";
protected ObjectModelClassifier reference;
protected String associationClassName;
- protected boolean isStatic;
- protected boolean isFinal;
- protected boolean isTransient;
- protected boolean navigable = true;
+ private static Set<ObjectModelModifier> authorizedModifiers;
+
public ObjectModelAttributeImpl() {
+ addModifier(ObjectModelUMLModifier.NAVIGABLE); // Navigable by default
}
public void postInit() {
@@ -79,7 +86,14 @@
}
public void setAssociationType(String associationType) {
- this.associationType = associationType;
+ removeModifiers(ObjectModelUMLModifier.associationTypes);
+ if (ATTRIBUTE_TYPE_SHARED.equals(associationType) || ATTRIBUTE_TYPE_AGGREGATE.equals(associationType)) {
+ addModifier(ObjectModelUMLModifier.AGGREGATE);
+ } else if (ATTRIBUTE_TYPE_COMPOSITE.equals(associationType)) {
+ addModifier(ObjectModelUMLModifier.COMPOSITE);
+ } else {
+ throw new IllegalArgumentException("Unexpected association type: " + associationType);
+ }
}
public void setReverseMaxMultiplicity(int reverseMaxMultiplicity) {
@@ -87,25 +101,57 @@
}
public void setVisibility(String visibility) {
- this.visibility = visibility;
+ ObjectModelModifier modifier = ObjectModelJavaModifier.fromVisibility(visibility);
+ removeModifiers(ObjectModelJavaModifier.visibilityModifiers);
+ if (modifier == null) {
+ modifier = DEFAULT_VISIBILITY; // default visibility
+ }
+ addModifier(modifier);
}
public void setFinal(boolean isFinal) {
- this.isFinal = isFinal;
+ addOrRemoveModifier(ObjectModelJavaModifier.FINAL, isFinal);
}
public void setTransient(boolean isTransient) {
- this.isTransient = isTransient;
+ addOrRemoveModifier(ObjectModelJavaModifier.TRANSIENT, isTransient);
}
public void setStatic(boolean isStatic) {
- this.isStatic = isStatic;
+ super.setStatic(isStatic);
}
+ @Override
+ protected Set<ObjectModelModifier> getAuthorizedModifiers() {
+ if (authorizedModifiers == null) {
+ // http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.3.1
+ // static final transient volatile
+ Set<ObjectModelModifier> modifiers = Sets.newHashSet(
+ (ObjectModelModifier)ObjectModelJavaModifier.STATIC, // Force cast because of generics limitation
+ ObjectModelJavaModifier.FINAL,
+ ObjectModelJavaModifier.TRANSIENT,
+ ObjectModelJavaModifier.VOLATILE,
+ ObjectModelUMLModifier.AGGREGATE,
+ ObjectModelUMLModifier.COMPOSITE,
+ ObjectModelUMLModifier.NAVIGABLE,
+ ObjectModelUMLModifier.ORDERED,
+ ObjectModelUMLModifier.UNIQUE
+ );
+ Iterables.addAll(modifiers, ObjectModelJavaModifier.visibilityModifiers);
+ authorizedModifiers = ImmutableSet.copyOf(modifiers);
+ }
+ return authorizedModifiers;
+ }
+
public void setNavigable(boolean navigable) {
- this.navigable = navigable;
+ addOrRemoveModifier(ObjectModelUMLModifier.NAVIGABLE, navigable);
}
+ @Override
+ public void setUnique(boolean isUnique) {
+ super.setUnique(isUnique);
+ }
+
/**
* Returns whether this attribute is an aggregate or not.
*
@@ -114,8 +160,7 @@
*/
@Override
public boolean isAggregate() {
- return ATTRIBUTE_TYPE_AGGREGATE.equals(associationType) ||
- ATTRIBUTE_TYPE_SHARED.equals(associationType);
+ return modifiers.contains(ObjectModelUMLModifier.AGGREGATE);
}
/**
@@ -126,11 +171,19 @@
*/
@Override
public boolean isComposite() {
- return ATTRIBUTE_TYPE_COMPOSITE.equals(associationType);
+ return modifiers.contains(ObjectModelUMLModifier.COMPOSITE);
}
@Override
public String getVisibility() {
+ String visibility = DEFAULT_VISIBILITY.toString(); // default
+ if (modifiers.contains(ObjectModelJavaModifier.PUBLIC)) {
+ visibility = ObjectModelJavaModifier.PUBLIC.toString();
+ } else if (modifiers.contains(ObjectModelJavaModifier.PRIVATE)) {
+ visibility = ObjectModelJavaModifier.PRIVATE.toString();
+ } if (modifiers.contains(ObjectModelJavaModifier.PACKAGE)) {
+ visibility = ObjectModelJavaModifier.PACKAGE.toString();
+ }
return visibility;
}
@@ -228,32 +281,22 @@
}
/**
- * Returns whether this attribute is static or not.
- *
- * @return a boolean indicating whether this attribute is static or not.
- */
- @Override
- public boolean isStatic() {
- return isStatic;
- }
-
- /**
* Returns whether this attribute is final or not.
*
* @return a boolean indicating whether this attribute is final or not.
*/
@Override
public boolean isFinal() {
- return isFinal;
+ return modifiers.contains(ObjectModelJavaModifier.FINAL);
}
public boolean isTransient() {
- return isTransient;
+ return modifiers.contains(ObjectModelJavaModifier.TRANSIENT);
}
@Override
public boolean isNavigable() {
- return navigable;
+ return modifiers.contains(ObjectModelUMLModifier.NAVIGABLE);
}
@Override
@@ -264,6 +307,7 @@
}
return super.addStereotype(stereotype);
}
+
/**
* FIXME tchemit 2010-11-28 Why the ordered flag may be indexed ? This is two distinct concepts ?
*/
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,6 +25,17 @@
package org.nuiton.eugene.models.object.xml;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+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.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -33,14 +44,8 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-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.ObjectModelOperation;
-
/**
* ObjectModelClassImpl.
*
@@ -59,11 +64,28 @@
protected List<ObjectModelImplRef> superclassesRefs = new ArrayList<ObjectModelImplRef>();
protected List<ObjectModelClass> specialisations;
protected List<ObjectModelClassifier> innerClasses;
- protected boolean abstractz;
+ private static Set<ObjectModelModifier> authorizedModifiers;
+
public ObjectModelClassImpl() {
}
+ @Override
+ protected Set<ObjectModelModifier> getAuthorizedModifiers() {
+ if (authorizedModifiers == null) {
+ // http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.1.1
+ // public protected private abstract static final strictfp
+ Set<ObjectModelModifier> modifiers = Sets.newHashSet(
+ (ObjectModelModifier)ObjectModelJavaModifier.ABSTRACT, // Force cast because of generics limitation
+ ObjectModelJavaModifier.STATIC,
+ ObjectModelJavaModifier.FINAL,
+ ObjectModelJavaModifier.STRICTFP);
+ modifiers.addAll(ObjectModelJavaModifier.visibilityModifiers);
+ authorizedModifiers = ImmutableSet.copyOf(modifiers);
+ }
+ return authorizedModifiers;
+ }
+
public void clearSuperclasses() {
superclasses = null;
superclassesRefs.clear();
@@ -91,7 +113,7 @@
public void setAbstract(boolean abstractz) {
- this.abstractz = abstractz;
+ addOrRemoveModifier(ObjectModelJavaModifier.ABSTRACT, abstractz);
}
@Override
@@ -189,7 +211,7 @@
*/
@Override
public boolean isAbstract() {
- return abstractz;
+ return modifiers.contains(ObjectModelJavaModifier.ABSTRACT);
}
@Override
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelClassifierImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,9 +25,21 @@
package org.nuiton.eugene.models.object.xml;
-import org.nuiton.eugene.models.object.*;
+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.ObjectModelDependency;
+import org.nuiton.eugene.models.object.ObjectModelEnumeration;
+import org.nuiton.eugene.models.object.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
/**
* ObjectModelClassifierImpl.
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelElementImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,17 +25,22 @@
package org.nuiton.eugene.models.object.xml;
+import com.google.common.collect.Iterables;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.GeneratorUtil;
import org.nuiton.eugene.models.object.ObjectModelElement;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* ObjectModelElementImpl.
@@ -47,7 +52,7 @@
* Last update : $Date$
* By :
*/
-public class ObjectModelElementImpl implements ObjectModelElement {
+public abstract class ObjectModelElementImpl implements ObjectModelElement {
/** logger */
private static final Log log = LogFactory.getLog(ObjectModelElementImpl.class);
@@ -58,8 +63,6 @@
protected String name;
- protected boolean isStatic;
-
protected String documentation;
protected List<String> stereotypes;
@@ -68,10 +71,13 @@
protected List<String> comments;
+ protected Set<ObjectModelModifier> modifiers;
+
public ObjectModelElementImpl() {
tagValues = new HashMap<String, String>();
stereotypes = new ArrayList<String>();
comments = new ArrayList<String>();
+ modifiers = new HashSet<ObjectModelModifier>();
}
/** @param objectModelImpl the objectModelImpl */
@@ -125,8 +131,41 @@
return tagValue;
}
+ protected void addOrRemoveModifier(ObjectModelModifier modifier, boolean add) {
+ if (add) {
+ addModifier(modifier);
+ } else {
+ removeModifier(modifier);
+ }
+ }
+
+ public void addModifier(ObjectModelModifier ... modifiers) {
+ if (modifiers == null || (modifiers.length == 1 && modifiers[0] == null)) {
+ throw new IllegalArgumentException("Modifier is null");
+ }
+ for (ObjectModelModifier modifier : modifiers) {
+ if (getAuthorizedModifiers().contains(modifier)) {
+ this.modifiers.add(modifier);
+ } else {
+ throw new UnsupportedOperationException("Forbidden modifier: " + modifier.getName());
+ }
+ }
+ }
+
+ protected void removeModifiers(Iterable<? extends ObjectModelModifier> modifiers) {
+ removeModifier(Iterables.toArray(modifiers, ObjectModelModifier.class));
+ }
+
+ protected void removeModifier(ObjectModelModifier ... modifiers) {
+ for (ObjectModelModifier modifier : modifiers) {
+ this.modifiers.remove(modifier);
+ }
+ }
+
+ protected abstract Set<ObjectModelModifier> getAuthorizedModifiers();
+
public void setStatic(boolean isStatic) {
- this.isStatic = isStatic;
+ addOrRemoveModifier(ObjectModelJavaModifier.STATIC, isStatic);
}
public void addComment(String comment) {
@@ -214,7 +253,7 @@
@Override
public boolean isStatic() {
- return isStatic;
+ return modifiers.contains(ObjectModelJavaModifier.STATIC);
}
@Override
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelEnumerationImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,11 +25,14 @@
package org.nuiton.eugene.models.object.xml;
+import com.google.common.collect.ImmutableSet;
+import org.nuiton.eugene.models.object.ObjectModelEnumeration;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Set;
-import org.nuiton.eugene.models.object.ObjectModelEnumeration;
-
/**
* ObjectModelEnumerationImpl.
*
@@ -56,7 +59,18 @@
literalRefs.add(ref);
}
+ private static Set<ObjectModelModifier> authorizedModifiers;
+
@Override
+ protected Set<ObjectModelModifier> getAuthorizedModifiers() {
+ if (authorizedModifiers == null) {
+ // Nothing special ?
+ authorizedModifiers = ImmutableSet.of();
+ }
+ return authorizedModifiers;
+ }
+
+ @Override
public Collection<String> getLiterals() {
Collection<String> results = new ArrayList<String>();
for (ObjectModelImplRef ref : literalRefs) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,13 +25,6 @@
package org.nuiton.eugene.models.object.xml;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -42,6 +35,13 @@
import org.nuiton.eugene.models.object.ObjectModelEnumeration;
import org.nuiton.eugene.models.object.ObjectModelInterface;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
/**
* Implementation class for the root node abstraction of object model trees.
* This an entry point for browsing a model tree. This object offers as well
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelInterfaceImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,11 +25,16 @@
package org.nuiton.eugene.models.object.xml;
-import java.util.Iterator;
-
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
import org.nuiton.eugene.models.object.ObjectModelClassifier;
import org.nuiton.eugene.models.object.ObjectModelInterface;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import java.util.Iterator;
+import java.util.Set;
+
/**
* ObjectModelInterfaceImpl.java
*
@@ -43,7 +48,24 @@
* by : */
public class ObjectModelInterfaceImpl extends ObjectModelClassifierImpl implements ObjectModelInterface {
+ private static Set<ObjectModelModifier> authorizedModifiers;
+
@Override
+ protected Set<ObjectModelModifier> getAuthorizedModifiers() {
+ if (authorizedModifiers == null) {
+ // http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.1.1
+ // public protected private abstract static strictfp
+ Set<ObjectModelModifier> modifiers = Sets.newHashSet(
+ (ObjectModelModifier)ObjectModelJavaModifier.ABSTRACT, // Force cast because of generics limitation
+ ObjectModelJavaModifier.STATIC,
+ ObjectModelJavaModifier.STRICTFP);
+ modifiers.addAll(ObjectModelJavaModifier.visibilityModifiers);
+ authorizedModifiers = ImmutableSet.copyOf(modifiers);
+ }
+ return authorizedModifiers;
+ }
+
+ @Override
public String toString() {
StringBuffer result = new StringBuffer();
result.append("interface ").append(getQualifiedName()).append(" ");
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelOperationImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelOperationImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelOperationImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,6 +25,13 @@
package org.nuiton.eugene.models.object.xml;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
+import org.nuiton.eugene.models.object.ObjectModelJavaModifier;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
+import org.nuiton.eugene.models.object.ObjectModelOperation;
+import org.nuiton.eugene.models.object.ObjectModelParameter;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
@@ -32,9 +39,6 @@
import java.util.List;
import java.util.Set;
-import org.nuiton.eugene.models.object.ObjectModelOperation;
-import org.nuiton.eugene.models.object.ObjectModelParameter;
-
/**
* ObjectModelOperationImpl.java
*
@@ -48,23 +52,42 @@
public class ObjectModelOperationImpl extends ObjectModelElementImpl implements
ObjectModelOperation {
+ public static final ObjectModelJavaModifier DEFAULT_VISIBILITY = ObjectModelJavaModifier.PUBLIC;
+
protected ObjectModelParameter returnParameter;
- protected String visibility = "public";
-
protected String transactionLevel = "supports";
- protected boolean abstractz;
-
protected List<ObjectModelParameter> parameters = new ArrayList<ObjectModelParameter>();
protected Set<String> exceptions = new HashSet<String>();
protected String bodyCode = "";
+ private static Set<ObjectModelModifier> authorizedModifiers;
+
public ObjectModelOperationImpl() {
}
+ @Override
+ protected Set<ObjectModelModifier> getAuthorizedModifiers() {
+ if (authorizedModifiers == null) {
+ // http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.3
+ // Annotation public protected private abstract
+ // static final synchronized native strictfp
+ Set<ObjectModelModifier> modifiers = Sets.newHashSet(
+ (ObjectModelModifier)ObjectModelJavaModifier.ABSTRACT, // Force cast because of generics limitation
+ ObjectModelJavaModifier.STATIC,
+ ObjectModelJavaModifier.FINAL,
+ ObjectModelJavaModifier.SYNCHRONIZED,
+ ObjectModelJavaModifier.NATIVE,
+ ObjectModelJavaModifier.STRICTFP);
+ modifiers.addAll(ObjectModelJavaModifier.visibilityModifiers);
+ authorizedModifiers = ImmutableSet.copyOf(modifiers);
+ }
+ return authorizedModifiers;
+ }
+
public String toString() {
return getName() + "(" + parameters + ")" + "<<" + getStereotypes()
+ ">> throws " + exceptions + " tagvalue: " + getTagValues();
@@ -104,11 +127,16 @@
}
public void setVisibility(String visibility) {
- this.visibility = visibility;
+ ObjectModelModifier modifier = ObjectModelJavaModifier.fromVisibility(visibility);
+ removeModifiers(ObjectModelJavaModifier.visibilityModifiers);
+ if (modifier == null) {
+ modifier = DEFAULT_VISIBILITY; // default visibility
+ }
+ addModifier(modifier);
}
public void setAbstract(boolean abstractz) {
- this.abstractz = abstractz;
+ addOrRemoveModifier(ObjectModelJavaModifier.ABSTRACT, abstractz);
}
public void setReturnParameter(ObjectModelParameterImpl returnParameter) {
@@ -146,6 +174,14 @@
@Override
public String getVisibility() {
+ String visibility = DEFAULT_VISIBILITY.toString(); // default
+ if (modifiers.contains(ObjectModelJavaModifier.PRIVATE)) {
+ visibility = ObjectModelJavaModifier.PRIVATE.toString();
+ } else if (modifiers.contains(ObjectModelJavaModifier.PROTECTED)) {
+ visibility = ObjectModelJavaModifier.PROTECTED.toString();
+ } if (modifiers.contains(ObjectModelJavaModifier.PACKAGE)) {
+ visibility = ObjectModelJavaModifier.PACKAGE.toString();
+ }
return visibility;
}
@@ -156,7 +192,7 @@
*/
@Override
public boolean isAbstract() {
- return abstractz;
+ return modifiers.contains(ObjectModelJavaModifier.ABSTRACT);
}
@Override
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelParameterImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelParameterImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/xml/ObjectModelParameterImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,8 +25,13 @@
package org.nuiton.eugene.models.object.xml;
+import com.google.common.collect.ImmutableSet;
+import org.nuiton.eugene.models.object.ObjectModelModifier;
import org.nuiton.eugene.models.object.ObjectModelParameter;
+import org.nuiton.eugene.models.object.ObjectModelUMLModifier;
+import java.util.Set;
+
/**
* ObjectModelParameterImpl.
*
@@ -51,15 +56,34 @@
* est false la collection peut prendre plusieurs fois la meme valeur
* (List)
*/
- protected boolean unique = true;
- protected boolean ordered;
protected String defaultValue;
+ private static Set<ObjectModelModifier> authorizedModifiers;
+
public static final String PROPERTY_ORDERED = "ordered";
public ObjectModelParameterImpl() {
+ // Do not put in postInit has it has to be done before fields are push into the instance
+ addModifier(ObjectModelUMLModifier.UNIQUE); // Unique by default
}
+ @Override
+ public void postInit() {
+ super.postInit();
+ }
+
+ @Override
+ protected Set<ObjectModelModifier> getAuthorizedModifiers() {
+ if (authorizedModifiers == null) {
+ // No particular modifier ?
+ authorizedModifiers = ImmutableSet.of(
+ (ObjectModelModifier)ObjectModelUMLModifier.UNIQUE,
+ ObjectModelUMLModifier.ORDERED,
+ ObjectModelUMLModifier.UNIQUE);
+ }
+ return authorizedModifiers;
+ }
+
public void setType(String type) {
this.type = type;
}
@@ -82,7 +106,7 @@
}
public void setUnique(boolean unique) {
- this.unique = unique;
+ addOrRemoveModifier(ObjectModelUMLModifier.UNIQUE, unique);
}
public void setDefaultValue(String defaultValue) {
@@ -111,17 +135,16 @@
@Override
public boolean isOrdered() {
- return ordered;
-// return "ordered".equals(ordering);
+ return modifiers.contains(ObjectModelUMLModifier.ORDERED);
}
public void setOrdered(boolean ordered) {
- this.ordered = ordered;
+ addOrRemoveModifier(ObjectModelUMLModifier.ORDERED, ordered);
}
@Override
public boolean isUnique() {
- return unique;
+ return modifiers.contains(ObjectModelUMLModifier.UNIQUE);
}
@Override
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModel.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,10 +25,10 @@
package org.nuiton.eugene.models.state;
+import org.nuiton.eugene.models.Model;
+
import java.util.List;
-import org.nuiton.eugene.models.Model;
-
/**
* StateModel
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/StateModelReader.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,10 +25,6 @@
package org.nuiton.eugene.models.state;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.Enumeration;
import org.apache.commons.digester3.Digester;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -39,6 +35,11 @@
import org.nuiton.util.RecursiveProperties;
import org.xml.sax.SAXException;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
+
/**
* To read state model files into a memory state model.
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelComplexeStateImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelComplexeStateImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelComplexeStateImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,15 +25,15 @@
package org.nuiton.eugene.models.state.xml;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
import org.nuiton.eugene.models.state.StateModelComplexState;
import org.nuiton.eugene.models.state.StateModelSimpleState;
import org.nuiton.eugene.models.state.StateModelState;
import org.nuiton.eugene.models.state.StateModelTransition;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* StateModelComplexeStateImpl.java
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,15 +25,15 @@
package org.nuiton.eugene.models.state.xml;
+import org.nuiton.eugene.models.state.StateModel;
+import org.nuiton.eugene.models.state.StateModelStateChart;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.nuiton.eugene.models.state.StateModel;
-import org.nuiton.eugene.models.state.StateModelStateChart;
-
/**
* Implementation of the {@link StateModel}.
*
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelStateImpl.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelStateImpl.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/state/xml/StateModelStateImpl.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -25,12 +25,12 @@
package org.nuiton.eugene.models.state.xml;
+import org.nuiton.eugene.models.state.StateModelState;
+import org.nuiton.eugene.models.state.StateModelTransition;
+
import java.util.ArrayList;
import java.util.List;
-import org.nuiton.eugene.models.state.StateModelState;
-import org.nuiton.eugene.models.state.StateModelTransition;
-
/**
* StateModelStateImpl.java
*
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -33,7 +33,6 @@
import org.nuiton.eugene.models.object.xml.ObjectModelOperationImpl;
import org.nuiton.eugene.models.object.xml.ObjectModelParameterImpl;
-import java.beans.Introspector;
import java.util.Set;
/** @author fdesbois */
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/java/JavaBuilderTest.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -35,7 +35,7 @@
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.ObjectModelJavaModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
import org.nuiton.eugene.models.object.xml.ObjectModelAttributeImpl;
import org.nuiton.eugene.models.object.xml.ObjectModelBuilderTest;
@@ -204,7 +204,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelAttribute constant = builder.addConstant(classifier, "GENDER_MALE", "boolean", "true",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
Assert.assertTrue(constant.isFinal());
Assert.assertTrue(constant.isStatic());
@@ -224,11 +224,11 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
builder.addAttribute(classifier, "firstName", "java.lang.String", "",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
builder.addAttribute(classifier, "roles", "java.util.List<org.chorem.bonzoms.Role>",
"new ArrayList<Role>()",
- ObjectModelModifier.PRIVATE, ObjectModelModifier.STATIC);
+ ObjectModelJavaModifier.PRIVATE, ObjectModelJavaModifier.STATIC);
// ANO#474 : manage manually imports for defaultValue
builder.addImport(classifier, "java.util.ArrayList");
@@ -282,7 +282,7 @@
ObjectModelClass clazz = builder.createClass("Person", "org.chorem.bonzoms");
- ObjectModelOperation operation = builder.addConstructor(clazz, ObjectModelModifier.PUBLIC);
+ ObjectModelOperation operation = builder.addConstructor(clazz, ObjectModelJavaModifier.PUBLIC);
Assert.assertNotNull(operation);
Assert.assertEquals(operation.getName(), "Person");
Assert.assertNull(operation.getReturnParameter());
@@ -304,11 +304,11 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
builder.addOperation(classifier,
- "methodName", "java.util.List<java.lang.String>", ObjectModelModifier.PUBLIC);
+ "methodName", "java.util.List<java.lang.String>", ObjectModelJavaModifier.PUBLIC);
builder.addOperation(classifier,
"addPropertyChangeListener", null,
- ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT);
+ ObjectModelJavaModifier.PUBLIC, ObjectModelJavaModifier.ABSTRACT);
// Check imports
ImportsManagerExtension ext = builder.getModel().getExtension(
@@ -334,7 +334,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
builder.addParameter(operation, "java.lang.String", "name");
@@ -362,7 +362,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
builder.addException(operation, "java.lang.IllegalArgumentException");
@@ -389,7 +389,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String",
- ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT);
+ ObjectModelJavaModifier.PUBLIC, ObjectModelJavaModifier.ABSTRACT);
builder.setOperationBody(operation, "this.name = name");
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/ObjectModelGeneratorTest.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -29,7 +29,6 @@
import org.junit.Test;
import org.nuiton.eugene.Template;
import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl;
-import org.nuiton.eugene.models.object.xml.ObjectModelElementImpl;
/**
* Test des fonctions de ObjectModelGenerator.
@@ -48,7 +47,7 @@
ObjectModelGenerator generator = new ObjectModelGenerator();
// test with null generated list
- Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
+// Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
Assert.assertTrue(generator.canGenerateElement(new ObjectModelClassImpl()));
// List<String> generatedPackages = new ArrayList<String>();
@@ -58,7 +57,7 @@
// generator.setGeneratedPackages(generatedPackages);
// Still true
- Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
+// Assert.assertTrue(generator.canGenerateElement(new ObjectModelElementImpl()));
// become false
boolean b = generator.canGenerateElement(new ObjectModelClassImpl());
Assert.assertFalse(b);
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/XMI21ToObjectModelTest.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -49,6 +49,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
@@ -344,6 +345,8 @@
assertEquals(-1, strings.getMaxMultiplicity());
assertTrue(strings.isUnique());
assertFalse(strings.isOrdered());
+ assertNull(strings.getReverseAttribute());
+ assertTrue(strings.isNavigable());
// doubles
ObjectModelAttribute doubles = multiClazz.getAttribute("doubles");
Modified: trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java
===================================================================
--- trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/eugene/src/test/java/org/nuiton/eugene/models/object/xml/ObjectModelBuilderTest.java 2012-06-01 10:51:04 UTC (rev 1152)
@@ -36,9 +36,10 @@
import org.nuiton.eugene.models.object.ObjectModelBuilder;
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.ObjectModelJavaModifier;
import org.nuiton.eugene.models.object.ObjectModelOperation;
import org.nuiton.eugene.models.object.ObjectModelParameter;
+import org.nuiton.eugene.models.object.ObjectModelUMLModifier;
import java.util.Iterator;
import java.util.List;
@@ -154,7 +155,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelAttribute attribute = builder.addAttribute(classifier, "firstName", "java.lang.String", "",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
Assert.assertNotNull(attribute);
Assert.assertEquals("firstName", attribute.getName());
@@ -166,7 +167,7 @@
attribute = builder.addAttribute(classifier, "roles", "java.lang.List<org.chorem.bonzoms.Role>",
"new java.lang.ArrayList<org.chorem.bonzoms.Role>()",
- ObjectModelModifier.PRIVATE, ObjectModelModifier.STATIC);
+ ObjectModelJavaModifier.PRIVATE, ObjectModelJavaModifier.STATIC);
Assert.assertEquals("new java.lang.ArrayList<org.chorem.bonzoms.Role>()", attribute.getDefaultValue());
Assert.assertTrue(attribute.isStatic());
@@ -186,7 +187,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation result = builder.addOperation(classifier,
- "methodName", "java.util.List<java.lang.String>", ObjectModelModifier.PUBLIC);
+ "methodName", "java.util.List<java.lang.String>", ObjectModelJavaModifier.PUBLIC);
Assert.assertNotNull(result);
Assert.assertEquals(result.getName(), "methodName");
Assert.assertEquals(result.getReturnType(), "java.util.List<java.lang.String>");
@@ -194,7 +195,7 @@
Assert.assertFalse(result.isAbstract());
result = builder.addOperation(classifier, "addPropertyChangeListener", "void",
- ObjectModelModifier.PUBLIC, ObjectModelModifier.ABSTRACT);
+ ObjectModelJavaModifier.PUBLIC, ObjectModelJavaModifier.ABSTRACT);
Assert.assertTrue(result.isAbstract());
}
@@ -212,7 +213,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
builder.setOperationBody(operation, "this.name = name");
Assert.assertNotNull(operation.getBodyCode());
@@ -273,7 +274,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
ObjectModelParameter param = builder.addParameter(operation, "java.lang.String", "name");
Assert.assertNotNull(param);
@@ -299,7 +300,7 @@
ObjectModelClassifier classifier = builder.createClass("Person", "org.chorem.bonzoms");
ObjectModelOperation operation = builder.addOperation(classifier, "setName", "java.lang.String",
- ObjectModelModifier.PUBLIC);
+ ObjectModelJavaModifier.PUBLIC);
builder.addException(operation, "java.lang.IllegalArgumentException");
Set<String> exceptions = operation.getExceptions();
@@ -332,7 +333,7 @@
ObjectModelClass classB = builder.createClass("Vote", "org.chorem.pollen.business.persistence");
ObjectModelAttribute assoc = builder.addAssociation(classA, classB, "poll", 1, 1,
- ObjectModelModifier.COMPOSITE, ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED);
+ ObjectModelUMLModifier.COMPOSITE, ObjectModelUMLModifier.NAVIGABLE, ObjectModelUMLModifier.ORDERED);
Assert.assertNotNull(assoc);
Assert.assertTrue(assoc.isNavigable());
@@ -362,7 +363,7 @@
ObjectModelClass classB = builder.createClass("Vote", "org.chorem.pollen.business.persistence");
ObjectModelAttribute assocA = builder.addAssociation(classA, classB, "poll", 1, 1,
- ObjectModelModifier.COMPOSITE, ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED);
+ ObjectModelUMLModifier.COMPOSITE, ObjectModelUMLModifier.NAVIGABLE, ObjectModelUMLModifier.ORDERED);
ObjectModelAttribute assocB = builder.addReverseAssociation(assocA, "vote", 0, -1);
@@ -387,10 +388,10 @@
ObjectModelClass classB = builder.createClass("Choice", "org.chorem.pollen.business.persistence");
ObjectModelAttribute assocA = builder.addAssociation(classA, classB, "vote", 0, -1,
- ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED);
+ ObjectModelUMLModifier.NAVIGABLE, ObjectModelUMLModifier.ORDERED);
ObjectModelAttribute assocB = builder.addReverseAssociation(assocA, "choice", 1, -1,
- ObjectModelModifier.NAVIGABLE, ObjectModelModifier.ORDERED);
+ ObjectModelUMLModifier.NAVIGABLE, ObjectModelUMLModifier.ORDERED);
ObjectModelAssociationClass assocClass = builder.createAssociationClass("VoteToChoice",
"org.chorem.pollen.business.persistence", assocA, assocB);
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-05-31 14:58:52 UTC (rev 1151)
+++ trunk/pom.xml 2012-06-01 10:51:04 UTC (rev 1152)
@@ -387,7 +387,6 @@
<nuitonUtilsVersion>2.4.8</nuitonUtilsVersion>
<nuitonI18nVersion>2.4.1</nuitonI18nVersion>
-
<!-- TODO Move this back to mavenpom -->
<antVersion>1.8.4</antVersion>
<jrstPluginVersion>1.5</jrstPluginVersion>
1
0