r1344 - in trunk: eugene/src/main/java/org/nuiton/eugene eugene/src/main/java/org/nuiton/eugene/metas eugene/src/main/java/org/nuiton/eugene/metas/matcher eugene/src/main/java/org/nuiton/eugene/models/object eugene/src/main/java/org/nuiton/eugene/models/object/reader eugene/src/test/java/org/nuiton/eugene eugene-java-templates/src/main/java/org/nuiton/eugene/java eugene-java-templates/src/test/java/org/nuiton/eugene/java
Author: tchemit Date: 2014-04-26 20:56:51 +0200 (Sat, 26 Apr 2014) New Revision: 1344 Url: http://forge.nuiton.org/projects/eugene/repository/revisions/1344 Log: refs #3175 (add better tagvalue validation) Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/EugeneModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -12,7 +12,7 @@ public class EugeneModelPropertiesProvider extends ModelPropertiesProvider { @Override - public void init() throws IllegalAccessException { + public void initStores() throws IllegalAccessException { scanStereotypeClass(EugeneStereoTypes.class); scanTagValueClass(EugeneTagValues.class); } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/AggregateModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -30,7 +30,7 @@ } @Override - public void init() throws Exception { + public void initStores() throws Exception { if (providers == null) { Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -0,0 +1,11 @@ +package org.nuiton.eugene.metas; + +/** + * Created on 4/26/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.9 + */ +public class MismatchTagValueTargetException extends Exception { + private static final long serialVersionUID = 1L; +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/MismatchTagValueTargetException.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/ModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -2,6 +2,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.metas.matcher.DefaultTagValueMatcher; +import org.nuiton.eugene.metas.matcher.PrefixTagNameMatchTagValueMatcher; +import org.nuiton.eugene.metas.matcher.TagValueMatcher; import java.lang.reflect.Field; import java.util.Arrays; @@ -30,6 +33,8 @@ protected Set<String> deprecatedStereotypes; + protected Set<TagValueMatcher> tagValueMatchers; + protected boolean verbose; protected ModelPropertiesProvider() { @@ -37,6 +42,7 @@ tagValueStore = new TreeMap<String, TagValueDefinition>(); deprecatedTagValues = new HashSet<String>(); deprecatedStereotypes = new HashSet<String>(); + tagValueMatchers = new HashSet<TagValueMatcher>(); } public boolean isVerbose() { @@ -47,8 +53,18 @@ this.verbose = verbose; } - public abstract void init() throws Exception; + public void init() throws Exception { + initStores(); + initValidators(); + } + protected abstract void initStores() throws Exception; + + protected void initValidators() { + tagValueMatchers.add(new DefaultTagValueMatcher(this)); + tagValueMatchers.add(new PrefixTagNameMatchTagValueMatcher(this)); + } + protected void scanStereotypeClass(Class<?> holder) throws IllegalAccessException { if (isVerbose()) { log.info("Will scan " + holder.getName() + " to search some stereotype definitions..."); @@ -143,25 +159,25 @@ return b; } - public boolean acceptTagValue(String tagValueName, Class<?> type) { - if (!containsTagValue(tagValueName)) { + public void acceptTagValue(String tagValueName, Class<?> type) throws TagValueNotFoundException, MismatchTagValueTargetException { - // unknown - return false; + TagValueDefinition def = null; + for (TagValueMatcher tagValueMatcher : tagValueMatchers) { + def = tagValueMatcher.match(tagValueName, type); + if (def != null) { + break; + } } - Class<?>[] tagValueTarget = getTagValueTarget(tagValueName); + if (def == null) { + throw new TagValueNotFoundException(); + } - for (Class<?> target : tagValueTarget) { - if (target.equals(type) || target.isAssignableFrom(type)) { + boolean valid = isTargetValid(def, type); - // found one accepting target - return true; - } + if (!valid) { + throw new MismatchTagValueTargetException(); } - - // no target found - return false; } public boolean acceptStereotype(String stereotypeName, Class<?> type) { @@ -193,4 +209,18 @@ boolean deprecated = deprecatedStereotypes.contains(stereotypeName); return deprecated; } + + protected boolean isTargetValid(TagValueDefinition def, Class<?> type) { + + Class<?>[] tagValueTarget = def.target(); + + for (Class<?> target : tagValueTarget) { + if (target.equals(type) || target.isAssignableFrom(type)) { + + // found one accepting target + return true; + } + } + return false; + } } Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/StereotypeAble.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -1,7 +1,6 @@ package org.nuiton.eugene.metas; import java.util.Collection; -import java.util.Map; /** * Created on 4/26/14. Modified: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueDefinition.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -1,5 +1,8 @@ package org.nuiton.eugene.metas; +import org.nuiton.eugene.metas.matcher.DefaultTagValueMatcher; +import org.nuiton.eugene.metas.matcher.TagValueMatcher; + import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -38,4 +41,6 @@ * @since 2.3.1 */ String documentation(); + + Class<? extends TagValueMatcher> validatorClass() default DefaultTagValueMatcher.class; } Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -0,0 +1,11 @@ +package org.nuiton.eugene.metas; + +/** + * Created on 4/26/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.9 + */ +public class TagValueNotFoundException extends Exception { + private static final long serialVersionUID = 1L; +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/TagValueNotFoundException.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -0,0 +1,38 @@ +package org.nuiton.eugene.metas.matcher; + +import com.google.common.collect.ImmutableMap; +import org.nuiton.eugene.metas.ModelPropertiesProvider; +import org.nuiton.eugene.metas.TagValueDefinition; + +import java.util.Map; +import java.util.TreeMap; + +/** + * Created on 4/26/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.9 + */ +public abstract class AbstractTagValueMatcher implements TagValueMatcher { + + protected final ModelPropertiesProvider modelPropertiesProvider; + + protected final Map<String, TagValueDefinition> tagValueStore; + + public AbstractTagValueMatcher(ModelPropertiesProvider modelPropertiesProvider) { + this.modelPropertiesProvider = modelPropertiesProvider; + Map<String, TagValueDefinition> tagValues = new TreeMap<String, TagValueDefinition>(); + for (Map.Entry<String, TagValueDefinition> entry : modelPropertiesProvider.getTagValueStore().entrySet()) { + if (getClass().equals(entry.getValue().validatorClass())) { + tagValues.put(entry.getKey(), entry.getValue()); + } + } + + this.tagValueStore = ImmutableMap.<String, TagValueDefinition>builder().putAll(tagValues).build(); + } + + protected Map<String, TagValueDefinition> getTagValueStore() { + return tagValueStore; + } + +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/AbstractTagValueMatcher.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -0,0 +1,33 @@ +package org.nuiton.eugene.metas.matcher; + +import org.nuiton.eugene.metas.ModelPropertiesProvider; +import org.nuiton.eugene.metas.TagValueDefinition; + +/** + * Created on 4/26/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.9 + */ +public class DefaultTagValueMatcher extends AbstractTagValueMatcher { + + public DefaultTagValueMatcher(ModelPropertiesProvider modelPropertiesProvider) { + super(modelPropertiesProvider); + } + + @Override + public TagValueDefinition match(String tagValueName, Class<?> type) { + + TagValueDefinition tagValueDefinition = null; + + for (String name : getTagValueStore().keySet()) { + if (tagValueName.equals(name)) { + tagValueDefinition = getTagValueStore().get(name); + break; + } + } + + return tagValueDefinition; + } + +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/DefaultTagValueMatcher.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -0,0 +1,34 @@ +package org.nuiton.eugene.metas.matcher; + +import org.nuiton.eugene.metas.ModelPropertiesProvider; +import org.nuiton.eugene.metas.TagValueDefinition; + +/** + * Created on 4/26/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.9 + */ +public class PrefixTagNameMatchTagValueMatcher extends AbstractTagValueMatcher { + + public PrefixTagNameMatchTagValueMatcher(ModelPropertiesProvider modelPropertiesProvider) { + super(modelPropertiesProvider); + } + + @Override + public TagValueDefinition match(String tagValueName, Class<?> type) { + + TagValueDefinition tagValueDefinition = null; + + for (String name : getTagValueStore().keySet()) { + if (tagValueName.startsWith(name + ".")) { + tagValueDefinition = getTagValueStore().get(name); + break; + } + } + + return tagValueDefinition; + } + + +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/PrefixTagNameMatchTagValueMatcher.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -0,0 +1,16 @@ +package org.nuiton.eugene.metas.matcher; + +import org.nuiton.eugene.metas.TagValueDefinition; + +/** + * To validate a Tag value. + * <p/> + * Created on 4/26/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 2.9 + */ +public interface TagValueMatcher { + + TagValueDefinition match(String tagValueName, Class<?> type); +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/metas/matcher/TagValueMatcher.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/ObjectModelReader.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -32,7 +32,9 @@ import org.nuiton.eugene.EugeneTagValues; import org.nuiton.eugene.ModelHelper; import org.nuiton.eugene.ModelReader; +import org.nuiton.eugene.metas.MismatchTagValueTargetException; import org.nuiton.eugene.metas.ModelPropertiesProviders; +import org.nuiton.eugene.metas.TagValueNotFoundException; import org.nuiton.eugene.models.object.reader.XmlObjectModelReader; import org.nuiton.eugene.models.object.xml.DigesterObjectModelRuleSet; import org.nuiton.eugene.models.object.xml.ObjectModelAssociationClassImpl; @@ -303,21 +305,18 @@ } String tag = matcher.group(2); - boolean safe = modelPropertiesProvider.containsTagValue(tag); + boolean safe = false; - if (!safe) { + try { + modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class); + safe = true; + } catch (TagValueNotFoundException e) { if (log.isWarnEnabled()) { log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unknown."); } - } else { - safe = modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class); - - if (!safe) { - - // the tag value can not be apply of model - if (log.isWarnEnabled()) { - log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model."); - } + } catch (MismatchTagValueTargetException e) { + if (log.isWarnEnabled()) { + log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model."); } } @@ -466,24 +465,18 @@ + " type:" + type + " tag:" + tag); } - boolean safe = modelPropertiesProvider.containsTagValue(tag); + boolean safe = false; - if (!safe) { - - // unknown tag value + try { + modelPropertiesProvider.acceptTagValue(tag, targetType); + safe = true; + } catch (TagValueNotFoundException e) { if (log.isWarnEnabled()) { log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unknown."); } - } else { - - safe = modelPropertiesProvider.acceptTagValue(tag, targetType); - - if (!safe) { - - // the tag value can not be apply of model - if (log.isWarnEnabled()) { - log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'."); - } + } catch (MismatchTagValueTargetException e) { + if (log.isWarnEnabled()) { + log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'."); } } @@ -516,7 +509,7 @@ + ", value:" + value + " to element:" + element); } - ((ObjectModelElementImpl) element).addTagValue(tag, value); + element.addTagValue(tag, value); } if (isVerbose()) { Modified: trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/main/java/org/nuiton/eugene/models/object/reader/AbstractObjectModelReader.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -30,7 +30,9 @@ import org.nuiton.eugene.EugeneTagValues; import org.nuiton.eugene.ModelHelper; import org.nuiton.eugene.ModelReader; +import org.nuiton.eugene.metas.MismatchTagValueTargetException; import org.nuiton.eugene.metas.ModelPropertiesProviders; +import org.nuiton.eugene.metas.TagValueNotFoundException; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAssociationClass; import org.nuiton.eugene.models.object.ObjectModelAttribute; @@ -287,21 +289,18 @@ } String tag = matcher.group(2); - boolean safe = modelPropertiesProvider.containsTagValue(tag); + boolean safe = false; - if (!safe) { + try { + modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class); + safe = true; + } catch (TagValueNotFoundException e) { if (log.isWarnEnabled()) { log.warn("Invalid model tag value [" + key + "] : the tagvalue '" + tag + "' is unknown."); } - } else { - safe = modelPropertiesProvider.acceptTagValue(tag, ObjectModel.class); - - if (!safe) { - - // the tag value can not be apply of model - if (log.isWarnEnabled()) { - log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model."); - } + } catch (MismatchTagValueTargetException e) { + if (log.isWarnEnabled()) { + log.warn("Invalid model tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the model."); } } @@ -472,24 +471,18 @@ + " type:" + type + " tag:" + tag); } - boolean safe = modelPropertiesProvider.containsTagValue(tag); + boolean safe = false; - if (!safe) { - - // unknown tag value + try { + modelPropertiesProvider.acceptTagValue(tag, targetType); + safe = true; + } catch (TagValueNotFoundException e) { if (log.isWarnEnabled()) { log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' is unknown."); } - } else { - - safe = modelPropertiesProvider.acceptTagValue(tag, targetType); - - if (!safe) { - - // the tag value can not be apply of model - if (log.isWarnEnabled()) { - log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'."); - } + } catch (MismatchTagValueTargetException e) { + if (log.isWarnEnabled()) { + log.warn("Invalid tag value [" + key + "] : this tagvalue '" + tag + "' can not be apply on the given type '" + target + "'."); } } @@ -534,7 +527,7 @@ + ", value:" + value + " to element:" + element); } - ((ObjectModelElementImpl) element).addTagValue(tag, value); + element.addTagValue(tag, value); } if (isVerbose()) { Modified: trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene/src/test/java/org/nuiton/eugene/EugeneModelPropertiesProviderTest.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -27,7 +27,9 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.nuiton.eugene.metas.MismatchTagValueTargetException; import org.nuiton.eugene.metas.ModelPropertiesProvider; +import org.nuiton.eugene.metas.TagValueNotFoundException; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; @@ -127,8 +129,14 @@ protected void acceptTagValue(String name, boolean expected, Class<?>... types) { for (Class<?> type : types) { - boolean actual = provider.acceptTagValue(name, type); - Assert.assertEquals(expected, actual); + try { + provider.acceptTagValue(name, type); + Assert.assertTrue(expected); + } catch (TagValueNotFoundException e) { + Assert.assertFalse(expected); + } catch (MismatchTagValueTargetException e) { + Assert.assertFalse(expected); + } } } Modified: trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java =================================================================== --- trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene-java-templates/src/main/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProvider.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -36,7 +36,7 @@ public class JavaTemplatesModelPropertiesProvider extends ModelPropertiesProvider { @Override - public void init() throws IllegalAccessException { + public void initStores() throws IllegalAccessException { scanStereotypeClass(JavaTemplatesStereoTypes.class); scanTagValueClass(JavaTemplatesTagValues.class); } Modified: trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java =================================================================== --- trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 17:42:25 UTC (rev 1343) +++ trunk/eugene-java-templates/src/test/java/org/nuiton/eugene/java/JavaTemplatesModelPropertiesProviderTest.java 2014-04-26 18:56:51 UTC (rev 1344) @@ -27,7 +27,9 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.nuiton.eugene.metas.MismatchTagValueTargetException; import org.nuiton.eugene.metas.ModelPropertiesProvider; +import org.nuiton.eugene.metas.TagValueNotFoundException; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; @@ -120,8 +122,14 @@ protected void acceptTagValue(String name, boolean expected, Class<?>... types) { for (Class<?> type : types) { - boolean actual = provider.acceptTagValue(name, type); - Assert.assertEquals(expected, actual); + try { + provider.acceptTagValue(name, type); + Assert.assertTrue(expected); + } catch (TagValueNotFoundException e) { + Assert.assertFalse(expected); + } catch (MismatchTagValueTargetException e) { + Assert.assertFalse(expected); + } } }
participants (1)
-
tchemit@users.nuiton.org