This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository eugene. See http://git.nuiton.org/eugene.git commit c4a1b3fdf2d0555c012f303c8d811029dd6a9b4c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Aug 15 17:04:29 2015 +0200 Init stereotypeDefinitionProvieder at mojo init --- .../org/nuiton/eugene/plugin/GenerateMojo.java | 11 +++- ...ereotypeDefinitionProviderManagerExtension.java | 63 ++++++++++++++++++++++ .../stereotype/StereotypeDefinitionProviders.java | 8 +-- 3 files changed, 76 insertions(+), 6 deletions(-) diff --git a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java index 3e0e6d2..e5981de 100644 --- a/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java +++ b/eugene-maven-plugin/src/main/java/org/nuiton/eugene/plugin/GenerateMojo.java @@ -39,7 +39,9 @@ import org.nuiton.eugene.ModelReader; import org.nuiton.eugene.Template; import org.nuiton.eugene.models.Model; import org.nuiton.eugene.models.object.reader.InvalidModelPropertiesException; +import org.nuiton.eugene.models.stereotype.AggregateStereotypeDefinitionProvider; import org.nuiton.eugene.models.stereotype.StereotypeDefinitionProvider; +import org.nuiton.eugene.models.stereotype.StereotypeDefinitionProviderManagerExtension; import org.nuiton.eugene.models.stereotype.StereotypeDefinitionProviders; import org.nuiton.eugene.models.tagvalue.AggregateTagValueDefinitionProvider; import org.nuiton.eugene.models.tagvalue.TagValueDefinitionProvider; @@ -569,6 +571,7 @@ public class GenerateMojo extends AbstractPlugin implements ChainedFileWriterCon getLog().info("Process phase [generator]"); AggregateTagValueDefinitionProvider tagValueDefinitionProvider = getTagValueDefinitionProvider(); + AggregateStereotypeDefinitionProvider stereotypeDefinitionProvider = getStereotypeDefinitionProvider(); for (ChainedFileWriterToMemoryModel entry : models) { Model model = entry.getModel(); @@ -577,6 +580,10 @@ public class GenerateMojo extends AbstractPlugin implements ChainedFileWriterCon TagValueDefinitionProviderManagerExtension extension = model.getExtension(TagValueDefinitionProviderManagerExtension.OBJECTMODEL_EXTENSION, TagValueDefinitionProviderManagerExtension.class); extension.setAggregateTagValueDefinitionProvider(tagValueDefinitionProvider); + // init stereotype extension + StereotypeDefinitionProviderManagerExtension stereotypeExtension = model.getExtension(StereotypeDefinitionProviderManagerExtension.OBJECTMODEL_EXTENSION, StereotypeDefinitionProviderManagerExtension.class); + stereotypeExtension.setAggregateStereotypeDefinitionProvider(stereotypeDefinitionProvider); + Long lastModified = entry.getLastModifiedSource(); File outputDir = entry.getOutputDirectory(); @@ -958,9 +965,9 @@ public class GenerateMojo extends AbstractPlugin implements ChainedFileWriterCon } - protected StereotypeDefinitionProvider getStereotypeDefinitionProvider() throws MojoExecutionException { + protected AggregateStereotypeDefinitionProvider getStereotypeDefinitionProvider() throws MojoExecutionException { - StereotypeDefinitionProvider provider; + AggregateStereotypeDefinitionProvider provider; if (stereotypeDefinitionProviders == null || stereotypeDefinitionProviders.isEmpty() || diff --git a/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviderManagerExtension.java b/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviderManagerExtension.java new file mode 100644 index 0000000..e4f899b --- /dev/null +++ b/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviderManagerExtension.java @@ -0,0 +1,63 @@ +package org.nuiton.eugene.models.stereotype; + +/* + * #%L + * EUGene :: EUGene + * %% + * Copyright (C) 2004 - 2014 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 com.google.common.base.Preconditions; + +/** + * Created on 6/18/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 2.11 + */ +public class StereotypeDefinitionProviderManagerExtension { + + /** + * Extension static used to identify this extension in ObjectModel. + */ + public static final String OBJECTMODEL_EXTENSION = "stereotypeDefinitionProviders"; + + protected AggregateStereotypeDefinitionProvider aggregateStereotypeDefinitionProvider; + + public void setAggregateStereotypeDefinitionProvider(AggregateStereotypeDefinitionProvider aggregateStereotypeDefinitionProvider) { + this.aggregateStereotypeDefinitionProvider = aggregateStereotypeDefinitionProvider; + } + + public <T extends StereotypeDefinitionProvider> T getStereotypeDefinitionProvider(Class<T> providerType) { + + Preconditions.checkState(aggregateStereotypeDefinitionProvider != null, "No aggregateStereotypeDefinitionProvider assigned"); + + StereotypeDefinitionProvider result = null; + for (StereotypeDefinitionProvider stereotypeDefinitionProvider : aggregateStereotypeDefinitionProvider) { + if (providerType.equals(stereotypeDefinitionProvider.getClass())) { + result = stereotypeDefinitionProvider; + break; + } + } + + Preconditions.checkState(result != null, "No stereotypeDefinitionProvider of this type: " + providerType.getName()); + return (T) result; + + } + +} diff --git a/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviders.java b/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviders.java index 5df1e7c..3d13f8a 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviders.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/stereotype/StereotypeDefinitionProviders.java @@ -43,7 +43,7 @@ public class StereotypeDefinitionProviders { * @param verbose verbose flag * @return the aggregate provider of stereotype definitions detected in the class-path */ - public static StereotypeDefinitionProvider newProvider(ClassLoader loader, boolean verbose) { + public static AggregateStereotypeDefinitionProvider newProvider(ClassLoader loader, boolean verbose) { if (loader == null) { @@ -51,7 +51,7 @@ public class StereotypeDefinitionProviders { loader = Thread.currentThread().getContextClassLoader(); } - StereotypeDefinitionProvider store = new AggregateStereotypeDefinitionProvider(loader); + AggregateStereotypeDefinitionProvider store = new AggregateStereotypeDefinitionProvider(loader); store.setVerbose(verbose || log.isDebugEnabled()); try { store.init(); @@ -68,9 +68,9 @@ public class StereotypeDefinitionProviders { * @param verbose verbose flag * @return the aggregate provider of stereotype definitions detected in the class-path */ - public static StereotypeDefinitionProvider newProvider(Iterable<StereotypeDefinitionProvider> providers, boolean verbose) { + public static AggregateStereotypeDefinitionProvider newProvider(Iterable<StereotypeDefinitionProvider> providers, boolean verbose) { - StereotypeDefinitionProvider store = new AggregateStereotypeDefinitionProvider(providers); + AggregateStereotypeDefinitionProvider store = new AggregateStereotypeDefinitionProvider(providers); store.setVerbose(verbose || log.isDebugEnabled()); try { store.init(); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.