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
May 2013
- 5 participants
- 32 discussions
r1266 - in trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader: . yaml
by agiraudet@users.nuiton.org 31 May '13
by agiraudet@users.nuiton.org 31 May '13
31 May '13
Author: agiraudet
Date: 2013-05-31 17:50:13 +0200 (Fri, 31 May 2013)
New Revision: 1266
Url: http://nuiton.org/projects/eugene/repository/revisions/1266
Log:
impl?\195?\169mentation d'une nouvelle architecture pour g?\195?\169n?\195?\169rer l'ObjectModel ?\195?\160 partir d'un fichier YAML (plus modulaire)
ajout du YamlObject: objet de transition entre le fichier YAML et l'ObjectModel
Added:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/KeyWords.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxePureYaml.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxeUserFriendly.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadObjectModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadYamlFile.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlObject.java
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/YamlObjectModelReader.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/YamlObjectModelReader.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/YamlObjectModelReader.java 2013-05-29 10:08:59 UTC (rev 1265)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/YamlObjectModelReader.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -29,6 +29,7 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.eugene.ModelHelper;
import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.reader.yaml.TestLoadYamlFile;
import org.nuiton.eugene.models.object.reader.yaml.YamlToObjectModel;
import org.yaml.snakeyaml.error.YAMLException;
@@ -45,7 +46,8 @@
public class YamlObjectModelReader extends AbstractObjectModelReader {
private static final Log log = LogFactory.getLog(YamlObjectModelReader.class);
- protected YamlToObjectModel yamlToObjectModel;
+ //protected YamlToObjectModel yamlToObjectModel;
+ protected TestLoadYamlFile test;
@Override
public String getInputType() {
@@ -55,13 +57,15 @@
@Override
protected void beforeReadFile(File... files) {
super.beforeReadFile(files);
- yamlToObjectModel = new YamlToObjectModel();
+ //yamlToObjectModel = new YamlToObjectModel();
+ test = new TestLoadYamlFile();
}
@Override
protected void readFileToModel(File file, ObjectModel model) throws IOException {
try {
- yamlToObjectModel.loadFile(file,model);
+ //yamlToObjectModel.loadFile(file,model);
+ test.LoadYamlFile(file,model);
} catch (YAMLException e) {
throw new IOException("Unable to parse ObjectModel input file : " + file, e);
}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/KeyWords.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/KeyWords.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/KeyWords.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -0,0 +1,51 @@
+package org.nuiton.eugene.models.object.reader.yaml;
+
+/**
+ * User: agiraudet
+ * Date: 30/05/13
+ * Time: 10:10
+ */
+public class KeyWords {
+ public static final String ABSTRACT = "abstract";
+ public static final String ASSOCIATION_CLASS = "associationclass";
+ public static final String ASSOCIATION_CLASS_NAME = "associationclassname";
+ public static final String ASSOCIATION_TYPE = "associationtype";
+ public static final String ATTRIBUTE = "attribute";
+ public static final String BODY_CODE = "bodeycode";
+ public static final String CLASS = "class";
+ public static final String COMMENTS = "comments";
+ public static final String DEFAULT_VALUE = "defaultvalue";
+ public static final String DOCUMENTATION = "documentation";
+ public static final String ENUMERATION = "enumeration";
+ public static final String EXTERN = "extern";
+ public static final String FINAL = "final";
+ public static final String IMPORTS = "imports";
+ public static final String INNER = "inner";
+ public static final String INTERFACE = "interface";
+ public static final String LITERAL = "literal";
+ public static final String MAX_MULTIPLICITY = "maxmultiplicity";
+ public static final String MIN_MULTIPLICITY = "minmultiplicity";
+ public static final String NAME = "name";
+ public static final String NAVIGABLE = "navigable";
+ public static final String OPERATION = "operation";
+ public static final String ORDERED = "ordered";
+ public static final String ORDERING = "ordering";
+ public static final String PACKAGE = "package";
+ public static final String PARAMETER = "parameter";
+ public static final String PARTICIPANT = "participant";
+ public static final String RETURN_PARAMETER = "returnparameter";
+ public static final String REVERSE_ATTRIBUTE_NAME = "reverseattributename";
+ public static final String REVERSE_MAX_MULTIPLICITY = "reversemaxmultiplicity";
+ public static final String STATIC = "static";
+ public static final String STEREOTYPES = "stereotypes";
+ public static final String SUPER_CLASSES = "superclasses";
+ public static final String SUPER_INTERFACES = "superinterfaces";
+ public static final String SYNTAXE = "syntaxe";
+ public static final String TAG_VALUES = "tagvalues";
+ public static final String TRANSIENT = "transient";
+ public static final String TYPE = "type";
+ public static final String UNIQUE = "unique";
+ public static final String VERSION = "version";
+ public static final String VISIBILITY = "visibility";
+ public static final String ELEMENT = "element";
+}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxePureYaml.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxePureYaml.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxePureYaml.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -0,0 +1,52 @@
+package org.nuiton.eugene.models.object.reader.yaml;
+
+import org.nuiton.eugene.models.object.ObjectModel;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * User: agiraudet
+ * Date: 30/05/13
+ * Time: 11:23
+ */
+//TODO: interface Syntaxe ou classe abstraite (appel l'operation suivante : charger l'ObjectModel)
+//key.toLowerCase() ?
+public class SyntaxePureYaml {
+
+ public static void loadModelYaml(Object modelYAML, YamlObject modelYAMLO)
+ {
+ loadYamlObject(modelYAML, modelYAMLO, "model");
+ }
+
+ public static void loadYamlObject(Object objectYaml, YamlObject modelYaml, String previous)
+ {
+ if(objectYaml instanceof List)
+ {
+ for(Object tmp1 : (List) objectYaml)
+ {
+ loadYamlObject(tmp1, modelYaml, previous);
+ }
+ }
+ else if(objectYaml instanceof Map)
+ {
+ for(Object tmp1 : ((Map) objectYaml).entrySet())
+ {
+ if(((Map.Entry) tmp1).getValue() instanceof List || ((Map.Entry) tmp1).getValue() instanceof Map)
+ {
+ YamlObject tmp2 = new YamlObject();
+ loadYamlObject(((Map.Entry) tmp1).getValue(),tmp2,String.valueOf(((Map.Entry) tmp1).getKey()).toLowerCase());
+ modelYaml.addYamlObjectToMap(String.valueOf(((Map.Entry) tmp1).getKey()).toLowerCase(),tmp2);
+ }
+ else
+ {
+ modelYaml.addStringToMap(String.valueOf(((Map.Entry) tmp1).getKey()).toLowerCase(),String.valueOf(((Map.Entry) tmp1).getValue()));
+ }
+ }
+ }
+ /*else
+ {
+ modelYaml.addStringToMap(previous,String.valueOf(objectYaml));
+ }*/
+ }
+}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxeUserFriendly.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxeUserFriendly.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/SyntaxeUserFriendly.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -0,0 +1,10 @@
+package org.nuiton.eugene.models.object.reader.yaml;
+
+/**
+ * User: agiraudet
+ * Date: 30/05/13
+ * Time: 11:24
+ */
+//TODO: interface Syntaxe pour futures syntaxes
+public class SyntaxeUserFriendly {
+}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadObjectModel.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadObjectModel.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -0,0 +1,606 @@
+package org.nuiton.eugene.models.object.reader.yaml;
+
+import org.nuiton.eugene.models.object.*;
+import org.nuiton.eugene.models.object.xml.*;
+
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * User: agiraudet
+ * Date: 30/05/13
+ * Time: 11:58
+ */
+public class TestLoadObjectModel extends KeyWords {
+ List<String> imports;
+ String packageL;//package local
+
+ private boolean _loginit = true;
+ private void log(String str) {
+ try {
+ FileWriter log;
+ String path = "/tmp/log.yamlobject.txt";
+
+ if (_loginit) {
+ log = new FileWriter(path, false);
+ log.close();
+ _loginit = false;
+ }
+ log = new FileWriter(path, true);
+ log.write("[LOG] " + str + "\n");
+ log.close();
+ } catch (IOException e) {;}
+ }
+
+ //precondition: labels et imports resolus
+ //TODO: valeurs par defaut
+ public TestLoadObjectModel(/*YamlObject modelYAMLO, ObjectModelImpl modelOM*/)
+ {
+ ;//loadModel(modelYAMLO,modelOM);
+ }
+
+ public void loadModel(YamlObject modelYAMLO, ObjectModelImpl modelOM) {
+
+ //log
+ log(modelYAMLO.toString());
+ log(" MODEL");
+ //log
+
+ String packageYAMLO = modelYAMLO.getFirstMapStringListString(PACKAGE);
+ if(packageYAMLO == null)
+ {
+ packageL = "";
+ }
+ else
+ {
+ packageL = packageYAMLO;
+ }
+ log("package="+packageL);
+
+ String nameYAMLO = modelYAMLO.getFirstMapStringListString(NAME);
+ if(nameYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ modelOM.setName(nameYAMLO);
+ log("name="+modelOM.getName());
+ }
+
+ String versionYAMLO = modelYAMLO.getFirstMapStringListString(VERSION);
+ if(versionYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ modelOM.setVersion(versionYAMLO);
+ log("version="+modelOM.getVersion());
+ }
+
+ //tagvalues
+ YamlObject tagValues = modelYAMLO.getFirstMapStringListYamlObject(TAG_VALUES);
+ if(tagValues != null)
+ {
+ for(Map.Entry<String,List<String>> tagValue :tagValues.getMapStringListString().entrySet())
+ {
+ if(!tagValue.getValue().isEmpty())//taille strictement = 1
+ {
+ modelOM.addTagValue(tagValue.getKey(),tagValue.getValue().get(0));
+ }
+ }
+ log("tagValues="+modelOM.getTagValues());
+ }
+
+ //classes
+ for(YamlObject classYAMLO : modelYAMLO.getMapStringListYamlObject(CLASS))
+ {
+ log(" CLASS");
+ ObjectModelClassImpl classOM = new ObjectModelClassImpl();
+ loadClass(classYAMLO,classOM);
+ modelOM.addClass(classOM);
+ }
+ //interfaces
+ for(YamlObject interfaceYAMLO : modelYAMLO.getMapStringListYamlObject(INTERFACE))
+ {
+ log(" INTERFACE");
+ ObjectModelInterfaceImpl interfaceOM = new ObjectModelInterfaceImpl();
+ loadInterface(interfaceYAMLO,interfaceOM);
+ modelOM.addInterface(interfaceOM);
+ }
+ //classes d'association
+ for(YamlObject associationClassYAMLO : modelYAMLO.getMapStringListYamlObject(ASSOCIATION_CLASS))
+ {
+ log(" ASSOCIATION_CLASS");
+ ObjectModelAssociationClassImpl associationClassOM = new ObjectModelAssociationClassImpl();
+ loadAssociationClass(associationClassYAMLO,associationClassOM);
+ modelOM.addAssociationClass(associationClassOM);
+ }
+ //enumerations
+ for(YamlObject enumerationYAMLO : modelYAMLO.getMapStringListYamlObject(ENUMERATION))
+ {
+ log(" ENUMERATION");
+ ObjectModelEnumerationImpl enumerationOM = new ObjectModelEnumerationImpl();
+ loadEnumeration(enumerationYAMLO,enumerationOM);
+ modelOM.addEnumeration(enumerationOM);
+ }
+ }
+
+ public void loadElement(YamlObject elementYAMLO, ObjectModelElementImpl elementOM)
+ {
+ String nameYAMLO = elementYAMLO.getFirstMapStringListString(NAME);
+ if(nameYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ elementOM.setName(nameYAMLO);
+ log("name="+elementOM.getName());
+ }
+
+ String staticYAMLO = elementYAMLO.getFirstMapStringListString(STATIC);
+ if(staticYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ elementOM.setStatic(Boolean.valueOf(staticYAMLO));
+ log("static="+elementOM.isStatic());
+ }
+
+ String documentationYAMLO = elementYAMLO.getFirstMapStringListString(DOCUMENTATION);
+ if(documentationYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ elementOM.setDocumentation(documentationYAMLO);
+ log("documentation="+elementOM.getDocumentation());
+ }
+
+ YamlObject tagValues = elementYAMLO.getFirstMapStringListYamlObject(TAG_VALUES);
+ if(tagValues != null)
+ {
+ for(Map.Entry<String,List<String>> tagValue :tagValues.getMapStringListString().entrySet())
+ {
+ if(!tagValue.getValue().isEmpty())//taille strictement = 1
+ {
+ elementOM.addTagValue(tagValue.getKey(),tagValue.getValue().get(0));
+ }
+ }
+ log("tagValues="+elementOM.getTagValues());
+ }
+
+ List<String> comments = elementYAMLO.getMapStringListString(COMMENTS);
+ for(String comment : comments)
+ {
+ elementOM.addComment(comment);
+ log("comments="+elementOM.getComments());
+ }
+
+ List<String> stereotypes = elementYAMLO.getMapStringListString(STEREOTYPES);
+ for(String stereotype : stereotypes)
+ {
+ ObjectModelImplRef stereotypeOM = new ObjectModelImplRef();
+ stereotypeOM.setName(stereotype);
+ elementOM.addStereotype(stereotypeOM);
+ log("stereotype="+elementOM.getStereotypes());
+ }
+ }
+
+ public void loadClassifier(YamlObject classifierYAMLO, ObjectModelClassifierImpl classifierOM)
+ {
+ loadElement(classifierYAMLO, classifierOM);
+
+ String packageYAMLO = classifierYAMLO.getFirstMapStringListString(PACKAGE);
+ if(packageYAMLO == null)
+ {
+ //TODO: tester packageL == null
+ classifierOM.setPackage(packageL);
+ }
+ else
+ {
+ classifierOM.setPackage(packageYAMLO);
+ }
+ log("package="+classifierOM.getPackageName());
+
+
+ String externYAMLO = classifierYAMLO.getFirstMapStringListString(EXTERN);
+ if(externYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ classifierOM.setExtern(Boolean.valueOf(externYAMLO));
+ log("extern="+classifierOM.isExtern());
+
+ }
+
+ String innerYAMLO = classifierYAMLO.getFirstMapStringListString(INNER);
+ if(innerYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ classifierOM.setInner(Boolean.valueOf(innerYAMLO));
+ log("inner="+classifierOM.isInner());
+ }
+
+ String typeYAMLO = classifierYAMLO.getFirstMapStringListString(TYPE);
+ if(typeYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ classifierOM.setType(typeYAMLO);
+ log("type="+typeYAMLO);//getType ?
+ }
+
+ for(YamlObject attributeYAMLO : classifierYAMLO.getMapStringListYamlObject(ATTRIBUTE))
+ {
+ log(" ATTRIBUTE");
+ ObjectModelAttributeImpl attributeOM = new ObjectModelAttributeImpl();
+ loadAttribute(attributeYAMLO,attributeOM);
+ classifierOM.addAttribute(attributeOM);
+ }
+
+ for(YamlObject operationYAMLO : classifierYAMLO.getMapStringListYamlObject(OPERATION))
+ {
+ log(" OPERATION");
+ ObjectModelOperationImpl operationOM = new ObjectModelOperationImpl();
+ loadOperation(operationYAMLO,operationOM);
+ classifierOM.addOperation(operationOM);
+ }
+
+ List<String> superInterfacesYAMLO = classifierYAMLO.getMapStringListString(SUPER_INTERFACES);
+ for(String superInterfaceYAMLO : superInterfacesYAMLO)
+ {
+ log(" SUPER_INTERFACE");
+ ObjectModelImplRef superInterfaceOM = new ObjectModelImplRef();
+ superInterfaceOM.setName(superInterfaceYAMLO);
+ classifierOM.addInterface(superInterfaceOM);
+ }
+ }
+
+ public void loadClass(YamlObject classYAMLO, ObjectModelClassImpl classOM)
+ {
+ loadClassifier(classYAMLO, classOM);
+
+ String abstractYAMLO = classYAMLO.getFirstMapStringListString(ABSTRACT);
+ if(abstractYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ classOM.setAbstract(Boolean.valueOf(abstractYAMLO));
+ log("abstract="+classOM.isAbstract());
+ }
+
+ List<String> superClassesYAMLO = classYAMLO.getMapStringListString(SUPER_CLASSES);
+ for(String superClassYAMLO : superClassesYAMLO)
+ {
+ ObjectModelImplRef superClassOM = new ObjectModelImplRef();
+ superClassOM.setName(superClassYAMLO);
+ classOM.addInterface(superClassOM);
+ log("superClasses="+classOM.getSuperclasses());
+ }
+ }
+
+ public void loadInterface(YamlObject interfaceYAMLO, ObjectModelInterfaceImpl interfaceOM)
+ {
+ loadClassifier(interfaceYAMLO,interfaceOM);
+ }
+
+ public void loadAssociationClass(YamlObject associationClassYAML, ObjectModelAssociationClassImpl associationClassOM)
+ {
+ loadClass(associationClassYAML, associationClassOM);
+
+ //TODO: remplacer name par type et attribute par name ?
+ for(YamlObject participantYAMLO : associationClassYAML.getMapStringListYamlObject(PARTICIPANT))
+ {
+ log(" PARTICIPANT");
+ ObjectModeImplAssociationClassParticipant participantOM = new ObjectModeImplAssociationClassParticipant();
+ participantOM.setAssociationClass(associationClassOM);
+
+ String nameYAMLO = participantYAMLO.getFirstMapStringListString(NAME);
+ if(nameYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ participantOM.setName(nameYAMLO);
+ log("name="+participantOM.getName());
+ }
+
+ String attributeYAMLO = participantYAMLO.getFirstMapStringListString(ATTRIBUTE);
+ if(attributeYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ participantOM.setAttribute(attributeYAMLO);
+ log("attribute="+participantOM.getAttributeName());
+ }
+
+ associationClassOM.addParticipant(participantOM);
+ }
+ }
+
+ public void loadEnumeration(YamlObject enumerationYAMLO, ObjectModelEnumerationImpl enumerationOM)
+ {
+ loadElement(enumerationYAMLO, enumerationOM);
+
+ //TODO: remplacer LITERAL par LITERALS (List)
+ List<String> literalsYAMLO = enumerationYAMLO.getMapStringListString(LITERAL);
+ for(String literalYAMLO : literalsYAMLO)
+ {
+ ObjectModelImplRef literalOM = new ObjectModelImplRef();
+ literalOM.setName(literalYAMLO);
+ enumerationOM.addLiteral(literalOM);
+ log("literals="+enumerationOM.getLiterals());
+ }
+
+ String packageYAMLO = enumerationYAMLO.getFirstMapStringListString(PACKAGE);
+ if(packageYAMLO == null)
+ {
+ enumerationOM.setPackage(packageL);
+ }
+ else
+ {
+ enumerationOM.setPackage(packageYAMLO);
+ }
+ log("package="+enumerationOM.getPackageName());
+ }
+
+ public void loadParameter(YamlObject parameterYAMLO, ObjectModelParameterImpl parameterOM)
+ {
+ loadElement(parameterYAMLO,parameterOM);
+
+ String orderingYAMLO = parameterYAMLO.getFirstMapStringListString(ORDERING);
+ if(orderingYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ parameterOM.setOrdering(orderingYAMLO);
+ log("ordering="+orderingYAMLO);//getOrdering ?
+ }
+
+ String typeYAMLO = parameterYAMLO.getFirstMapStringListString(TYPE);
+ if(typeYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ parameterOM.setType(typeYAMLO);
+ log("type="+parameterOM.getType());
+ }
+
+ String defaultValueYAMLO = parameterYAMLO.getFirstMapStringListString(DEFAULT_VALUE);
+ if(defaultValueYAMLO == null)
+ {
+ ;//default
+ }
+ else
+ {
+ parameterOM.setDefaultValue(defaultValueYAMLO);
+ log("defaultValue="+parameterOM.getDefaultValue());
+ }
+
+ String minMultiplicityYAMLO = parameterYAMLO.getFirstMapStringListString(MIN_MULTIPLICITY);
+ if(minMultiplicityYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ parameterOM.setMinMultiplicity(Integer.valueOf(minMultiplicityYAMLO));
+ log("minMultiplicity="+parameterOM.getMinMultiplicity());
+ }
+
+ String maxMultiplicityYAMLO = parameterYAMLO.getFirstMapStringListString(MAX_MULTIPLICITY);
+ if(maxMultiplicityYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ parameterOM.setMaxMultiplicity(Integer.valueOf(maxMultiplicityYAMLO));
+ log("maxMultiplicity="+parameterOM.getMaxMultiplicity());
+
+ }
+
+ String orderedYAMLO = parameterYAMLO.getFirstMapStringListString(ORDERED);
+ if(orderedYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ parameterOM.setOrdered(Boolean.valueOf(orderedYAMLO));
+ log("ordered="+parameterOM.isOrdered());
+ }
+
+ String uniqueYAMLO = parameterYAMLO.getFirstMapStringListString(UNIQUE);
+ if(uniqueYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ parameterOM.setUnique(Boolean.valueOf(uniqueYAMLO));
+ log("unique="+parameterOM.isUnique());
+ }
+ }
+
+ public void loadAttribute(YamlObject attributeYAMLO, ObjectModelAttributeImpl attributeOM)
+ {
+ loadParameter(attributeYAMLO,attributeOM);
+
+ String navigableYAMLO = attributeYAMLO.getFirstMapStringListString(NAVIGABLE);
+ if(navigableYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setNavigable(Boolean.valueOf(navigableYAMLO));
+ log("navigable="+attributeOM.isNavigable());
+ }
+
+ String associationTypeYAMLO = attributeYAMLO.getFirstMapStringListString(ASSOCIATION_TYPE);
+ if(associationTypeYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setAssociationType(associationTypeYAMLO);
+ log("associationType="+associationTypeYAMLO);//getAssociationType ?
+ }
+
+ String finalYAMLO = attributeYAMLO.getFirstMapStringListString(FINAL);
+ if(finalYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setFinal(Boolean.valueOf(finalYAMLO));
+ log("final="+attributeOM.isFinal());
+ }
+
+ String staticYAMLO = attributeYAMLO.getFirstMapStringListString(STATIC);
+ if(staticYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setStatic(Boolean.valueOf(staticYAMLO));
+ log("static="+attributeOM.isStatic());
+ }
+
+ String associationClassNameYAMLO = attributeYAMLO.getFirstMapStringListString(ASSOCIATION_CLASS_NAME);
+ if(associationClassNameYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setAssociationClassName(associationClassNameYAMLO);
+ log("associationClassName="+associationClassNameYAMLO);
+ }
+
+ String reverseAttributeNameYAMLO = attributeYAMLO.getFirstMapStringListString(REVERSE_ATTRIBUTE_NAME);
+ if(reverseAttributeNameYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setReverseAttributeName(reverseAttributeNameYAMLO);
+ log("reverseAttributeName="+attributeOM.getReverseAttributeName());
+ }
+
+ String reverseMaxMultiplicityYAMLO = attributeYAMLO.getFirstMapStringListString(REVERSE_MAX_MULTIPLICITY);
+ if(reverseMaxMultiplicityYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setReverseMaxMultiplicity(Integer.valueOf(reverseMaxMultiplicityYAMLO));
+ log("reverseMaxMultiplicity="+attributeOM.getReverseMaxMultiplicity());
+ }
+
+ String transientYAMLO = attributeYAMLO.getFirstMapStringListString(TRANSIENT);
+ if(transientYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setTransient(Boolean.valueOf(transientYAMLO));
+ log("transient="+attributeOM.isTransient());
+ }
+
+ String visibilityYAMLO = attributeYAMLO.getFirstMapStringListString(VISIBILITY);
+ if(visibilityYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ attributeOM.setVisibility(visibilityYAMLO);
+ log("visibility="+attributeOM.getVisibility());
+ }
+ }
+
+ public void loadOperation(YamlObject operationYAMLO, ObjectModelOperationImpl operationOM)
+ {
+ loadElement(operationYAMLO,operationOM);
+
+ String abstractYAMLO = operationYAMLO.getFirstMapStringListString(ABSTRACT);
+ if(abstractYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ operationOM.setAbstract(Boolean.valueOf(abstractYAMLO));
+ log("abstract="+operationOM.isAbstract());
+ }
+
+ String visibilityYAMLO = operationYAMLO.getFirstMapStringListString(VISIBILITY);
+ if(visibilityYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ operationOM.setVisibility(visibilityYAMLO);
+ log("visibility="+operationOM.getVisibility());
+ }
+
+ for(YamlObject returnParameterYAMLO : operationYAMLO.getMapStringListYamlObject(RETURN_PARAMETER))
+ {
+ log(" RETURN_PARAMETER");
+ ObjectModelParameterImpl returnParameterOM = new ObjectModelAttributeImpl();
+ loadParameter(returnParameterYAMLO,returnParameterOM);
+ operationOM.setReturnParameter(returnParameterOM);
+ }
+
+ for(YamlObject parameterYAMLO : operationYAMLO.getMapStringListYamlObject(PARAMETER))
+ {
+ log(" PARAMETER");
+ ObjectModelParameterImpl parameterOM = new ObjectModelAttributeImpl();
+ loadParameter(parameterYAMLO,parameterOM);
+ operationOM.addParameter(parameterOM);
+ }
+
+ String bodyCodeYAMLO = operationYAMLO.getFirstMapStringListString(BODY_CODE);
+ if(bodyCodeYAMLO == null)
+ {
+ ;//valeur par defaut
+ }
+ else
+ {
+ operationOM.setBodyCode(bodyCodeYAMLO);
+ log("bodyCode="+operationOM.getBodyCode());
+ }
+ }
+}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadYamlFile.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadYamlFile.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/TestLoadYamlFile.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -0,0 +1,70 @@
+package org.nuiton.eugene.models.object.reader.yaml;
+
+import org.nuiton.eugene.models.object.ObjectModel;
+import org.nuiton.eugene.models.object.xml.ObjectModelImpl;
+import org.yaml.snakeyaml.Yaml;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * User: agiraudet
+ * Date: 28/05/13
+ * Time: 16:35
+ *
+ * Rôle: parser le fichier YAML et le transformer en YAMLobject
+ *
+ * parser si besoin et charger le YAMLobject
+ * parse en fonction de la version
+ */
+public class TestLoadYamlFile extends KeyWords {
+ Yaml yaml;
+ ObjectModelImpl modelOM;
+ YamlObject modelYAMLO;
+ Object modelYAML;
+ String syntaxeVersion;//version de la synatxe
+ String defaultVersion;//version des valeurs par defaut
+
+ public TestLoadYamlFile()
+ {
+ yaml = new Yaml();
+ }
+
+ public void LoadYamlFile(File fileYAML, ObjectModel model) throws IOException {
+ modelOM = (ObjectModelImpl) model;
+ modelYAMLO = new YamlObject();
+ InputStream inputModel = new FileInputStream(fileYAML);
+ modelYAML = yaml.load(inputModel);
+ inputModel.close();
+
+ //chercher version et charger en conséquent
+ syntaxeVersion="1";
+ defaultVersion="0";
+ if(modelYAML instanceof List)
+ {
+ Object version = YamlUtil.collectElement((List) modelYAML, SYNTAXE);
+ if(version != null)
+ {
+ syntaxeVersion = YamlUtil.beforeChar(String.valueOf(version),'.');
+ defaultVersion = YamlUtil.afterChar(String.valueOf(version),'.');
+ }
+ }
+ if(syntaxeVersion.equals("1"))
+ {
+ SyntaxePureYaml.loadModelYaml(modelYAML, modelYAMLO);
+ }
+ else if(syntaxeVersion.equals("2"))
+ {
+ ;//syntaxe user firendly : coming soon
+ }
+ else
+ {
+ ;//syntaxe par defaut, si version syntaxe non reconnue
+ SyntaxePureYaml.loadModelYaml(modelYAML, modelYAMLO);
+ }
+
+ TestLoadObjectModel test = new TestLoadObjectModel();
+ test.loadModel(modelYAMLO,modelOM);
+ //TODO: charger ObjectModel avec les valeurs par defaut en fonction de la version (ajouter parametre à loadModel)
+ }
+}
Added: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlObject.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlObject.java (rev 0)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlObject.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -0,0 +1,222 @@
+package org.nuiton.eugene.models.object.reader.yaml;
+
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * User: agiraudet
+ * Date: 28/05/13
+ * Time: 16:41
+ */
+public class YamlObject {
+ protected Map<String,List<String>> mapStringListString;
+ protected Map<String, List<YamlObject>> mapStringListYamlObject;
+ //TODO: améliorer nom méthodes
+
+ public YamlObject()
+ {
+ mapStringListString = new LinkedHashMap<String, List<String>>();
+ mapStringListYamlObject = new LinkedHashMap<String, List<YamlObject>>();
+ }
+
+ public void addYamlObjectToMap(String key, YamlObject value)
+ {
+ if(mapStringListYamlObject.containsKey(key))
+ {
+ mapStringListYamlObject.get(key).add(value);
+ }
+ else
+ {
+ List<YamlObject> tmp = new LinkedList<YamlObject>();
+ tmp.add(value);
+ mapStringListYamlObject.put(key,tmp);
+ }
+ }
+
+ public void addStringToMap(String key, String value)
+ {
+ if(mapStringListString.containsKey(key))
+ {
+ mapStringListString.get(key).add(value);
+ }
+ else
+ {
+ List<String> tmp = new LinkedList<String>();
+ tmp.add(value);
+ mapStringListString.put(key,tmp);
+ }
+ }
+
+ public YamlObject getFirstMapStringListYamlObject(String key)
+ {
+ if(mapStringListYamlObject.containsKey(key))
+ {
+ if(!mapStringListYamlObject.isEmpty())
+ {
+ return mapStringListYamlObject.get(key).get(0);
+ }
+ }
+ return null; }
+
+ public String getFirstMapStringListString(String key)
+ {
+ if( mapStringListString.containsKey(key))
+ {
+ if(! mapStringListString.isEmpty())
+ {
+ return mapStringListString.get(key).get(0);
+ }
+ }
+ return null;
+ }
+
+ public boolean isUniqueMapStringListYamlObject(String key)
+ {
+ return (sizeOfMapStringListYamlObject(key) == 1);
+ }
+
+ public boolean isUniqueMapStringListString(String key)
+ {
+ return (sizeOfMapStringListString(key) == 1);
+ }
+
+ public boolean containsKeyYamlMapStringListYamlObject(String key)
+ {
+ return mapStringListYamlObject.containsKey(key);
+ }
+
+ public boolean containsKeyMapStringListString(String key)
+ {
+ return mapStringListString.containsKey(key);
+ }
+
+ public List<YamlObject> getMapStringListYamlObject(String key)
+ {
+ if(mapStringListYamlObject.containsKey(key))
+ {
+ if(!mapStringListYamlObject.isEmpty())
+ {
+ return mapStringListYamlObject.get(key);
+ }
+ }
+ //return null;
+ return new LinkedList<YamlObject>();
+ }
+
+ public List<String> getMapStringListString(String key)
+ {
+ if(mapStringListString.containsKey(key))
+ {
+ if(!mapStringListString.isEmpty())
+ {
+ return mapStringListString.get(key);
+ }
+ }
+ //return null;
+ return new LinkedList<String>();
+ }
+
+ public int sizeOfMapStringListYamlObject(String key)
+ {
+ if(mapStringListYamlObject.containsKey(key))
+ {
+ return mapStringListYamlObject.get(key).size();
+ }
+ return 0;//-1
+ }
+
+ public int sizeOfMapStringListString(String key)
+ {
+ if(mapStringListString.containsKey(key))
+ {
+ return mapStringListString.get(key).size();
+ }
+ return 0;//-1
+ }
+
+ public Map<String, List<YamlObject>> getMapStringListYamlObject()
+ {
+ return mapStringListYamlObject;
+ }
+
+ public Map<String, List<String>> getMapStringListString()
+ {
+ return mapStringListString;
+ }
+
+ public boolean removeMapStringListString(String key, String value)
+ {
+ if(mapStringListString.containsKey(key))
+ {
+ return mapStringListString.get(key).remove(value);
+ }
+ return false;
+ }
+
+ public boolean removeMapStringString(String key)
+ {
+ if(mapStringListString.containsKey(key))
+ {
+ mapStringListString.remove(key);
+ return true;
+ }
+ return false;
+ }
+
+ public boolean removeMapStringListYamlObject(String key, YamlObject value)
+ {
+ if(mapStringListYamlObject.containsKey(key))
+ {
+ return mapStringListYamlObject.get(key).remove(value);
+ }
+ return false;
+ }
+
+ public boolean removeMapStringListYamlObject(String key)
+ {
+ if(mapStringListYamlObject.containsKey(key))
+ {
+ mapStringListYamlObject.remove(key);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if(o instanceof YamlObject)
+ {
+ return (mapStringListYamlObject.equals(((YamlObject) o).getMapStringListYamlObject()) && mapStringListString.equals(((YamlObject) o).getMapStringListString()));
+ }
+ return false;
+ }
+
+ @Override
+ public String toString()
+ {
+ return toString("- ");
+ }
+
+ public String toString(String indentation)
+ {
+ StringBuilder res = new StringBuilder();
+
+ for(Map.Entry<String,List<String>> entry : mapStringListString.entrySet())
+ {
+ for(String str : entry.getValue())
+ {
+ res.append(indentation).append(entry.getKey()).append(": ").append(str).append("\n");
+ }
+ }
+ for(Map.Entry<String,List<YamlObject>> entry : mapStringListYamlObject.entrySet())
+ {
+ for(YamlObject yobj : entry.getValue())
+ {
+ res.append(indentation).append(entry.getKey()).append(":\n").append(yobj.toString( " "+indentation)).append("\n");
+ }
+ }
+ return res.toString();
+ }
+}
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-29 10:08:59 UTC (rev 1265)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -1,29 +1,5 @@
package org.nuiton.eugene.models.object.reader.yaml;
-/*
- * #%L
- * EUGene :: EUGene
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2004 - 2013 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%
- */
-
import org.nuiton.eugene.models.object.*;
import org.nuiton.eugene.models.object.xml.*;
import org.yaml.snakeyaml.Yaml;
@@ -121,6 +97,7 @@
* nouvelle implémentation : contraintes : labels, valeurs par défaut, parser des chaines (imports internes/externes)
*
*/
+ //http://demo.codelutin.com/pollen/poll/summary/23f361a09411482eb6be219ddf4ab5dc:bf4068a19c27436c844980c2f095e079
public void loadFile(File file, ObjectModel model) throws IOException {
//TODO: valeurs par defaut, faire interface ? ou simple map ? + mots clefs ?
defaultValues = new LinkedHashMap<String, String>();
@@ -209,8 +186,8 @@
}
}
- //test imports objets modele
- List<Object> objectsYAML = collectAllElements((List) modelYAML, CLASS);
+ /*//test imports objets modele
+ /*List<Object> objectsYAML = collectAllElements((List) modelYAML, CLASS);
objectsYAML.addAll(collectAllElements((List) modelYAML, INTERFACE));
objectsYAML.addAll(collectAllElements((List) modelYAML, CLASS_ASSOCIATION));
objectsYAML.addAll(collectAllElements((List) modelYAML, ENUMERATION));
@@ -225,7 +202,7 @@
log(imports.toString());
}
}
- //test imports objets modele
+ *///test imports objets modele
List classesYAML = collectAllElements((List) modelYAML, CLASS);
for (Object classYAML : classesYAML) {
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java 2013-05-29 10:08:59 UTC (rev 1265)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java 2013-05-31 15:50:13 UTC (rev 1266)
@@ -1,29 +1,5 @@
package org.nuiton.eugene.models.object.reader.yaml;
-/*
- * #%L
- * EUGene :: EUGene
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2004 - 2013 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%
- */
-
import java.util.*;
/**
@@ -31,6 +7,9 @@
* Date: 14/05/13
* Time: 11:53
*/
+
+//TODO: faire classes dédiée au parser ?
+
public class YamlUtil {
//TODO: caster proprement
public static void keySetToLowerCase(Map<Object, Object> map) {
@@ -81,4 +60,27 @@
StringBuilder out = new StringBuilder(beforeChar(in.reverse().toString(), target));
return out.reverse().toString();
}
+
+ public static Object collectElement(List data, Object key) {
+ for (Object obj : data) {
+ if (obj instanceof Map) {
+ if (((Map) obj).containsKey(key)) {
+ return ((Map) obj).get(key);
+ }
+ }
+ }
+ return null;
+ }
+
+ public static List<Object> collectAllElements(List data, Object key) {
+ List<Object> res = new LinkedList<Object>();
+ for (Object obj : data) {
+ if (obj instanceof Map) {
+ if (((Map) obj).containsKey(key)) {
+ res.add(((Map) obj).get(key));
+ }
+ }
+ }
+ return res;
+ }
}
1
0
r1265 - in trunk: . eugene eugene-java-templates eugene-maven-plugin eugene-plantuml-templates
by maven-release@users.nuiton.org 29 May '13
by maven-release@users.nuiton.org 29 May '13
29 May '13
Author: maven-release
Date: 2013-05-29 12:08:59 +0200 (Wed, 29 May 2013)
New Revision: 1265
Url: http://nuiton.org/projects/eugene/repository/revisions/1265
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/eugene-java-templates/pom.xml
trunk/eugene-maven-plugin/pom.xml
trunk/eugene-plantuml-templates/pom.xml
trunk/eugene/pom.xml
trunk/pom.xml
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2013-05-29 10:08:57 UTC (rev 1264)
+++ trunk/eugene/pom.xml 2013-05-29 10:08:59 UTC (rev 1265)
@@ -32,7 +32,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3</version>
+ <version>2.6.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-java-templates/pom.xml
===================================================================
--- trunk/eugene-java-templates/pom.xml 2013-05-29 10:08:57 UTC (rev 1264)
+++ trunk/eugene-java-templates/pom.xml 2013-05-29 10:08:59 UTC (rev 1265)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3</version>
+ <version>2.6.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-maven-plugin/pom.xml
===================================================================
--- trunk/eugene-maven-plugin/pom.xml 2013-05-29 10:08:57 UTC (rev 1264)
+++ trunk/eugene-maven-plugin/pom.xml 2013-05-29 10:08:59 UTC (rev 1265)
@@ -33,7 +33,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3</version>
+ <version>2.6.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-plantuml-templates/pom.xml
===================================================================
--- trunk/eugene-plantuml-templates/pom.xml 2013-05-29 10:08:57 UTC (rev 1264)
+++ trunk/eugene-plantuml-templates/pom.xml 2013-05-29 10:08:59 UTC (rev 1265)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3</version>
+ <version>2.6.4-SNAPSHOT</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-05-29 10:08:57 UTC (rev 1264)
+++ trunk/pom.xml 2013-05-29 10:08:59 UTC (rev 1265)
@@ -36,7 +36,7 @@
</parent>
<artifactId>eugene</artifactId>
- <version>2.6.3</version>
+ <version>2.6.4-SNAPSHOT</version>
<modules>
<module>eugene</module>
@@ -385,11 +385,11 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.6.3</connection>
+ <connection>scm:svn:http://svn.nuiton.org/svn/eugene/trunk</connection>
<developerConnection>
- scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.6.3
+ scm:svn:http://svn.nuiton.org/svn/eugene/trunk
</developerConnection>
- <url>http://nuiton.org/projects/eugene/repository/show/tags/eugene-2.6.3</url>
+ <url>http://nuiton.org/projects/eugene/repository/show/trunk</url>
</scm>
<distributionManagement>
1
0
Author: maven-release
Date: 2013-05-29 12:08:57 +0200 (Wed, 29 May 2013)
New Revision: 1264
Url: http://nuiton.org/projects/eugene/repository/revisions/1264
Log:
[maven-release-plugin] copy for tag eugene-2.6.3
Added:
tags/eugene-2.6.3/
Property changes on: tags/eugene-2.6.3
___________________________________________________________________
Added: svn:ignore
+ target
.settings
bin
.classpath
.project
*.iml
*.ipr
*.iws
.idea
Added: svn:mergeinfo
+ /branches/1.0.1-Javabuilder:641-651
/branches/1.1.0-Javabuilder:652-681
/branches/eugene-2.0:682-754
/branches/eugene-2.4.3:1151-1173
1
0
r1263 - in trunk: . eugene eugene-java-templates eugene-maven-plugin eugene-plantuml-templates
by maven-release@users.nuiton.org 29 May '13
by maven-release@users.nuiton.org 29 May '13
29 May '13
Author: maven-release
Date: 2013-05-29 12:08:55 +0200 (Wed, 29 May 2013)
New Revision: 1263
Url: http://nuiton.org/projects/eugene/repository/revisions/1263
Log:
[maven-release-plugin] prepare release eugene-2.6.3
Modified:
trunk/eugene-java-templates/pom.xml
trunk/eugene-maven-plugin/pom.xml
trunk/eugene-plantuml-templates/pom.xml
trunk/eugene/pom.xml
trunk/pom.xml
Modified: trunk/eugene/pom.xml
===================================================================
--- trunk/eugene/pom.xml 2013-05-29 10:06:05 UTC (rev 1262)
+++ trunk/eugene/pom.xml 2013-05-29 10:08:55 UTC (rev 1263)
@@ -32,7 +32,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3-SNAPSHOT</version>
+ <version>2.6.3</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-java-templates/pom.xml
===================================================================
--- trunk/eugene-java-templates/pom.xml 2013-05-29 10:06:05 UTC (rev 1262)
+++ trunk/eugene-java-templates/pom.xml 2013-05-29 10:08:55 UTC (rev 1263)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3-SNAPSHOT</version>
+ <version>2.6.3</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-maven-plugin/pom.xml
===================================================================
--- trunk/eugene-maven-plugin/pom.xml 2013-05-29 10:06:05 UTC (rev 1262)
+++ trunk/eugene-maven-plugin/pom.xml 2013-05-29 10:08:55 UTC (rev 1263)
@@ -33,7 +33,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3-SNAPSHOT</version>
+ <version>2.6.3</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/eugene-plantuml-templates/pom.xml
===================================================================
--- trunk/eugene-plantuml-templates/pom.xml 2013-05-29 10:06:05 UTC (rev 1262)
+++ trunk/eugene-plantuml-templates/pom.xml 2013-05-29 10:08:55 UTC (rev 1263)
@@ -29,7 +29,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>eugene</artifactId>
- <version>2.6.3-SNAPSHOT</version>
+ <version>2.6.3</version>
</parent>
<groupId>org.nuiton.eugene</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-05-29 10:06:05 UTC (rev 1262)
+++ trunk/pom.xml 2013-05-29 10:08:55 UTC (rev 1263)
@@ -36,7 +36,7 @@
</parent>
<artifactId>eugene</artifactId>
- <version>2.6.3-SNAPSHOT</version>
+ <version>2.6.3</version>
<modules>
<module>eugene</module>
@@ -385,11 +385,11 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/eugene/trunk</connection>
+ <connection>scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.6.3</connection>
<developerConnection>
- scm:svn:http://svn.nuiton.org/svn/eugene/trunk
+ scm:svn:http://svn.nuiton.org/svn/eugene/tags/eugene-2.6.3
</developerConnection>
- <url>http://nuiton.org/projects/eugene/repository/show/trunk</url>
+ <url>http://nuiton.org/projects/eugene/repository/show/tags/eugene-2.6.3</url>
</scm>
<distributionManagement>
1
0
r1262 - in trunk: eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml eugene-plantuml-templates eugene-plantuml-templates/src/main/java/org/nuiton/eugene/plantuml src/site/rst
by tchemit@users.nuiton.org 29 May '13
by tchemit@users.nuiton.org 29 May '13
29 May '13
Author: tchemit
Date: 2013-05-29 12:06:05 +0200 (Wed, 29 May 2013)
New Revision: 1262
Url: http://nuiton.org/projects/eugene/repository/revisions/1262
Log:
prepare release
Modified:
trunk/eugene-plantuml-templates/LICENSE.txt
trunk/eugene-plantuml-templates/README.txt
trunk/eugene-plantuml-templates/changelog.txt
trunk/eugene-plantuml-templates/pom.xml
trunk/eugene-plantuml-templates/src/main/java/org/nuiton/eugene/plantuml/PlantumlTemplatesGenerator.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java
trunk/src/site/rst/index.rst
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-28 13:49:26 UTC (rev 1261)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-29 10:06:05 UTC (rev 1262)
@@ -1,5 +1,29 @@
package org.nuiton.eugene.models.object.reader.yaml;
+/*
+ * #%L
+ * EUGene :: EUGene
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2004 - 2013 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%
+ */
+
import org.nuiton.eugene.models.object.*;
import org.nuiton.eugene.models.object.xml.*;
import org.yaml.snakeyaml.Yaml;
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.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/reader/yaml/YamlUtil.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java 2013-05-28 13:49:26 UTC (rev 1261)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java 2013-05-29 10:06:05 UTC (rev 1262)
@@ -1,5 +1,29 @@
package org.nuiton.eugene.models.object.reader.yaml;
+/*
+ * #%L
+ * EUGene :: EUGene
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2004 - 2013 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%
+ */
+
import java.util.*;
/**
Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlUtil.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/eugene-plantuml-templates/LICENSE.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/eugene-plantuml-templates/README.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Property changes on: trunk/eugene-plantuml-templates/changelog.txt
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/eugene-plantuml-templates/pom.xml
===================================================================
--- trunk/eugene-plantuml-templates/pom.xml 2013-05-28 13:49:26 UTC (rev 1261)
+++ trunk/eugene-plantuml-templates/pom.xml 2013-05-29 10:06:05 UTC (rev 1262)
@@ -3,7 +3,7 @@
#%L
EUGene :: EUGene
- $HeadURL: http://svn.nuiton.org/svn/eugene/trunk/eugene-java-templates/pom.xml $
+ $HeadURL$
%%
Copyright (C) 2004 - 2010 CodeLutin
%%
Property changes on: trunk/eugene-plantuml-templates/pom.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/eugene-plantuml-templates/src/main/java/org/nuiton/eugene/plantuml/PlantumlTemplatesGenerator.java
===================================================================
--- trunk/eugene-plantuml-templates/src/main/java/org/nuiton/eugene/plantuml/PlantumlTemplatesGenerator.java 2013-05-28 13:49:26 UTC (rev 1261)
+++ trunk/eugene-plantuml-templates/src/main/java/org/nuiton/eugene/plantuml/PlantumlTemplatesGenerator.java 2013-05-29 10:06:05 UTC (rev 1262)
@@ -1,19 +1,61 @@
package org.nuiton.eugene.plantuml;
+/*
+ * #%L
+ * EUGene :: PlantUML templates
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2013 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%
+ */
+
import net.sourceforge.plantuml.GeneratedImage;
import net.sourceforge.plantuml.SourceFileReader;
-import org.nuiton.eugene.models.object.*;
-import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl;
+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.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.*;
-import java.util.*;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
-// http://maven-site.nuiton.org/eugene/objectmodel/ObjectModel_Interfaces.png
-//TODO : Plexus ?
-
+/**
+ * TODO
+ *
+ * @author agiraudet
+ * @plexus.component role="org.nuiton.eugene.Template" role-hint="org.nuiton.eugene.plantuml.PlantumlTemplatesGenerator"
+ * @since 2.6.3
+ */
public class PlantumlTemplatesGenerator extends ObjectModelGenerator {
private boolean _loginit = true;
+
private void log(String str) {
try {
FileWriter log;
@@ -27,7 +69,9 @@
log = new FileWriter(path, true);
log.write("[LOG] " + str + "\n");
log.close();
- } catch (IOException e) {;}
+ } catch (IOException e) {
+ ;
+ }
}
@Override
@@ -37,32 +81,26 @@
// utiliser le systeme de templates a l'avenir
- Map<ObjectModelAttribute,ObjectModelClassifier> linksOME = new LinkedHashMap<ObjectModelAttribute, ObjectModelClassifier>();
+ Map<ObjectModelAttribute, ObjectModelClassifier> linksOME = new LinkedHashMap<ObjectModelAttribute, ObjectModelClassifier>();
// debut du fichier
output.write("@startuml\n\n");
// parcours des classes
- for(ObjectModelClass class_tmp : input.getClasses())
- {
+ for (ObjectModelClass class_tmp : input.getClasses()) {
// sale
String classStereotype = "";
- if(class_tmp.getStereotypes().size()>0)
- {
+ if (class_tmp.getStereotypes().size() > 0) {
classStereotype = "<<";
boolean first = true;
- for(String str : class_tmp.getStereotypes())
- {
- if(first)
- {
- classStereotype = classStereotype+str;
+ for (String str : class_tmp.getStereotypes()) {
+ if (first) {
+ classStereotype = classStereotype + str;
first = false;
+ } else {
+ classStereotype = classStereotype + " ," + str;
}
- else
- {
- classStereotype = classStereotype+" ,"+str;
- }
}
- classStereotype = classStereotype+">>";
+ classStereotype = classStereotype + ">>";
}
/*if(class_tmp.getStereotypes().contains("entity"))
{
@@ -70,154 +108,123 @@
}*/
String className = class_tmp.getName();
// ajout de la classe
- output.write("class "+className+classStereotype+" {\n");
+ output.write("class " + className + classStereotype + " {\n");
// parcours des attributs de la classe
- for(ObjectModelAttribute attribute_tmp : class_tmp.getAttributes())
- {
+ for (ObjectModelAttribute attribute_tmp : class_tmp.getAttributes()) {
String attributeName = attribute_tmp.getName();
//String attributeType = afterLastPoint(attribute_tmp.getType());
String attributeType = attribute_tmp.getType();
// si l'attribut n'est lie a aucune classe
- if(attribute_tmp.referenceClassifier())
- {
+ if (attribute_tmp.referenceClassifier()) {
// ajout du lien
- linksOME.put(attribute_tmp,class_tmp);
- }
- else
- {
+ linksOME.put(attribute_tmp, class_tmp);
+ } else {
// ajout de l'attribut
- output.write(" -"+attributeName+" : "+attributeType+"\n");
+ output.write(" -" + attributeName + " : " + attributeType + "\n");
}
}
// parcours des operations
- for(ObjectModelOperation operation_tmp : class_tmp.getOperations())
- {
+ for (ObjectModelOperation operation_tmp : class_tmp.getOperations()) {
String operationName = operation_tmp.getName();
//String operationReturnType = afterLastPoint(operation_tmp.getReturnType());
String operationReturnType = operation_tmp.getReturnType();
// ajout de l'operation
- output.write(" +"+operationName+"(");
+ output.write(" +" + operationName + "(");
// parcours des parametres
boolean first = true;
- for(ObjectModelParameter param : operation_tmp.getParameters())
- {
+ for (ObjectModelParameter param : operation_tmp.getParameters()) {
String parameterName = param.getName();
//String parameterType = afterLastPoint(param.getType());
String parameterType = param.getType();
- if(first)
- {
+ if (first) {
first = false;
- }
- else
- {
+ } else {
output.write(", ");
}
// ajout du parametre
- output.write(parameterName+" : "+parameterType);
+ output.write(parameterName + " : " + parameterType);
}
// ajout du type de retour
- output.write(") : "+operationReturnType+"\n");// attention aux listes !
+ output.write(") : " + operationReturnType + "\n");// attention aux listes !
}
output.write("}\n\n");
}
// parcours des enumerations
- for(ObjectModelEnumeration enumeration_tmp : input.getEnumerations())
- {
+ for (ObjectModelEnumeration enumeration_tmp : input.getEnumerations()) {
String enumerationName = enumeration_tmp.getName();
String enumerationStereotype = "";
- if(enumeration_tmp.getStereotypes().contains("entity"))
- {
+ if (enumeration_tmp.getStereotypes().contains("entity")) {
enumerationStereotype = " <<entity>>";
}
// ajout de l'enumeration
- output.write("enum "+enumerationName+enumerationStereotype+" {\n");
+ output.write("enum " + enumerationName + enumerationStereotype + " {\n");
output.write("}\n\n");
}
// parcours des interfaces
- for(ObjectModelInterface interface_tmp : input.getInterfaces())
- {
+ for (ObjectModelInterface interface_tmp : input.getInterfaces()) {
String interfaceName = interface_tmp.getName();
String interfaceStereotype = "";
- if(interface_tmp.getStereotypes().contains("entity"))
- {
+ if (interface_tmp.getStereotypes().contains("entity")) {
interfaceStereotype = " <<entity>>";
}
// ajout de l'interface
- output.write("interface "+interfaceName+interfaceStereotype+" {\n");
+ output.write("interface " + interfaceName + interfaceStereotype + " {\n");
// ajout des methodes
output.write("}\n\n");
}
//liaisons
- for(ObjectModelAttribute attribute_tmp : linksOME.keySet())
- {
- if(attribute_tmp.isComposite() && attribute_tmp.referenceClassifier())
+ for (ObjectModelAttribute attribute_tmp : linksOME.keySet()) {
+ if (attribute_tmp.isComposite() && attribute_tmp.referenceClassifier()) {
+ output.write(linksOME.get(attribute_tmp).getName() + " *-- " + attribute_tmp.getClassifier().getName() + "\n");
+ } else if (attribute_tmp.isAggregate() && attribute_tmp.referenceClassifier())//else if
{
- output.write(linksOME.get(attribute_tmp).getName()+" *-- "+attribute_tmp.getClassifier().getName()+"\n");
- }
- else if(attribute_tmp.isAggregate() && attribute_tmp.referenceClassifier())//else if
+ output.write(linksOME.get(attribute_tmp).getName() + " o-- " + attribute_tmp.getClassifier().getName() + "\n");
+ } else if (!attribute_tmp.isNavigable() && attribute_tmp.referenceClassifier())//probleme avec les compositions et aggregations -> double lien
{
- output.write(linksOME.get(attribute_tmp).getName()+" o-- "+attribute_tmp.getClassifier().getName()+"\n");
+ output.write(attribute_tmp.getClassifier().getName() + " --> " + linksOME.get(attribute_tmp).getName() + "\n");
+ } else if (attribute_tmp.isNavigable() && attribute_tmp.referenceClassifier()) {
+ output.write(attribute_tmp.getClassifier().getName() + " -- " + linksOME.get(attribute_tmp).getName() + "\n");
}
- else if(!attribute_tmp.isNavigable() && attribute_tmp.referenceClassifier())//probleme avec les compositions et aggregations -> double lien
- {
- output.write(attribute_tmp.getClassifier().getName()+" --> "+linksOME.get(attribute_tmp).getName()+"\n");
- }
- else if(attribute_tmp.isNavigable() && attribute_tmp.referenceClassifier())
- {
- output.write(attribute_tmp.getClassifier().getName()+" -- "+linksOME.get(attribute_tmp).getName()+"\n");
- }
}
//classes d'association
- Map<String,LinkedList<String>> associationClass = new LinkedHashMap<String, LinkedList<String>>();
- for(ObjectModelClassifier classifier : input.getClassifiers())
- {
- for(ObjectModelAttribute attribute : classifier.getAttributes())
- {
- if(attribute.hasAssociationClass())
- {
+ Map<String, LinkedList<String>> associationClass = new LinkedHashMap<String, LinkedList<String>>();
+ for (ObjectModelClassifier classifier : input.getClassifiers()) {
+ for (ObjectModelAttribute attribute : classifier.getAttributes()) {
+ if (attribute.hasAssociationClass()) {
String key = attribute.getAssociationClass().getName();
String value = classifier.getName();
- if(associationClass.containsKey(key))
- {
+ if (associationClass.containsKey(key)) {
associationClass.get(key).add(value);
- }
- else
- {
- associationClass.put(key,new LinkedList<String>());
+ } else {
+ associationClass.put(key, new LinkedList<String>());
associationClass.get(key).add(value);
}
}
}
}
- for(Map.Entry<String,LinkedList<String>> entry : associationClass.entrySet())
- {
+ for (Map.Entry<String, LinkedList<String>> entry : associationClass.entrySet()) {
boolean first = true;
output.write("(");
- for(String value : entry.getValue())
- {
- if(first)
- {
+ for (String value : entry.getValue()) {
+ if (first) {
output.write(value);
first = false;
- }else
- {
- output.write(", "+value);
+ } else {
+ output.write(", " + value);
}
}
- output.write(") .. "+entry.getKey()+"\n");
+ output.write(") .. " + entry.getKey() + "\n");
}
//extensions/generalisations (heritage)
- for(ObjectModelClass classOM : input.getClasses())
- {
- for(ObjectModelClass superClassOM : classOM.getSuperclasses())
- {
- output.write(superClassOM.getName()+" <|-- "+classOM.getName());
+ for (ObjectModelClass classOM : input.getClasses()) {
+ for (ObjectModelClass superClassOM : classOM.getSuperclasses()) {
+ output.write(superClassOM.getName() + " <|-- " + classOM.getName());
}
}
@@ -226,20 +233,15 @@
}
// exemple : afterLastPoint("org.nuiton.testeugene.generator") return "generator"
- public static String afterLastPoint(String input)
- {
+ public static String afterLastPoint(String input) {
String str = new StringBuffer(input).reverse().toString();
String res = "";
- for(Character car : str.toCharArray())
- {
- if(car.equals('.'))
- {
+ for (Character car : str.toCharArray()) {
+ if (car.equals('.')) {
return res;
+ } else {
+ res = car.toString() + res;
}
- else
- {
- res = car.toString()+res;
- }
}
return res;
}
@@ -248,10 +250,10 @@
public void applyTemplate(ObjectModel model, File destDir) throws IOException {
super.applyTemplate(model, destDir);
try {
- File plantuml = new File(destDir+File.separator+this.getFilenameForModel(model));
+ File plantuml = new File(destDir + File.separator + this.getFilenameForModel(model));
SourceFileReader reader = new SourceFileReader(plantuml);
List<GeneratedImage> lst = reader.getGeneratedImages();
- new File(lst.get(0).getPngFile(), destDir+File.separator+model.getName()+".png");
+ new File(lst.get(0).getPngFile(), destDir + File.separator + model.getName() + ".png");
} catch (InterruptedException e) {
e.printStackTrace();
}
@@ -259,6 +261,6 @@
@Override
public String getFilenameForModel(ObjectModel model) {
- return model.getName()+".plantuml";
+ return model.getName() + ".plantuml";
}
}
Property changes on: trunk/eugene-plantuml-templates/src/main/java/org/nuiton/eugene/plantuml/PlantumlTemplatesGenerator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2013-05-28 13:49:26 UTC (rev 1261)
+++ trunk/src/site/rst/index.rst 2013-05-29 10:06:05 UTC (rev 1262)
@@ -51,10 +51,11 @@
.. _Generator: 07-glossaire.html
.. _FAQ: 08-FAQ.html
-EUGene is divided into 3 modules :
+EUGene is divided into 4 modules :
* `eugene-api`_ (EUGene Api)
* `eugene-java-templates`_ (Templates pour générer des classes java)
+ * `eugene-plantuml-templates`_ (depuis la version 2.7) (Templates pour générer des diagrammes plantumlclasses java)
* `eugene-maven-plugin`_ (Maven Plugin to generate stuff using EUGene)
.. _eugene-api: eugene/index.html
1
0
r1261 - trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml
by agiraudet@users.nuiton.org 28 May '13
by agiraudet@users.nuiton.org 28 May '13
28 May '13
Author: agiraudet
Date: 2013-05-28 15:49:26 +0200 (Tue, 28 May 2013)
New Revision: 1261
Url: http://nuiton.org/projects/eugene/repository/revisions/1261
Log:
refs #2685: correction d'un bug emp?\195?\170chant les r?\195?\169f?\195?\169rences vers les ?\195?\169num?\195?\169rations d'un m?\195?\170me mod?\195?\168le (attribut package non initialis?\195?\169)
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-28 10:06:25 UTC (rev 1260)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-28 13:49:26 UTC (rev 1261)
@@ -451,6 +451,14 @@
log("literal="+String.valueOf(literalsYAML));
}
}
+
+ Object packageYAML = collectElement((List) enumerationYAML, PACKAGE);
+ if (packageYAML == null) {
+ enumerationOM.setPackage(packageOM);
+ } else {
+ enumerationOM.setPackage(String.valueOf(packageYAML));
+ log("package="+String.valueOf(packageYAML));
+ }
}
}
@@ -572,7 +580,7 @@
Object reverseAttributeNameYAML = collectElement((List) attributeYAML, REVERSE_ATTRIBUTE_NAME);
if (reverseAttributeNameYAML == null) {
- attributeOM.setReverseAttributeName("");//test
+ ;// attributeOM.setReverseAttributeName("");//test
} else {
attributeOM.setReverseAttributeName(String.valueOf(reverseAttributeNameYAML));
log("reverseAttributeName="+String.valueOf(reverseAttributeNameYAML));
1
0
r1260 - trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml
by agiraudet@users.nuiton.org 28 May '13
by agiraudet@users.nuiton.org 28 May '13
28 May '13
Author: agiraudet
Date: 2013-05-28 12:06:25 +0200 (Tue, 28 May 2013)
New Revision: 1260
Url: http://nuiton.org/projects/eugene/repository/revisions/1260
Log:
correction d'un bug: initialise l'attribut reverseAttributeName des des attributs de l'ObjectModel ?\195?\160 la cha?\195?\174ne vide
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-27 14:38:32 UTC (rev 1259)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-28 10:06:25 UTC (rev 1260)
@@ -572,7 +572,7 @@
Object reverseAttributeNameYAML = collectElement((List) attributeYAML, REVERSE_ATTRIBUTE_NAME);
if (reverseAttributeNameYAML == null) {
- ;//attributeOM.setReverseAttributeName("");
+ attributeOM.setReverseAttributeName("");//test
} else {
attributeOM.setReverseAttributeName(String.valueOf(reverseAttributeNameYAML));
log("reverseAttributeName="+String.valueOf(reverseAttributeNameYAML));
1
0
r1259 - trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml
by agiraudet@users.nuiton.org 27 May '13
by agiraudet@users.nuiton.org 27 May '13
27 May '13
Author: agiraudet
Date: 2013-05-27 16:38:32 +0200 (Mon, 27 May 2013)
New Revision: 1259
Url: http://nuiton.org/projects/eugene/repository/revisions/1259
Log:
Gestion des imports internes pour les attributs et les classes d'association
Modified:
trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java
===================================================================
--- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-26 06:50:33 UTC (rev 1258)
+++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/yaml/YamlToObjectModel.java 2013-05-27 14:38:32 UTC (rev 1259)
@@ -90,51 +90,23 @@
//TODO: retourner boolean sur reussite chargement ? ou lever excpetions ? -> aucun des deux pour le moment
//TODO: charger valeurs par defaut en fonction de la version de la syntaxe yaml (syntaxe: version), charger les valeurs à partir d'un fichier ou d'une classe ? -> a partir d'un fichier YAML
//TODO: mettre les valeurs par défaut en dur dans le code
- //TODO: gérer les imports sous forme de List et récuperer le type
+ //TODOK: gérer les imports sous forme de List et récuperer le type
//TODO: pre-charger les noms et paquetages des classes pour les imports
- //if(valeur == null) -> charger valeur par defaut -charger celles de l'utilisateur ou celles du programme ou rien
+ //TODO: 1/ instancier les objets et les attributs de niveau 1 (name, package...) (et charger les imports vers les classes du modele) 2/ charger les objets de niveau 2 (attributes, operations...)
+ /*
+ * nouvelle implémentation : contraintes : labels, valeurs par défaut, parser des chaines (imports internes/externes)
+ *
+ */
public void loadFile(File file, ObjectModel model) throws IOException {
- /*//test - log
- //chargement du fichier contenant les valeurs par defaut
+ //TODO: valeurs par defaut, faire interface ? ou simple map ? + mots clefs ?
defaultValues = new LinkedHashMap<String, String>();
- String defaultValuesPATH = file.getParent()+File.separator+FILE_DEFAULT_VALUES;
- File defaultValuesFILE = new File(defaultValuesPATH);
- if(defaultValuesFILE.isFile() && defaultValuesFILE.canRead())
- {
- InputStream defaultValuesIN = new FileInputStream(defaultValuesPATH);
- Object defaultValuesYAML = yaml.load(defaultValuesIN);
- defaultValuesIN.close();
- if(defaultValuesYAML instanceof Map)
- {
- for(Object entry : ((Map) defaultValuesYAML).entrySet())
- {
- defaultValues.put(String.valueOf(((Map.Entry) entry).getKey()),String.valueOf(((Map.Entry) entry).getValue()));
- log("default=[key="+String.valueOf(((Map.Entry) entry).getKey())+" value="+String.valueOf(((Map.Entry) entry).getValue())+"]");
- }
- }
- }
- //charges les valeurs par defaut du logiciel si false ou ne fait rien si true
- if(defaultValues.get(DEFAULT) == null)
- {
- defaultVoid = false;
- }
- else
- {
- defaultVoid = Boolean.valueOf(String.valueOf(defaultValues.get(DEFAULT)));
- }
- *///test - log
-
- //TODO: valeurs par defaut, faire interface ? ou simple map ?
- defaultValues = new LinkedHashMap<String, String>();
-
ObjectModelImpl modelOM = (ObjectModelImpl) model;
InputStream inputModel = new FileInputStream(file);
Object modelYAML = yaml.load(inputModel);
inputModel.close();
List<String> ignore = new LinkedList<String>();
- //ignore.add(IMPORTS);
ignore.add(TAG_VALUES);
browseKeySetToLowerCase(modelYAML, ignore);
@@ -213,6 +185,24 @@
}
}
+ //test imports objets modele
+ List<Object> objectsYAML = collectAllElements((List) modelYAML, CLASS);
+ objectsYAML.addAll(collectAllElements((List) modelYAML, INTERFACE));
+ objectsYAML.addAll(collectAllElements((List) modelYAML, CLASS_ASSOCIATION));
+ objectsYAML.addAll(collectAllElements((List) modelYAML, ENUMERATION));
+ for(Object objectYAML : objectsYAML)
+ {
+ if(objectYAML instanceof List)
+ {
+ Object importNameYAML = collectElement((List) objectYAML, NAME);
+ //Object importPackageYAML = collectElement((List) objectYAML, PACKAGE);
+ imports.put(String.valueOf(importNameYAML),packageOM+"."+String.valueOf(importNameYAML));
+ log("import="+imports.get(String.valueOf(importNameYAML)));
+ log(imports.toString());
+ }
+ }
+ //test imports objets modele
+
List classesYAML = collectAllElements((List) modelYAML, CLASS);
for (Object classYAML : classesYAML) {
ObjectModelClassImpl classOM = new ObjectModelClassImpl();
@@ -425,8 +415,13 @@
if (nameYAML == null) {
;
} else {
- participantOM.setName(String.valueOf(nameYAML));
- log("name="+String.valueOf(nameYAML));
+ String name = String.valueOf(nameYAML);
+ if (imports.containsKey(name)) {
+ participantOM.setName(imports.get(name));
+ } else {
+ participantOM.setName(name);
+ }
+ log("name="+name);
}
Object attributeYAML = collectElement((List) participantYAML, ATTRIBUTE);
@@ -566,8 +561,13 @@
if (associationClassNameYAML == null) {
;
} else {
- attributeOM.setAssociationClassName(String.valueOf(associationClassNameYAML));
- log("associationClassName="+String.valueOf(associationClassNameYAML));
+ String associationClassName = String.valueOf(associationClassNameYAML);
+ if (imports.containsKey(associationClassName)) {
+ attributeOM.setAssociationClassName(imports.get(associationClassName));
+ } else {
+ attributeOM.setAssociationClassName(associationClassName);
+ }
+ log("associationClassName="+associationClassName);
}
Object reverseAttributeNameYAML = collectElement((List) attributeYAML, REVERSE_ATTRIBUTE_NAME);
1
0
Author: tchemit
Date: 2013-05-26 08:50:33 +0200 (Sun, 26 May 2013)
New Revision: 1258
Url: http://nuiton.org/projects/eugene/repository/revisions/1258
Log:
updates mavenpom to 3.4.11
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-05-25 15:22:37 UTC (rev 1257)
+++ trunk/pom.xml 2013-05-26 06:50:33 UTC (rev 1258)
@@ -32,7 +32,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmineAndCentral</artifactId>
- <version>3.4.10</version>
+ <version>3.4.11</version>
</parent>
<artifactId>eugene</artifactId>
1
0
Author: tchemit
Date: 2013-05-25 17:22:37 +0200 (Sat, 25 May 2013)
New Revision: 1257
Url: http://nuiton.org/projects/eugene/repository/revisions/1257
Log:
change module order (plugin should be able to use all core templates)
Modified:
trunk/eugene-maven-plugin/pom.xml
trunk/pom.xml
Modified: trunk/eugene-maven-plugin/pom.xml
===================================================================
--- trunk/eugene-maven-plugin/pom.xml 2013-05-25 15:05:26 UTC (rev 1256)
+++ trunk/eugene-maven-plugin/pom.xml 2013-05-25 15:22:37 UTC (rev 1257)
@@ -57,6 +57,13 @@
</dependency>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>eugene-plantuml-templates</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2013-05-25 15:05:26 UTC (rev 1256)
+++ trunk/pom.xml 2013-05-25 15:22:37 UTC (rev 1257)
@@ -41,8 +41,8 @@
<modules>
<module>eugene</module>
<module>eugene-java-templates</module>
+ <module>eugene-plantuml-templates</module>
<module>eugene-maven-plugin</module>
- <module>eugene-plantuml-templates</module>
</modules>
<dependencyManagement>
1
0