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 bce80881b094b16292c81de288f4cfa84b376ac7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Sep 10 13:08:13 2016 +0200 Review parser api introducing strictLoading to avoid exception for people with no fear... --- .../extension/CompactModelExtensionFileParser.java | 9 ++++++--- .../reader/extension/FlatModelExtensionFileParser.java | 8 +++++++- .../object/reader/extension/LoadModelExtension.java | 6 +++--- .../extension/ModelExtensionFileParserFactory.java | 17 ++++++++--------- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java index 3f18ac4..bdaa6ba 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/CompactModelExtensionFileParser.java @@ -21,12 +21,18 @@ public class CompactModelExtensionFileParser implements ModelExtensionFileParser /** Logger. */ private static final Log log = LogFactory.getLog(CompactModelExtensionFileParser.class); + public CompactModelExtensionFileParser(boolean strictLoading) { + this.strictLoading = strictLoading; + } + enum Scope { MODEL, PACKAGE, CLASS } + protected final boolean strictLoading; + protected Scope scope; protected String name; @@ -76,7 +82,6 @@ public class CompactModelExtensionFileParser implements ModelExtensionFileParser // stereotype de package callback.onModelStereotypeFound(line); - } else { // tag value de package @@ -143,8 +148,6 @@ public class CompactModelExtensionFileParser implements ModelExtensionFileParser // tag value de classe callback.onClassTagValueFound(name, attributeOrTagValue, line.substring(index + 1)); - - } else { // tag value d'attribut callback.onAttributeTagValueFound(name, attributeOrTagValue.substring(0, attributeIndex), attributeOrTagValue.substring(attributeIndex + 1), line.substring(index + 1)); diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java index 0f19652..d440782 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/FlatModelExtensionFileParser.java @@ -42,6 +42,12 @@ public class FlatModelExtensionFileParser implements ModelExtensionFileParser { /** Logger. */ private static final Log log = LogFactory.getLog(FlatModelExtensionFileParser.class); + protected final boolean strictLoading; + + public FlatModelExtensionFileParser(boolean strictLoading) { + this.strictLoading = strictLoading; + } + @Override public void parse(File file, ModelExtensionFileParserCallback callback) throws IOException, InvalidStereotypeSyntaxException, InvalidTagValueSyntaxException { @@ -63,7 +69,7 @@ public class FlatModelExtensionFileParser implements ModelExtensionFileParser { } - if (!safe) { + if (strictLoading &&!safe) { String errorMessage = "There is some tag value(s) or stereotype(s) failed to be imported from " + file; throw new InvalidModelPropertiesException(errorMessage); diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java index 8b9d72b..2b95304 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/LoadModelExtension.java @@ -44,7 +44,7 @@ public class LoadModelExtension<M extends ObjectModel> implements ModelExtension protected final StereotypeDefinitionProvider stereotypeDefinitionProvider; public static <M extends ObjectModel> void loadForFlatModel(boolean verbose, boolean strictLoading, M model, File modelExtension) throws IOException { - FlatModelExtensionFileParser parser = new FlatModelExtensionFileParser(); + FlatModelExtensionFileParser parser = new FlatModelExtensionFileParser(strictLoading); try { new LoadModelExtension<>(verbose, strictLoading, model).load(modelExtension); } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { @@ -55,7 +55,7 @@ public class LoadModelExtension<M extends ObjectModel> implements ModelExtension } public static <M extends ObjectModel> void loadForCompactModel(boolean verbose, boolean strictLoading, M model, File modelExtension) throws IOException { - CompactModelExtensionFileParser parser = new CompactModelExtensionFileParser(); + CompactModelExtensionFileParser parser = new CompactModelExtensionFileParser(strictLoading); try { new LoadModelExtension<>(verbose, strictLoading, model).load(modelExtension); } catch (InvalidTagValueSyntaxException | InvalidStereotypeSyntaxException e) { @@ -75,7 +75,7 @@ public class LoadModelExtension<M extends ObjectModel> implements ModelExtension public void load(File modelExtension) throws IOException, InvalidTagValueSyntaxException, InvalidStereotypeSyntaxException { - ModelExtensionFileParser parser = ModelExtensionFileParserFactory.newParser(modelExtension); + ModelExtensionFileParser parser = ModelExtensionFileParserFactory.newParser(strictLoading, modelExtension); parser.parse(modelExtension, this); } diff --git a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java index 88e1091..89caf3e 100644 --- a/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java +++ b/eugene/src/main/java/org/nuiton/eugene/models/object/reader/extension/ModelExtensionFileParserFactory.java @@ -11,21 +11,20 @@ import java.io.File; */ public class ModelExtensionFileParserFactory { - public static FlatModelExtensionFileParser newFlatPaser() { - return new FlatModelExtensionFileParser(); + public static FlatModelExtensionFileParser newFlatPaser(boolean strictLoading) { + return new FlatModelExtensionFileParser(strictLoading); } - public static CompactModelExtensionFileParser newCompactPaser() { - return new CompactModelExtensionFileParser(); + public static CompactModelExtensionFileParser newCompactPaser(boolean strictLoading) { + return new CompactModelExtensionFileParser(strictLoading); } - - public static ModelExtensionFileParser newParser(File file) { + public static ModelExtensionFileParser newParser(boolean strictLoading, File file) { ModelExtensionFileParser parser; if (file.getName().endsWith(".properties")) { - parser = new FlatModelExtensionFileParser(); - } else if (file.getName().endsWith(".model-ex")) { - parser = new CompactModelExtensionFileParser(); + parser = new FlatModelExtensionFileParser(strictLoading); + } else if (file.getName().endsWith(".objectmodel-ext")) { + parser = new CompactModelExtensionFileParser(strictLoading); } else { throw new NotImplementedException("can't find parser for file: " + file); } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.