This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository eugene. See https://gitlab.nuiton.org/nuiton/eugene.git commit bbeefd4c70be5a65c5b20694187bb6f98bbb0bee Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Sep 10 13:07:25 2016 +0200 Extract ModelBean and his builder + clean mojo --- .../TransformFlatPropertiesToCompactMojo.java | 355 ++++----------------- .../plugin/modelextension/AttributeBean.java | 13 + .../eugene/plugin/modelextension/ClassBean.java | 62 ++++ .../eugene/plugin/modelextension/ElementBean.java | 50 +++ .../eugene/plugin/modelextension/ModelBean.java | 74 +++++ .../plugin/modelextension/ModelBeanBuilder.java | 148 +++++++++ .../eugene/plugin/modelextension/PackageBean.java | 14 + 7 files changed, 415 insertions(+), 301 deletions(-) diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java index e5ea74f..51c907c 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/TransformFlatPropertiesToCompactMojo.java @@ -1,98 +1,70 @@ package org.nuiton.eugene.plugin; import com.google.common.io.Files; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; -import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.MavenProject; -import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParser; -import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParserCallback; -import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParserFactory; -import org.nuiton.eugene.models.stereotype.InvalidStereotypeSyntaxException; -import org.nuiton.eugene.models.stereotype.StereotypeAble; -import org.nuiton.eugene.models.tagvalue.InvalidTagValueSyntaxException; -import org.nuiton.eugene.models.tagvalue.TagValueAble; +import org.nuiton.eugene.plugin.modelextension.ClassBean; +import org.nuiton.eugene.plugin.modelextension.ModelBean; +import org.nuiton.eugene.plugin.modelextension.ModelBeanBuilder; +import org.nuiton.eugene.plugin.modelextension.PackageBean; import org.nuiton.plugin.AbstractPlugin; import java.io.File; import java.io.FilenameFilter; -import java.io.IOException; -import java.io.Writer; -import java.nio.charset.StandardCharsets; +import java.nio.charset.Charset; import java.util.Map; import java.util.Set; -import java.util.TreeMap; -import java.util.TreeSet; /** + * To a transform some object model extension files in flat properties format to a single file in compact format. + * * Created on 09/09/16. * * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 */ -@Mojo(name = "transform-flat-properties-to-compact", requiresDependencyResolution = ResolutionScope.COMPILE) +@Mojo(name = "transform-flat-properties-to-compact") public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { /** - * Pour activer le mode verbeux. - * - * @since 2.0.0 - */ - @Parameter(property = "eugene.verbose", defaultValue = "${maven.verbose}") - protected boolean verbose; - - /** - * Encoding to be used for generation of files. - * - * <b>Note:</b> If nothing is filled here, we will use the system - * property {@code file.encoding}. - * - * @since 2.0.0 + * Name of model (the generated file name is {@code modelName.objectmodel-ext}). */ - @Parameter(property = "eugene.encoding", defaultValue = "${project.build.sourceEncoding}") - protected String encoding; + @Parameter(property = "eugene.modelName", required = true) + protected String modelName; /** - * Ne génère rien, analyse juste la configuration. - * - * @since 2.0.0 + * Where to find and generate files. */ - @Parameter(property = "eugene.dryRun", defaultValue = "false") - protected boolean dryRun; + @Parameter(property = "eugene.directory", defaultValue = "${project.basedir}/src/main/xmi", required = true) + protected File directory; /** * Maven project. - * - * @since 2.0.0 */ @Parameter(defaultValue = "${project}", readonly = true) protected MavenProject project; /** - * The type of model to be used. - * - * By default, use an {@code objectmodel}. - * - * @required + * Display transformation result, but do not generate file. */ - @Parameter(property = "eugene.modelType", defaultValue = "xmlobjectmodel", required = true) - protected String modelType; + @Parameter(property = "eugene.dryRun") + protected boolean dryRun; /** - * Where to find model properties files. + * Verbose mode. */ - @Parameter(property = "eugene.inputDirectory", defaultValue = "${project.basedir}/src/main/xmi", required = true) - protected File inputDirectory; + @Parameter(property = "eugene.verbose", defaultValue = "${maven.verbose}") + protected boolean verbose; /** - * Where to generate yaml file. + * Encoding to be used for generation of files. + * + * <b>Note:</b> If nothing is filled here, we will use the system property {@code file.encoding}. */ - @Parameter(property = "eugene.outputDirectory", defaultValue = "${project.basedir}/src/main/xmi", required = true) - protected File outputDirectory; - - @Parameter(property = "eugene.modelName", required = true) - protected String modelName; + @Parameter(property = "eugene.encoding", defaultValue = "${project.build.sourceEncoding}") + protected String encoding; protected File[] inputFiles; protected File outputFile; @@ -101,7 +73,9 @@ public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { @Override protected void init() throws Exception { - inputFiles = inputDirectory.listFiles(new FilenameFilter() { + eol = SystemUtils.LINE_SEPARATOR; + + inputFiles = directory.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".properties"); @@ -110,38 +84,40 @@ public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { getLog().info("Found " + inputFiles.length + " model extension properties file(s)."); - outputFile = new File(outputDirectory, modelName + ".objectmodel-ext"); + outputFile = new File(directory, modelName + ".objectmodel-ext"); } @Override protected void doAction() throws Exception { - ModelBeanBuilder modelBeanBuilder = new ModelBeanBuilder(modelName); + ModelBeanBuilder modelBeanBuilder = new ModelBeanBuilder(false, modelName); for (File inputFile : inputFiles) { modelBeanBuilder.addFile(inputFile); } - eol = SystemUtils.LINE_SEPARATOR; ModelBean modelBean = modelBeanBuilder.build(); + getLog().info(modelBeanBuilder.getStereotypeHits() + " stereotype(s) detected."); + getLog().info(modelBeanBuilder.getTagValueHits() + " tag value(s) detected."); + StringBuilder result = new StringBuilder(); result.append("[model]").append(eol); - appendMap(modelBean.tagValues, "", "tagvalues", result); - appendSet(modelBean.stereotypes, "", "stereotypes", result); + appendMap(modelBean.getTagValues(), "", "tagvalues", result); + appendSet(modelBean.getStereotypes(), "", "stereotypes", result); result.append(eol).append("[package]").append(eol); if (modelBean.withPackages()) { - for (PackageBean packageBean : modelBean.packages) { + for (PackageBean packageBean : modelBean.getPackages()) { - result.append(packageBean.name).append(eol); - appendMap(packageBean.tagValues, " ", "tagvalues", result); - appendSet(packageBean.stereotypes, " ", "stereotypes", result); + result.append(packageBean.getName()).append(eol); + appendMap(packageBean.getTagValues(), " ", "tagvalues", result); + appendSet(packageBean.getStereotypes(), " ", "stereotypes", result); } @@ -151,11 +127,11 @@ public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { if (modelBean.withClasses()) { - for (ClassBean classBean : modelBean.classes) { + for (ClassBean classBean : modelBean.getClasses()) { - result.append(classBean.name).append(eol); - appendMap(classBean.tagValues, " ", "tagvalues", result); - appendSet(classBean.stereotypes, " ", "stereotypes", result); + result.append(classBean.getName()).append(eol); + appendMap(classBean.getTagValues(), " ", "tagvalues", result); + appendSet(classBean.getStereotypes(), " ", "stereotypes", result); appendMap(classBean.getAttributesTagValues(), " ", "attributes.tagvalues", result); appendSet(classBean.getAttributesStereotypes(), " ", "attributes.stereotypes", result); @@ -166,39 +142,16 @@ public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { if (dryRun) { getLog().info("\n\nDryRun mode\ncontent:\n\n" + result.toString() + "\n\n"); + } else { getLog().info("Generate to: " + outputFile); - Writer writer = Files.newWriter(outputFile, StandardCharsets.UTF_8); - try { - - IOUtils.write(result.toString(), writer); - writer.close(); - - } finally { - IOUtils.closeQuietly(writer); - } + Files.write(result.toString(), outputFile, Charset.forName(encoding)); } } - protected void appendMap(Map<String, String> map, String prefix, String name, StringBuilder result) { - if (!map.isEmpty()) { - for (Map.Entry<String, String> entry : map.entrySet()) { - result.append(prefix).append(entry.getKey()).append(" ").append(entry.getValue()).append(eol); - } - } - } - - protected void appendSet(Set<String> set, String prefix, String name, StringBuilder result) { - if (!set.isEmpty()) { - for (String stereotype : set) { - result.append(prefix).append(stereotype).append(eol); - } - } - } - @Override public MavenProject getProject() { return project; @@ -219,220 +172,20 @@ public class TransformFlatPropertiesToCompactMojo extends AbstractPlugin { this.verbose = verbose; } - public static class ModelBean extends ElementBean { - - Set<PackageBean> packages = new TreeSet<>(); - Set<ClassBean> classes = new TreeSet<>(); - - public ModelBean(String name) { - super(name); - } - - @Override - public boolean isEmpty() { - return super.isEmpty() && classes.isEmpty() && packages.isEmpty(); - } - - public PackageBean getOrCreatePackage(final String packageName) { - - PackageBean result = null; - for (PackageBean packageBean : packages) { - if (packageName.equals(packageBean.name)) { - result = packageBean; - break; - } - } - if (result == null) { - result = new PackageBean(packageName); - packages.add(result); - } - return result; - } - - public ClassBean getOrCreateClass(final String className) { - - ClassBean result = null; - for (ClassBean packageBean : classes) { - if (className.equals(packageBean.name)) { - result = packageBean; - break; - } - } - if (result == null) { - result = new ClassBean(className); - classes.add(result); + protected void appendMap(Map<String, String> map, String prefix, String name, StringBuilder result) { + if (!map.isEmpty()) { + for (Map.Entry<String, String> entry : map.entrySet()) { + result.append(prefix).append(entry.getKey()).append(" ").append(entry.getValue()).append(eol); } - return result; - } - - public AttributeBean getOrCreateClassAttribute(String className, String attributeName) { - ClassBean classBean = getOrCreateClass(className); - return classBean.getOrCreateAttribute(attributeName); - } - - public boolean withClasses() { - return !classes.isEmpty(); - } - - public boolean withPackages() { - return !packages.isEmpty(); - } - } - - public static class PackageBean extends ElementBean { - - public PackageBean(String name) { - super(name); } - } - public static class ClassBean extends ElementBean { - - Set<AttributeBean> attributes = new TreeSet<>(); - - public ClassBean(String name) { - super(name); - } - - @Override - public boolean isEmpty() { - return super.isEmpty() && attributes.isEmpty(); - } - - public Map<String, String> getAttributesTagValues() { - Map<String, String> attributesTagValues = new TreeMap<>(); - for (AttributeBean attributeBean : attributes) { - - for (Map.Entry<String, String> entry : attributeBean.tagValues.entrySet()) { - attributesTagValues.put(attributeBean.name + "." + entry.getKey(), entry.getValue()); - } - } - return attributesTagValues; - } - - public Set<String> getAttributesStereotypes() { - Set<String> attributesStereotypes = new TreeSet<>(); - for (AttributeBean attributeBean : attributes) { - - for (String entry : attributeBean.stereotypes) { - attributesStereotypes.add(attributeBean.name + "." + entry); - } - } - return attributesStereotypes; - } - - public AttributeBean getOrCreateAttribute(String attributeName) { - AttributeBean result = null; - for (AttributeBean attributeBean : attributes) { - if (attributeName.equals(attributeBean.name)) { - result = attributeBean; - break; - } - } - if (result == null) { - result = new AttributeBean(attributeName); - attributes.add(result); + protected void appendSet(Set<String> set, String prefix, String name, StringBuilder result) { + if (!set.isEmpty()) { + for (String stereotype : set) { + result.append(prefix).append(stereotype).append(eol); } - return result; - } - } - - public static class AttributeBean extends ElementBean { - - public AttributeBean(String name) { - super(name); } } - public static class ElementBean implements Comparable<ElementBean> { - final String name; - final Map<String, String> tagValues = new TreeMap<>(); - final Set<String> stereotypes = new TreeSet<>(); - - public ElementBean(String name) { - this.name = name; - } - - @Override - public int compareTo(ElementBean o) { - return name.compareTo(o.name); - } - - public <T extends TagValueAble & StereotypeAble> void load(T tag) { - this.tagValues.putAll(tag.getTagValues()); - this.stereotypes.addAll(tag.getStereotypes()); - } - - public boolean isEmpty() { - return tagValues.isEmpty() && stereotypes.isEmpty(); - } - } - - private static class ModelBeanBuilder implements ModelExtensionFileParserCallback { - - private final ModelExtensionFileParser parser; - private final ModelBean modelBean; - - public ModelBeanBuilder(String modelName) { - this.parser = ModelExtensionFileParserFactory.newFlatPaser(); - this.modelBean = new ModelBean(modelName); - } - - public ModelBean build() { - return modelBean; - } - - @Override - public boolean onModelTagValueFound(String tag, String value) { - modelBean.tagValues.put(tag, value); - return true; - } - - @Override - public boolean onModelStereotypeFound(String stereotype) { - modelBean.stereotypes.add(stereotype); - return true; - } - - @Override - public boolean onPackageTagValueFound(String packageName, String tag, String value) { - modelBean.getOrCreatePackage(packageName).tagValues.put(tag, value); - return true; - } - - @Override - public boolean onPackageStereotypeFound(String packageName, String stereotype) { - modelBean.getOrCreatePackage(packageName).stereotypes.add(stereotype); - return true; - } - - @Override - public boolean onClassTagValueFound(String className, String tag, String value) { - modelBean.getOrCreateClass(className).tagValues.put(tag, value); - return true; - } - - @Override - public boolean onClassStereotypeFound(String className, String stereotype) { - modelBean.getOrCreateClass(className).stereotypes.add(stereotype); - return true; - } - - @Override - public boolean onAttributeTagValueFound(String className, String attributeName, String tag, String value) { - modelBean.getOrCreateClassAttribute(className, attributeName).tagValues.put(tag, value); - return true; - } - - @Override - public boolean onAttributeStereotypeFound(String className, String attributeName, String stereotype) { - modelBean.getOrCreateClassAttribute(className, attributeName).stereotypes.add(stereotype); - return true; - } - - public void addFile(File inputFile) throws InvalidTagValueSyntaxException, InvalidStereotypeSyntaxException, IOException { - parser.parse(inputFile, this); - } - } } diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java new file mode 100644 index 0000000..815a068 --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/AttributeBean.java @@ -0,0 +1,13 @@ +package org.nuiton.eugene.plugin.modelextension; + +/** + * Created on 10/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class AttributeBean extends ElementBean { + + public AttributeBean(String name) { + super(name); + } +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java new file mode 100644 index 0000000..96de618 --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ClassBean.java @@ -0,0 +1,62 @@ +package org.nuiton.eugene.plugin.modelextension; + +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; + +/** + * Created on 10/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ClassBean extends ElementBean { + + protected final Set<AttributeBean> attributes; + + public ClassBean(String name) { + super(name); + this.attributes = new TreeSet<>(); + } + + public Set<AttributeBean> getAttributes() { + return attributes; + } + + public Map<String, String> getAttributesTagValues() { + Map<String, String> attributesTagValues = new TreeMap<>(); + for (AttributeBean attributeBean : attributes) { + + for (Map.Entry<String, String> entry : attributeBean.tagValues.entrySet()) { + attributesTagValues.put(attributeBean.name + "." + entry.getKey(), entry.getValue()); + } + } + return attributesTagValues; + } + + public Set<String> getAttributesStereotypes() { + Set<String> attributesStereotypes = new TreeSet<>(); + for (AttributeBean attributeBean : attributes) { + + for (String entry : attributeBean.stereotypes) { + attributesStereotypes.add(attributeBean.name + "." + entry); + } + } + return attributesStereotypes; + } + + public AttributeBean getOrCreateAttribute(String attributeName) { + AttributeBean result = null; + for (AttributeBean attributeBean : attributes) { + if (attributeName.equals(attributeBean.name)) { + result = attributeBean; + break; + } + } + if (result == null) { + result = new AttributeBean(attributeName); + attributes.add(result); + } + return result; + } +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java new file mode 100644 index 0000000..d9aa3c8 --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ElementBean.java @@ -0,0 +1,50 @@ +package org.nuiton.eugene.plugin.modelextension; + +import org.nuiton.eugene.models.stereotype.StereotypeAble; +import org.nuiton.eugene.models.tagvalue.TagValueAble; + +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.TreeSet; + +/** + * Created on 10/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ElementBean implements Comparable<ElementBean> { + + protected final String name; + protected final Map<String, String> tagValues; + protected final Set<String> stereotypes; + + public ElementBean(String name) { + this.name = name; + this.tagValues = new TreeMap<>(); + this.stereotypes = new TreeSet<>(); + } + + public String getName() { + return name; + } + + public Map<String, String> getTagValues() { + return tagValues; + } + + public Set<String> getStereotypes() { + return stereotypes; + } + + @Override + public int compareTo(ElementBean o) { + return name.compareTo(o.name); + } + + public <T extends TagValueAble & StereotypeAble> void load(T tag) { + this.tagValues.putAll(tag.getTagValues()); + this.stereotypes.addAll(tag.getStereotypes()); + } + +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java new file mode 100644 index 0000000..7c69772 --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBean.java @@ -0,0 +1,74 @@ +package org.nuiton.eugene.plugin.modelextension; + +import java.util.Set; +import java.util.TreeSet; + +/** + * Created on 10/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ModelBean extends ElementBean { + + protected final Set<PackageBean> packages; + protected final Set<ClassBean> classes; + + public ModelBean(String name) { + super(name); + this.packages = new TreeSet<>(); + this.classes = new TreeSet<>(); + } + + public Set<PackageBean> getPackages() { + return packages; + } + + public Set<ClassBean> getClasses() { + return classes; + } + + public PackageBean getOrCreatePackage(final String packageName) { + + PackageBean result = null; + for (PackageBean packageBean : packages) { + if (packageName.equals(packageBean.name)) { + result = packageBean; + break; + } + } + if (result == null) { + result = new PackageBean(packageName); + packages.add(result); + } + return result; + } + + public ClassBean getOrCreateClass(final String className) { + + ClassBean result = null; + for (ClassBean packageBean : classes) { + if (className.equals(packageBean.name)) { + result = packageBean; + break; + } + } + if (result == null) { + result = new ClassBean(className); + classes.add(result); + } + return result; + } + + public AttributeBean getOrCreateClassAttribute(String className, String attributeName) { + ClassBean classBean = getOrCreateClass(className); + return classBean.getOrCreateAttribute(attributeName); + } + + public boolean withClasses() { + return !classes.isEmpty(); + } + + public boolean withPackages() { + return !packages.isEmpty(); + } +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java new file mode 100644 index 0000000..cd2286b --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/ModelBeanBuilder.java @@ -0,0 +1,148 @@ +package org.nuiton.eugene.plugin.modelextension; + +import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParser; +import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParserCallback; +import org.nuiton.eugene.models.object.reader.extension.ModelExtensionFileParserFactory; +import org.nuiton.eugene.models.stereotype.InvalidStereotypeSyntaxException; +import org.nuiton.eugene.models.tagvalue.InvalidTagValueSyntaxException; + +import java.io.File; +import java.io.IOException; + +/** + * Created on 10/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ModelBeanBuilder implements ModelExtensionFileParserCallback { + + protected final ModelBean modelBean; + protected int modelStereotypeHits; + protected int modelTagValueHits; + protected int packageStereotypeHits; + protected int packageTagValueHits; + protected int classStereotypeHits; + protected int classTagValueHits; + protected int classAttributeStereotypeHits; + protected int classAttributeTagValueHits; + protected boolean strictLoading; + + public ModelBeanBuilder(boolean strictLoading, String modelName) { + this.modelBean = new ModelBean(modelName); + } + + public ModelBean build() { + return modelBean; + } + + public int getStereotypeHits() { + return modelStereotypeHits + packageStereotypeHits + classStereotypeHits + classAttributeStereotypeHits; + } + + public int getTagValueHits() { + return modelTagValueHits + packageTagValueHits + classTagValueHits + classAttributeTagValueHits; + } + + public int getModelStereotypeHits() { + return modelStereotypeHits; + } + + public int getModelTagValueHits() { + return modelTagValueHits; + } + + public int getPackageStereotypeHits() { + return packageStereotypeHits; + } + + public int getPackageTagValueHits() { + return packageTagValueHits; + } + + public int getClassStereotypeHits() { + return classStereotypeHits; + } + + public int getClassTagValueHits() { + return classTagValueHits; + } + + public int getClassAttributeStereotypeHits() { + return classAttributeStereotypeHits; + } + + public int getClassAttributeTagValueHits() { + return classAttributeTagValueHits; + } + + @Override + public boolean onModelTagValueFound(String tag, String value) { + addTagValue(modelBean, tag, value); + modelTagValueHits++; + return true; + } + + @Override + public boolean onModelStereotypeFound(String stereotype) { + addStereotype(modelBean, stereotype); + modelStereotypeHits++; + return true; + } + + @Override + public boolean onPackageTagValueFound(String packageName, String tag, String value) { + addTagValue(modelBean.getOrCreatePackage(packageName), tag, value); + packageTagValueHits++; + return true; + } + + @Override + public boolean onPackageStereotypeFound(String packageName, String stereotype) { + addStereotype(modelBean.getOrCreatePackage(packageName), stereotype); + packageStereotypeHits++; + return true; + } + + @Override + public boolean onClassTagValueFound(String className, String tag, String value) { + addTagValue(modelBean.getOrCreateClass(className), tag, value); + classTagValueHits++; + return true; + } + + @Override + public boolean onClassStereotypeFound(String className, String stereotype) { + addStereotype(modelBean.getOrCreateClass(className), stereotype); + classStereotypeHits++; + return true; + } + + @Override + public boolean onAttributeTagValueFound(String className, String attributeName, String tag, String value) { + addTagValue(modelBean.getOrCreateClassAttribute(className, attributeName), tag, value); + classAttributeTagValueHits++; + return true; + } + + @Override + public boolean onAttributeStereotypeFound(String className, String attributeName, String stereotype) { + addStereotype(modelBean.getOrCreateClassAttribute(className, attributeName), stereotype); + classAttributeStereotypeHits++; + return true; + } + + public void addFile(File inputFile) throws InvalidTagValueSyntaxException, InvalidStereotypeSyntaxException, IOException { + + ModelExtensionFileParser parser = ModelExtensionFileParserFactory.newParser(strictLoading, inputFile); + parser.parse(inputFile, this); + + } + + protected void addTagValue(ElementBean elementBean, String tag, String value) { + elementBean.getTagValues().put(tag, value); + } + + protected void addStereotype(ElementBean elementBean, String stereotype) { + elementBean.getStereotypes().add(stereotype); + } +} diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java new file mode 100644 index 0000000..64c5af8 --- /dev/null +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/modelextension/PackageBean.java @@ -0,0 +1,14 @@ +package org.nuiton.eugene.plugin.modelextension; + +/** + * Created on 10/09/16. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class PackageBean extends ElementBean { + + public PackageBean(String name) { + super(name); + } + +} -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.