http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java index 1bd5733..8d27f74 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/annotprop/NamedFacetOnMemberFactory.java @@ -20,17 +20,24 @@ package org.apache.isis.core.metamodel.facets.members.named.annotprop; import java.util.Properties; - import org.apache.isis.applib.annotation.Named; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.all.named.NamedFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; + +public class NamedFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Named.class); -public class NamedFacetOnMemberFactory extends FacetFactoryAbstract implements ContributeeMemberFacetFactory { public NamedFacetOnMemberFactory() { super(FeatureType.MEMBERS); @@ -40,7 +47,7 @@ public class NamedFacetOnMemberFactory extends FacetFactoryAbstract implements C public void process(final ProcessMethodContext processMethodContext) { NamedFacet namedFacet = createFromMetadataPropertiesIfPossible(processMethodContext); if(namedFacet == null) { - namedFacet = createFromAnnotationIfPossible(processMethodContext); + namedFacet = validator.invalidIfPresent(createFromAnnotationIfPossible(processMethodContext)); } // no-op if null FacetUtil.addFacet(namedFacet); @@ -66,4 +73,15 @@ public class NamedFacetOnMemberFactory extends FacetFactoryAbstract implements C final Named annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Named.class); return annotation != null ? new NamedFacetOnMemberAnnotation(annotation.value(), processMethodContext.getFacetHolder()) : null; } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + }
http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java index 4a953c5..6d5a8de 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/named/staticmethod/NamedFacetStaticMethodFactory.java @@ -20,28 +20,33 @@ package org.apache.isis.core.metamodel.facets.members.named.staticmethod; import java.lang.reflect.Method; - +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.commons.lang.MethodExtensions; import org.apache.isis.core.commons.lang.StringExtensions; import org.apache.isis.core.metamodel.exceptions.MetaModelException; import org.apache.isis.core.metamodel.facetapi.Facet; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; -import org.apache.isis.core.metamodel.facets.all.named.NamedFacet; -import org.apache.isis.core.metamodel.methodutils.MethodScope; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.MethodFinderUtils; import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.MethodPrefixConstants; +import org.apache.isis.core.metamodel.facets.all.named.NamedFacet; +import org.apache.isis.core.metamodel.methodutils.MethodScope; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedMethodPrefix; /** * Sets up a {@link NamedFacet} if a {@value MethodPrefixConstants#NAME_PREFIX} * -prefixed method is present. */ -public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactoryAbstract { +public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { private static final String[] PREFIXES = { MethodPrefixConstants.NAME_PREFIX }; + private final MetaModelValidatorForDeprecatedMethodPrefix validator = new MetaModelValidatorForDeprecatedMethodPrefix(PREFIXES[0]); + /** * Note that the {@link Facet}s registered are the generic ones from * noa-architecture (where they exist) @@ -62,7 +67,7 @@ public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactory } - public static void attachNamedFacetIfNamedMethodIsFound(final ProcessMethodContext processMethodContext) { + public void attachNamedFacetIfNamedMethodIsFound(final ProcessMethodContext processMethodContext) { final Method method = processMethodContext.getMethod(); final String capitalizedName = StringExtensions.asJavaBaseNameStripAccessorPrefixIfRequired(method.getName()); @@ -77,7 +82,7 @@ public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactory final String name = invokeNameMethod(nameMethod); final FacetHolder facetHolder = processMethodContext.getFacetHolder(); - FacetUtil.addFacet(new NamedFacetStaticMethod(name, nameMethod, facetHolder)); + validator.addFacet(new NamedFacetStaticMethod(name, nameMethod, facetHolder)); } private static String invokeNameMethod(final Method nameMethod) { @@ -93,4 +98,16 @@ public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactory return name; } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java index f4633d9..9164319 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/render/annotprop/RenderFacetOrResolveFactory.java @@ -20,18 +20,26 @@ package org.apache.isis.core.metamodel.facets.members.render.annotprop; import java.util.Properties; - import org.apache.isis.applib.annotation.Render; +import org.apache.isis.applib.annotation.Resolve; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.members.render.RenderFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; public class RenderFacetOrResolveFactory extends FacetFactoryAbstract - implements ContributeeMemberFacetFactory { + implements ContributeeMemberFacetFactory, MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation renderValidator = new MetaModelValidatorForDeprecatedAnnotation(Render.class); + private final MetaModelValidatorForDeprecatedAnnotation resolveValidator = new MetaModelValidatorForDeprecatedAnnotation(Resolve.class); public RenderFacetOrResolveFactory() { super(FeatureType.MEMBERS); @@ -42,10 +50,10 @@ public class RenderFacetOrResolveFactory extends FacetFactoryAbstract RenderFacet renderFacet = createFromMetadataPropertiesIfPossible(processMethodContext); if(renderFacet == null) { - renderFacet = createFromRenderAnnotationIfPossible(processMethodContext); + renderFacet = renderValidator.invalidIfPresent(createFromRenderAnnotationIfPossible(processMethodContext)); } if(renderFacet == null) { - renderFacet = createFromResolveAnnotationIfPossible(processMethodContext); + renderFacet = resolveValidator.invalidIfPresent(createFromResolveAnnotationIfPossible(processMethodContext)); } // no-op if null @@ -80,4 +88,18 @@ public class RenderFacetOrResolveFactory extends FacetFactoryAbstract Annotations.getAnnotation(processMethodContext.getMethod(), org.apache.isis.applib.annotation.Resolve.class); return resolveAnnotation == null ? null : new RenderFacetViaResolveAnnotation(processMethodContext.getFacetHolder(), resolveAnnotation.value()); } + + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(renderValidator); + metaModelValidator.add(resolveValidator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + renderValidator.setConfiguration(configuration); + resolveValidator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java index 60a079c..75ba412 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java @@ -30,9 +30,8 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType; import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; -import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorAbstract; import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; -import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures; public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner { @@ -41,7 +40,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract super(FeatureType.OBJECTS_ONLY); } - private final ValidationFailures failures = new ValidationFailures(); + private final MetaModelValidatorForValidationFailures validator = new MetaModelValidatorForValidationFailures(); @Override public void process(final ProcessClassContext processClassContext) { @@ -61,7 +60,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract final boolean annotatedWithViewModel = viewModel != null; if(implementsViewModel && implementsRecreatableDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %s should not implement both %s and %s interfaces (implement one or the other)", cls.getName(), org.apache.isis.applib.ViewModel.class.getSimpleName(), @@ -69,17 +68,17 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract } if(implementsViewModel && annotatedWithDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not implement %2$s and be annotated with @%3$s (annotate with %4$s instead of %2$s, or implement %6s instead of %2$s)", cls.getName(), org.apache.isis.applib.ViewModel.class.getSimpleName(), DomainObject.class.getSimpleName(), ViewModel.class.getSimpleName(), RecreatableDomainObject.class.getSimpleName() - ); + ); } if(implementsViewModel && annotatedWithDomainObjectLayout) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not implement %2$s and be annotated with @%3$s (annotate with @%4$s instead of %3$s, or implement %5$s instead of %2$s)", cls.getName(), org.apache.isis.applib.ViewModel.class.getSimpleName(), @@ -90,7 +89,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract if(annotatedWithViewModel && implementsRecreatableDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with @%2$s but implement @%3$s (implement %4$s instead of %3$s, or annotate with @%5$s with nature of %6s, %7s or %8s instead of annotating with @%2$s)", cls.getName(), org.apache.isis.applib.annotation.ViewModel.class.getSimpleName(), @@ -103,7 +102,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract ); } if(annotatedWithViewModel && annotatedWithDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with both @%2$s and @%3$s (annotate with one or the other)", cls.getName(), org.apache.isis.applib.annotation.ViewModel.class.getSimpleName(), @@ -111,7 +110,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract } if(annotatedWithViewModel && annotatedWithDomainObjectLayout) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with both @%2$s and @%3$s (annotate with @%4$s instead of @%3$s, or annotate with @%5$s instead of @%2$s)", cls.getName(), org.apache.isis.applib.annotation.ViewModel.class.getSimpleName(), @@ -121,7 +120,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract } if(annotatedWithViewModelLayout && implementsRecreatableDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with @%2$s but implement @%3$s (implement %4$s instead of %3$s, or annotate with %5$s instead of %2$s)", cls.getName(), org.apache.isis.applib.annotation.ViewModelLayout.class.getSimpleName(), @@ -130,7 +129,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract DomainObjectLayout.class.getSimpleName()); } if(annotatedWithViewModelLayout && annotatedWithDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with @%2$s and also be annotated with @%3$s (annotate with @%4$s instead of @%3$s, or instead annotate with @%5$s instead of @%2$s)", cls.getName(), org.apache.isis.applib.annotation.ViewModelLayout.class.getSimpleName(), @@ -139,7 +138,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract DomainObjectLayout.class.getSimpleName()); } if(annotatedWithViewModelLayout && annotatedWithDomainObjectLayout) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with both @%2$s and @%3$s (annotate with one or the other)", cls.getName(), org.apache.isis.applib.annotation.ViewModel.class.getSimpleName(), @@ -150,7 +149,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract if( annotatedWithDomainObject && (domainObject.nature() == Nature.NOT_SPECIFIED || domainObject.nature() == Nature.JDO_ENTITY) && implementsRecreatableDomainObject) { - failures.add( + validator.addFailure( "Inconsistent view model / domain object semantics; %1$s should not be annotated with @%2$s with nature of %3$s and also implement %4$s (specify a nature of %5$s, %6$s or %7$s)", cls.getName(), DomainObject.class.getSimpleName(), @@ -164,13 +163,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract @Override public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { - if(failures.occurred()) { - metaModelValidator.add(new MetaModelValidatorAbstract() { - @Override - public void validate(final ValidationFailures validationFailures) { - validationFailures.addAll(failures); - } - }); - } + metaModelValidator.add(validator); } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java index 16eb608..3fe4642 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/actionorder/annotation/ActionOrderFacetAnnotationFactory.java @@ -20,27 +20,43 @@ package org.apache.isis.core.metamodel.facets.object.actionorder.annotation; import org.apache.isis.applib.annotation.ActionOrder; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.object.actionorder.ActionOrderFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class ActionOrderFacetAnnotationFactory extends FacetFactoryAbstract { +public class ActionOrderFacetAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(ActionOrder.class); public ActionOrderFacetAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); } @Override - public void process(final ProcessClassContext processClassContaxt) { - final ActionOrder annotation = Annotations.getAnnotation(processClassContaxt.getCls(), ActionOrder.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + public void process(final ProcessClassContext processClassContext) { + final ActionOrder annotation = Annotations.getAnnotation(processClassContext.getCls(), ActionOrder.class); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } private ActionOrderFacet create(final ActionOrder annotation, final FacetHolder facetHolder) { return annotation == null ? null : new ActionOrderFacetAnnotation(annotation.value(), facetHolder); } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java index 51c942e..128968d 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/annotation/AutoCompleteFacetAnnotationFactory.java @@ -20,19 +20,25 @@ package org.apache.isis.core.metamodel.facets.object.autocomplete.annotation; import org.apache.isis.applib.annotation.AutoComplete; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager; import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet; import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector; import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware; import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class AutoCompleteFacetAnnotationFactory extends FacetFactoryAbstract implements AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware { +public class AutoCompleteFacetAnnotationFactory extends FacetFactoryAbstract implements AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(AutoComplete.class); private AdapterManager adapterManager; private ServicesInjector servicesInjector; @@ -44,7 +50,7 @@ public class AutoCompleteFacetAnnotationFactory extends FacetFactoryAbstract imp @Override public void process(final ProcessClassContext processClassContext) { final AutoComplete annotation = Annotations.getAnnotation(processClassContext.getCls(), AutoComplete.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } private AutoCompleteFacet create(final AutoComplete annotation, final FacetHolder holder) { @@ -57,6 +63,13 @@ public class AutoCompleteFacetAnnotationFactory extends FacetFactoryAbstract imp } @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + // ////////////////////////////////////// + + @Override public void setAdapterManager(AdapterManager adapterManager) { this.adapterManager = adapterManager; } @@ -66,4 +79,9 @@ public class AutoCompleteFacetAnnotationFactory extends FacetFactoryAbstract imp this.servicesInjector = servicesInjector; } + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java index 0a81675..be9ab8a 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationFactory.java @@ -20,13 +20,12 @@ package org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable; import java.util.List; - import org.apache.isis.applib.annotation.ActionSemantics.Of; import org.apache.isis.applib.annotation.BookmarkPolicy; import org.apache.isis.applib.annotation.Bookmarkable; import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; @@ -38,10 +37,13 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification; import org.apache.isis.core.metamodel.spec.feature.Contributed; import org.apache.isis.core.metamodel.spec.feature.ObjectAction; import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting; import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures; -public class BookmarkPolicyFacetViaBookmarkableAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner { +public class BookmarkPolicyFacetViaBookmarkableAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Bookmarkable.class); public BookmarkPolicyFacetViaBookmarkableAnnotationFactory() { super(FeatureType.OBJECTS_AND_ACTIONS); @@ -50,13 +52,13 @@ public class BookmarkPolicyFacetViaBookmarkableAnnotationFactory extends FacetFa @Override public void process(final ProcessClassContext processClassContext) { final Bookmarkable annotation = Annotations.getAnnotation(processClassContext.getCls(), Bookmarkable.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } @Override public void process(final ProcessMethodContext processMethodContext) { final Bookmarkable annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Bookmarkable.class); - FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder())); + validator.addFacet(create(annotation, processMethodContext.getFacetHolder())); } private BookmarkPolicyFacet create(final Bookmarkable annotation, final FacetHolder holder) { @@ -92,6 +94,13 @@ public class BookmarkPolicyFacetViaBookmarkableAnnotationFactory extends FacetFa return true; } })); + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java index e97602c..d075550 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclass/annotation/CssClassFacetOnTypeAnnotationFactory.java @@ -20,14 +20,21 @@ package org.apache.isis.core.metamodel.facets.object.cssclass.annotation; import org.apache.isis.applib.annotation.CssClass; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class CssClassFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { +public class CssClassFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(CssClass.class); public CssClassFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,10 +43,21 @@ public class CssClassFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { @Override public void process(final ProcessClassContext processClassContext) { final CssClass annotation = Annotations.getAnnotation(processClassContext.getCls(), CssClass.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } private static CssClassFacet create(final CssClass annotation, final FacetHolder holder) { return annotation == null ? null : new CssClassFacetOnTypeAnnotation(annotation, holder); } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java index ef537c9..4ed7218 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/annotation/CssClassFaFacetOnTypeAnnotationFactory.java @@ -20,14 +20,20 @@ package org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation; import org.apache.isis.applib.annotation.CssClassFa; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class CssClassFaFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { +public class CssClassFaFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(CssClassFa.class); public CssClassFaFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,10 +42,21 @@ public class CssClassFaFacetOnTypeAnnotationFactory extends FacetFactoryAbstract @Override public void process(final ProcessClassContext processClassContext) { final CssClassFa annotation = Annotations.getAnnotation(processClassContext.getCls(), CssClassFa.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } private static CssClassFaFacet create(final CssClassFa annotation, final FacetHolder holder) { return annotation == null ? null : new CssClassFaFacetOnTypeAnnotation(annotation, holder); } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java index 347e0da..f85c3bc 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/describedas/annotation/DescribedAsFacetOnTypeAnnotationFactory.java @@ -20,14 +20,20 @@ package org.apache.isis.core.metamodel.facets.object.describedas.annotation; import org.apache.isis.applib.annotation.DescribedAs; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class DescribedAsFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { +public class DescribedAsFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(DescribedAs.class); public DescribedAsFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,11 +42,21 @@ public class DescribedAsFacetOnTypeAnnotationFactory extends FacetFactoryAbstrac @Override public void process(final ProcessClassContext processClassContaxt) { final DescribedAs annotation = Annotations.getAnnotation(processClassContaxt.getCls(), DescribedAs.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(create(annotation, processClassContaxt.getFacetHolder())); } private DescribedAsFacet create(final DescribedAs annotation, final FacetHolder holder) { return annotation == null ? null : new DescribedAsFacetOnTypeAnnotation(annotation.value(), holder); } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java index 4fb85cc..28bf9e5 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/fieldorder/annotation/FieldOrderFacetAnnotationFactory.java @@ -20,14 +20,21 @@ package org.apache.isis.core.metamodel.facets.object.fieldorder.annotation; import org.apache.isis.applib.annotation.FieldOrder; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.object.fieldorder.FieldOrderFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class FieldOrderFacetAnnotationFactory extends FacetFactoryAbstract { +public class FieldOrderFacetAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(FieldOrder.class); public FieldOrderFacetAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,11 +43,21 @@ public class FieldOrderFacetAnnotationFactory extends FacetFactoryAbstract { @Override public void process(final ProcessClassContext processClassContaxt) { final FieldOrder annotation = Annotations.getAnnotation(processClassContaxt.getCls(), FieldOrder.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(create(annotation, processClassContaxt.getFacetHolder())); } private FieldOrderFacet create(final FieldOrder annotation, final FacetHolder holder) { return annotation == null ? null : new FieldOrderFacetAnnotation(annotation.value(), holder); } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java index c2a0011..262c40c 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/hidden/annotation/HiddenFacetOnTypeAnnotationFactory.java @@ -20,14 +20,21 @@ package org.apache.isis.core.metamodel.facets.object.hidden.annotation; import org.apache.isis.applib.annotation.Hidden; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class HiddenFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { +public class HiddenFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Hidden.class); public HiddenFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,11 +43,21 @@ public class HiddenFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { @Override public void process(final ProcessClassContext processClassContext) { final Hidden annotation = Annotations.getAnnotation(processClassContext.getCls(), Hidden.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } private static HiddenFacet create(final Hidden annotation, final FacetHolder holder) { return annotation == null ? null : new HiddenFacetOnTypeAnnotation(annotation.when(), holder); } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java index 2ae6cf2..e7ebc42 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/mask/annotation/MaskFacetOnTypeAnnotationFactory.java @@ -20,14 +20,21 @@ package org.apache.isis.core.metamodel.facets.object.mask.annotation; import org.apache.isis.applib.annotation.Mask; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.object.mask.MaskFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; + +public class MaskFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Mask.class); -public class MaskFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { public MaskFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -39,11 +46,21 @@ public class MaskFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { @Override public void process(final ProcessClassContext processClassContaxt) { final Mask annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Mask.class); - FacetUtil.addFacet(createMaskFacet(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(createMaskFacet(annotation, processClassContaxt.getFacetHolder())); } private MaskFacet createMaskFacet(final Mask annotation, final FacetHolder holder) { return annotation != null ? new MaskFacetOnTypeAnnotation(annotation.value(), null, holder) : null; } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java index 74a3a94..0ad616f 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/maxlen/annotation/MaxLengthFacetOnTypeAnnotationFactory.java @@ -20,14 +20,20 @@ package org.apache.isis.core.metamodel.facets.object.maxlen.annotation; import org.apache.isis.applib.annotation.MaxLength; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.propparam.maxlen.MaxLengthFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class MaxLengthFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { +public class MaxLengthFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MaxLength.class); public MaxLengthFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -39,10 +45,21 @@ public class MaxLengthFacetOnTypeAnnotationFactory extends FacetFactoryAbstract @Override public void process(final ProcessClassContext processClassContaxt) { final MaxLength annotation = Annotations.getAnnotation(processClassContaxt.getCls(), MaxLength.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(create(annotation, processClassContaxt.getFacetHolder())); } private MaxLengthFacet create(final MaxLength annotation, final FacetHolder holder) { return annotation == null ? null : new MaxLengthFacetOnTypeAnnotation(annotation.value(), holder); } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java index 232eb2d..2480c6f 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/multiline/annotation/MultiLineFacetOnTypeAnnotationFactory.java @@ -20,14 +20,21 @@ package org.apache.isis.core.metamodel.facets.object.multiline.annotation; import org.apache.isis.applib.annotation.MultiLine; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.propparam.multiline.MultiLineFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; + +public class MultiLineFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(MultiLine.class); -public class MultiLineFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { public MultiLineFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -39,11 +46,21 @@ public class MultiLineFacetOnTypeAnnotationFactory extends FacetFactoryAbstract @Override public void process(final ProcessClassContext processClassContaxt) { final MultiLine annotation = Annotations.getAnnotation(processClassContaxt.getCls(), MultiLine.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(create(annotation, processClassContaxt.getFacetHolder())); } private MultiLineFacet create(final MultiLine annotation, final FacetHolder holder) { return (annotation != null) ? new MultiLineFacetOnTypeAnnotation(annotation.numberOfLines(), annotation.preventWrapping(), holder) : null; } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java index 968325c..e06a702 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/annotation/NamedFacetOnTypeAnnotationFactory.java @@ -20,14 +20,22 @@ package org.apache.isis.core.metamodel.facets.object.named.annotation; import org.apache.isis.applib.annotation.Named; +import org.apache.isis.applib.annotation.NotPersisted; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.all.named.NamedFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; + +public class NamedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class); -public class NamedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { public NamedFacetOnTypeAnnotationFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,11 +44,21 @@ public class NamedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract { @Override public void process(final ProcessClassContext processClassContaxt) { final Named annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Named.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(create(annotation, processClassContaxt.getFacetHolder())); } private NamedFacet create(final Named annotation, final FacetHolder holder) { return annotation != null ? new NamedFacetOnTypeAnnotation(annotation.value(), holder) : null; } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java index 636cc10..a91ae5e 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/named/staticmethod/NamedFacetStaticMethodFactory.java @@ -20,20 +20,25 @@ package org.apache.isis.core.metamodel.facets.object.named.staticmethod; import java.lang.reflect.Method; - +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.commons.lang.MethodExtensions; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; -import org.apache.isis.core.metamodel.methodutils.MethodScope; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.MethodFinderUtils; import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.MethodPrefixConstants; +import org.apache.isis.core.metamodel.methodutils.MethodScope; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedMethodPrefix; -public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactoryAbstract { +public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { private static final String[] PREFIXES = { MethodPrefixConstants.SINGULAR_NAME, }; + private final MetaModelValidatorForDeprecatedMethodPrefix validator = new MetaModelValidatorForDeprecatedMethodPrefix(PREFIXES[0]); + public NamedFacetStaticMethodFactory() { super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES); } @@ -47,7 +52,20 @@ public class NamedFacetStaticMethodFactory extends MethodPrefixBasedFacetFactory if (method != null) { final String name = (String) MethodExtensions.invokeStatic(method); processClassContext.removeMethod(method); - FacetUtil.addFacet(new NamedFacetStaticMethod(name, facetHolder)); + validator.addFacet(new NamedFacetStaticMethod(name, facetHolder)); } } + + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotationFactory.java deleted file mode 100644 index c33d7c2..0000000 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetAnnotationFactory.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.isis.core.metamodel.facets.object.objectspecid.annotation; - -import org.apache.isis.applib.annotation.ObjectType; -import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; -import org.apache.isis.core.metamodel.facetapi.FeatureType; -import org.apache.isis.core.metamodel.facets.Annotations; -import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; -import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet; - -public class ObjectSpecIdFacetAnnotationFactory extends FacetFactoryAbstract { - - public ObjectSpecIdFacetAnnotationFactory() { - super(FeatureType.OBJECTS_ONLY); - } - - @Override - public void process(final ProcessClassContext processClassContext) { - final ObjectType annotation = Annotations.getAnnotation(processClassContext.getCls(), ObjectType.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); - } - - private ObjectSpecIdFacet create(final ObjectType annotation, final FacetHolder holder) { - return annotation != null ? new ObjectSpecIdFacetAnnotation(annotation.value(), holder) : null; - } - -} http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java new file mode 100644 index 0000000..b97a4cc --- /dev/null +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/objectspecid/annotation/ObjectSpecIdFacetForObjectTypeAnnotationFactory.java @@ -0,0 +1,64 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.isis.core.metamodel.facets.object.objectspecid.annotation; + +import org.apache.isis.applib.annotation.ObjectType; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; +import org.apache.isis.core.metamodel.facetapi.FacetHolder; +import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; +import org.apache.isis.core.metamodel.facets.Annotations; +import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; +import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; + +public class ObjectSpecIdFacetForObjectTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(ObjectType.class); + + + public ObjectSpecIdFacetForObjectTypeAnnotationFactory() { + super(FeatureType.OBJECTS_ONLY); + } + + @Override + public void process(final ProcessClassContext processClassContext) { + final ObjectType annotation = Annotations.getAnnotation(processClassContext.getCls(), ObjectType.class); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); + } + + private ObjectSpecIdFacet create(final ObjectType annotation, final FacetHolder holder) { + return annotation != null ? new ObjectSpecIdFacetAnnotation(annotation.value(), holder) : null; + } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + + +} http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java index 30f4cd7..980878b 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/paged/annotation/PagedFacetOnTypeAnnotationFactory.java @@ -23,14 +23,19 @@ import org.apache.isis.applib.annotation.Paged; import org.apache.isis.core.commons.config.IsisConfiguration; import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.objcoll.paged.PagedFacetAnnotation; import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; + +public class PagedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Paged.class); -public class PagedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract implements IsisConfigurationAware { private IsisConfiguration configuration; @@ -38,16 +43,25 @@ public class PagedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract impl super(FeatureType.OBJECTS_ONLY); } + // ////////////////////////////////////// + @Override public void process(final ProcessClassContext processClassContext) { final Paged annotation = Annotations.getAnnotation(processClassContext.getCls(), Paged.class); - FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder())); + validator.addFacet(create(annotation, processClassContext.getFacetHolder())); } - private PagedFacet create(final Paged annotation, final FacetHolder holder) { + private static PagedFacet create(final Paged annotation, final FacetHolder holder) { return annotation != null ? new PagedFacetAnnotation(holder, annotation.value()) : null; } + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + // ////////////////////////////////////// + public IsisConfiguration getConfiguration() { return configuration; } @@ -55,6 +69,7 @@ public class PagedFacetOnTypeAnnotationFactory extends FacetFactoryAbstract impl @Override public void setConfiguration(IsisConfiguration configuration) { this.configuration = configuration; + validator.setConfiguration(configuration); } } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java index 7acec57..dfdd76e 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/annotation/PluralAnnotationFacetFactory.java @@ -20,14 +20,20 @@ package org.apache.isis.core.metamodel.facets.object.plural.annotation; import org.apache.isis.applib.annotation.Plural; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; import org.apache.isis.core.metamodel.facets.Annotations; import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation; -public class PluralAnnotationFacetFactory extends FacetFactoryAbstract { +public class PluralAnnotationFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Plural.class); public PluralAnnotationFacetFactory() { super(FeatureType.OBJECTS_ONLY); @@ -36,11 +42,22 @@ public class PluralAnnotationFacetFactory extends FacetFactoryAbstract { @Override public void process(final ProcessClassContext processClassContaxt) { final Plural annotation = Annotations.getAnnotation(processClassContaxt.getCls(), Plural.class); - FacetUtil.addFacet(create(annotation, processClassContaxt.getFacetHolder())); + validator.addFacet(create(annotation, processClassContaxt.getFacetHolder())); } private PluralFacet create(final Plural annotation, final FacetHolder holder) { return annotation == null ? null : new PluralFacetAnnotation(annotation.value(), holder); } + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + } http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetMethodFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetMethodFactory.java deleted file mode 100644 index ae9ca1e..0000000 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetMethodFactory.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.isis.core.metamodel.facets.object.plural.staticmethod; - -import java.lang.reflect.Method; - -import org.apache.isis.core.commons.lang.MethodExtensions; -import org.apache.isis.core.metamodel.facetapi.FacetHolder; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; -import org.apache.isis.core.metamodel.facetapi.FeatureType; -import org.apache.isis.core.metamodel.methodutils.MethodScope; -import org.apache.isis.core.metamodel.facets.MethodFinderUtils; -import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract; - -public class PluralFacetMethodFactory extends MethodPrefixBasedFacetFactoryAbstract { - - private static final String PLURAL_NAME = "pluralName"; - - private static final String[] PREFIXES = { PLURAL_NAME, }; - - public PluralFacetMethodFactory() { - super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES); - } - - @Override - public void process(final ProcessClassContext processClassContext) { - final Class<?> type = processClassContext.getCls(); - final FacetHolder facetHolder = processClassContext.getFacetHolder(); - - final Method method = MethodFinderUtils.findMethod(type, MethodScope.CLASS, PLURAL_NAME, String.class, NO_PARAMETERS_TYPES); - if (method != null) { - final String name = (String) MethodExtensions.invokeStatic(method); - processClassContext.removeMethod(method); - FacetUtil.addFacet(new PluralFacetMethod(name, facetHolder)); - } - } -} http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java new file mode 100644 index 0000000..1d053ff --- /dev/null +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/plural/staticmethod/PluralFacetStaticMethodFactory.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.isis.core.metamodel.facets.object.plural.staticmethod; + +import java.lang.reflect.Method; +import org.apache.isis.core.commons.config.IsisConfiguration; +import org.apache.isis.core.commons.config.IsisConfigurationAware; +import org.apache.isis.core.commons.lang.MethodExtensions; +import org.apache.isis.core.metamodel.facetapi.FacetHolder; +import org.apache.isis.core.metamodel.facetapi.FeatureType; +import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner; +import org.apache.isis.core.metamodel.facets.MethodFinderUtils; +import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactoryAbstract; +import org.apache.isis.core.metamodel.methodutils.MethodScope; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite; +import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedMethodPrefix; + +public class PluralFacetStaticMethodFactory extends MethodPrefixBasedFacetFactoryAbstract implements MetaModelValidatorRefiner, IsisConfigurationAware { + + private static final String PLURAL_NAME = "pluralName"; + + private static final String[] PREFIXES = { PLURAL_NAME, }; + + private final MetaModelValidatorForDeprecatedMethodPrefix validator = new MetaModelValidatorForDeprecatedMethodPrefix(PREFIXES[0]); + + public PluralFacetStaticMethodFactory() { + super(FeatureType.OBJECTS_ONLY, OrphanValidation.VALIDATE, PREFIXES); + } + + @Override + public void process(final ProcessClassContext processClassContext) { + final Class<?> type = processClassContext.getCls(); + final FacetHolder facetHolder = processClassContext.getFacetHolder(); + + final Method method = MethodFinderUtils.findMethod(type, MethodScope.CLASS, PLURAL_NAME, String.class, NO_PARAMETERS_TYPES); + if (method != null) { + final String name = (String) MethodExtensions.invokeStatic(method); + processClassContext.removeMethod(method); + validator.addFacet(new PluralFacetMethod(name, facetHolder)); + } + } + + + @Override + public void refineMetaModelValidator(final MetaModelValidatorComposite metaModelValidator, final IsisConfiguration configuration) { + metaModelValidator.add(validator); + } + + @Override + public void setConfiguration(final IsisConfiguration configuration) { + validator.setConfiguration(configuration); + } + +} http://git-wip-us.apache.org/repos/asf/isis/blob/128f23c2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObjectFacetFactory.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObjectFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObjectFacetFactory.java deleted file mode 100644 index 5c297de..0000000 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/DisabledFacetOnCollectionDerivedFromRecreatableObjectFacetFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.isis.core.metamodel.facets.object.recreatable; - -import java.lang.reflect.Method; -import org.apache.isis.core.metamodel.facetapi.FacetUtil; -import org.apache.isis.core.metamodel.facetapi.FeatureType; -import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract; -import org.apache.isis.core.metamodel.facets.FacetedMethod; -import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet; -import org.apache.isis.core.metamodel.spec.ObjectSpecification; - -public class DisabledFacetOnCollectionDerivedFromRecreatableObjectFacetFactory extends FacetFactoryAbstract { - - public DisabledFacetOnCollectionDerivedFromRecreatableObjectFacetFactory() { - super(FeatureType.COLLECTIONS_ONLY); - } - - @Override - public void process(final ProcessMethodContext processMethodContext) { - final Method method = processMethodContext.getMethod(); - final Class<?> declaringClass = method.getDeclaringClass(); - final ObjectSpecification spec = getSpecificationLoader().loadSpecification(declaringClass); - - if (!spec.containsDoOpFacet(ViewModelFacet.class)) { - return; - } - final FacetedMethod facetHolder = processMethodContext.getFacetHolder(); - FacetUtil.addFacet(new DisabledFacetOnCollectionDerivedFromRecreatableObject(facetHolder)); - } - -}
