/* 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.progmodels.dflt; import org.apache.isis.core.commons.config.IsisConfiguration; import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.actions.action.ActionChoicesForCollectionParameterFacetFactory; import org.apache.isis.core.metamodel.facets.actions.contributing.maxlenannot.MaxLengthFacetOnActionAnnotationFactory; import org.apache.isis.core.metamodel.facets.actions.contributing.paged.PagedFacetOnActionFactory; import org.apache.isis.core.metamodel.facets.actions.defaults.method.ActionDefaultsFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.actions.exploration.annotation.PrototypeFacetForExplorationAnnotationFactory; import org.apache.isis.core.metamodel.facets.actions.homepage.annotation.HomePageFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.actions.layout.ActionLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.actions.notcontributed.annotation.NotContributedFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromDomainServiceFacetFactory; import org.apache.isis.core.metamodel.facets.actions.notcontributed.derived.NotContributedFacetDerivedFromMixinFacetFactory; import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.annotation.NotInServiceMenuFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.derived.NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory; import org.apache.isis.core.metamodel.facets.actions.notinservicemenu.method.NotInServiceMenuFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.actions.validate.method.ActionValidationFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.all.i18n.TranslationFacetFactory; import org.apache.isis.core.metamodel.facets.collections.accessor.CollectionAccessorFacetViaAccessorFactory; import org.apache.isis.core.metamodel.facets.collections.clear.CollectionClearFacetFactory; import org.apache.isis.core.metamodel.facets.collections.collection.CollectionAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.collections.disabled.fromimmutable.DisabledFacetOnCollectionDerivedFromImmutableFactory; import org.apache.isis.core.metamodel.facets.collections.javautilcollection.CollectionFacetFactory; import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToRemoveFromAndValidateFacetFactory; import org.apache.isis.core.metamodel.facets.collections.paged.PagedFacetOnCollectionFactory; import org.apache.isis.core.metamodel.facets.collections.parented.ParentedFacetSinceCollectionFactory; import org.apache.isis.core.metamodel.facets.collections.sortedby.annotation.SortedByFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.fallback.FallbackFacetFactory; import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnActionFromConfiguredRegexFactory; import org.apache.isis.core.metamodel.facets.members.cssclass.annotprop.CssClassFacetOnMemberFactory; import org.apache.isis.core.metamodel.facets.members.cssclassfa.annotprop.CssClassFaFacetOnMemberFactory; import org.apache.isis.core.metamodel.facets.members.describedas.annotprop.DescribedAsFacetOnMemberFactory; import org.apache.isis.core.metamodel.facets.members.describedas.staticmethod.DescribedAsFacetStaticMethodFactory; import org.apache.isis.core.metamodel.facets.members.disabled.forsession.DisableForSessionFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.members.disabled.layout.DisabledFacetOnMemberFromPropertiesFactory; import org.apache.isis.core.metamodel.facets.members.disabled.method.DisableForContextFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.members.disabled.staticmethod.DisabledFacetStaticMethodFacetFactory; import org.apache.isis.core.metamodel.facets.members.hidden.forsession.HideForSessionFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.members.hidden.layout.HiddenFacetOnMemberFromPropertiesFactory; import org.apache.isis.core.metamodel.facets.members.hidden.method.HideForContextFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.members.hidden.staticmethod.HiddenFacetStaticMethodFactory; import org.apache.isis.core.metamodel.facets.members.named.annotprop.NamedFacetOnMemberFactory; import org.apache.isis.core.metamodel.facets.members.named.staticmethod.NamedFacetStaticMethodFactory; import org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetFactory; import org.apache.isis.core.metamodel.facets.members.render.annotprop.RenderFacetOrResolveFactory; import org.apache.isis.core.metamodel.facets.object.ViewModelSemanticCheckingFacetFactory; import org.apache.isis.core.metamodel.facets.object.actionorder.annotation.ActionOrderFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.audit.markerifc.AuditableFacetMarkerInterfaceFactory; import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable.BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory; import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacetFactory; import org.apache.isis.core.metamodel.facets.object.callbacks.LoadCallbackFacetFactory; import org.apache.isis.core.metamodel.facets.object.callbacks.PersistCallbackFacetFactory; import org.apache.isis.core.metamodel.facets.object.callbacks.PersistCallbackViaSaveMethodFacetFactory; import org.apache.isis.core.metamodel.facets.object.callbacks.RemoveCallbackFacetFactory; import org.apache.isis.core.metamodel.facets.object.callbacks.UpdateCallbackFacetFactory; import org.apache.isis.core.metamodel.facets.object.choices.boundedmarkerifc.ChoicesFacetFromBoundedMarkerInterfaceFactory; import org.apache.isis.core.metamodel.facets.object.choices.enums.EnumFacetUsingValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.object.cssclass.annotation.CssClassFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.cssclass.method.CssClassFacetMethodFactory; import org.apache.isis.core.metamodel.facets.object.defaults.annotcfg.DefaultedFacetAnnotationElseConfigurationFactory; import org.apache.isis.core.metamodel.facets.object.describedas.annotation.DescribedAsFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.disabled.method.DisabledObjectFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DomainObjectLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.object.encodeable.annotcfg.EncodableFacetAnnotationElseConfigurationFactory; import org.apache.isis.core.metamodel.facets.object.facets.annotation.FacetsFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.fieldorder.annotation.FieldOrderFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.grid.GridFacetFactory; import org.apache.isis.core.metamodel.facets.object.hidden.annotation.HiddenFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.object.icon.method.IconFacetMethodFactory; import org.apache.isis.core.metamodel.facets.object.ignore.annotation.RemoveAnnotatedMethodsFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDatanucleusPersistableTypesFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.datanucleus.RemoveDnPrefixedMethodsFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.isis.RemoveStaticGettersAndSettersFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.javalang.IteratorFilteringFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.javalang.RemoveMethodsFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoEnhancementTypesFacetFactory; import org.apache.isis.core.metamodel.facets.object.ignore.jdo.RemoveJdoPrefixedMethodsFacetFactory; import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.CopyImmutableFacetOntoMembersFactory; import org.apache.isis.core.metamodel.facets.object.immutable.immutablemarkerifc.ImmutableFacetMarkerInterfaceFactory; import org.apache.isis.core.metamodel.facets.object.mask.annotation.MaskFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.maxlen.annotation.MaxLengthFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForMixinAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.multiline.annotation.MultiLineFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.named.annotation.NamedFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistableannot.NotPersistableFacetAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.notpersistable.notpersistablemarkerifc.NotPersistableFacetMarkerInterfaceFactory; import org.apache.isis.core.metamodel.facets.object.objectspecid.classname.ObjectSpecIdFacetDerivedFromClassNameFactory; import org.apache.isis.core.metamodel.facets.object.objectvalidprops.impl.ObjectValidPropertiesFacetImplFactory; import org.apache.isis.core.metamodel.facets.object.paged.annotation.PagedFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.parented.aggregated.AggregatedAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.parseable.annotcfg.ParseableFacetAnnotationElseConfigurationFactory; import org.apache.isis.core.metamodel.facets.object.plural.annotation.PluralAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.object.plural.staticmethod.PluralFacetStaticMethodFactory; import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnCollectionDerivedFromViewModelFacetFactory; import org.apache.isis.core.metamodel.facets.object.recreatable.DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory; import org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacetFactory; import org.apache.isis.core.metamodel.facets.object.regex.annotation.RegExFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaMethodsFactory; import org.apache.isis.core.metamodel.facets.object.typicallen.annotation.TypicalLengthFacetOnTypeAnnotationFactory; import org.apache.isis.core.metamodel.facets.object.validating.mustsatisfyspec.MustSatisfySpecificationFromMustSatisfyAnnotationOnTypeFacetFactory; import org.apache.isis.core.metamodel.facets.object.validating.validateobject.method.ValidateObjectFacetMethodFactory; import org.apache.isis.core.metamodel.facets.object.value.annotcfg.ValueFacetAnnotationOrConfigurationFactory; import org.apache.isis.core.metamodel.facets.param.autocomplete.method.ActionParameterAutoCompleteFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.param.bigdecimal.javaxvaldigits.BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory; import org.apache.isis.core.metamodel.facets.param.choices.enums.ActionParameterChoicesFacetDerivedFromChoicesFacetFactory; import org.apache.isis.core.metamodel.facets.param.choices.method.ActionChoicesFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.param.defaults.fromtype.ActionParameterDefaultFacetDerivedFromTypeFactory; import org.apache.isis.core.metamodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.param.describedas.annotderived.DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory; import org.apache.isis.core.metamodel.facets.param.layout.ParameterLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.param.mandatory.dflt.MandatoryFacetOnParametersDefaultFactory; import org.apache.isis.core.metamodel.facets.param.multiline.annotation.MultiLineFacetOnParameterAnnotationFactory; import org.apache.isis.core.metamodel.facets.param.named.annotation.NamedFacetOnParameterAnnotationFactory; import org.apache.isis.core.metamodel.facets.param.parameter.ParameterAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.param.renderedasdaybefore.annotation.RenderedAsDayBeforeFacetOnParameterAnnotationFactory; import org.apache.isis.core.metamodel.facets.param.typicallen.annotation.TypicalLengthFacetOnParameterAnnotationFactory; import org.apache.isis.core.metamodel.facets.param.typicallen.fromtype.TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory; import org.apache.isis.core.metamodel.facets.param.validating.maskannot.MaskFacetOnParameterAnnotationFactory; import org.apache.isis.core.metamodel.facets.properties.accessor.PropertyAccessorFacetViaAccessorFactory; import org.apache.isis.core.metamodel.facets.properties.autocomplete.method.PropertyAutoCompleteFacetMethodFactory; import org.apache.isis.core.metamodel.facets.properties.bigdecimal.javaxvaldigits.BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory; import org.apache.isis.core.metamodel.facets.properties.choices.enums.PropertyChoicesFacetDerivedFromChoicesFacetFactory; import org.apache.isis.core.metamodel.facets.properties.choices.method.PropertyChoicesFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetDerivedFromTypeFactory; import org.apache.isis.core.metamodel.facets.properties.defaults.method.PropertyDefaultFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.properties.disabled.fromimmutable.DisabledFacetOnPropertyDerivedFromImmutableFactory; import org.apache.isis.core.metamodel.facets.properties.disabled.inferred.DisabledFacetOnPropertyInferredFactory; import org.apache.isis.core.metamodel.facets.properties.mandatory.dflt.MandatoryFacetOnProperyDefaultFactory; import org.apache.isis.core.metamodel.facets.properties.mandatory.staticmethod.MandatoryFacetOnPropertyStaticMethodFactory; import org.apache.isis.core.metamodel.facets.properties.multiline.annotation.MultiLineFacetOnPropertyFactory; import org.apache.isis.core.metamodel.facets.properties.property.PropertyAnnotationFacetFactory; import org.apache.isis.core.metamodel.facets.properties.propertylayout.PropertyLayoutFacetFactory; import org.apache.isis.core.metamodel.facets.properties.renderedasdaybefore.annotation.RenderedAsDayBeforeAnnotationOnPropertyFacetFactory; import org.apache.isis.core.metamodel.facets.properties.typicallen.annotation.TypicalLengthOnPropertyFacetFactory; import org.apache.isis.core.metamodel.facets.properties.typicallen.fromtype.TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory; import org.apache.isis.core.metamodel.facets.properties.update.PropertyModifyFacetFactory; import org.apache.isis.core.metamodel.facets.properties.update.PropertySetAndClearFacetFactory; import org.apache.isis.core.metamodel.facets.properties.validating.dflt.PropertyValidateFacetDefaultFactory; import org.apache.isis.core.metamodel.facets.properties.validating.maskannot.MaskFacetOnPropertyAnnotationFactory; import org.apache.isis.core.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethodFactory; import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.biginteger.BigIntegerValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.blobs.BlobValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.booleans.BooleanPrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.booleans.BooleanWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.bytes.BytePrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.bytes.ByteWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.chars.CharPrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.chars.CharWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.clobs.ClobValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.color.ColorValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.date.DateValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.datejodalocal.JodaLocalDateValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.datesql.JavaSqlDateValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.datetime.DateTimeValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.datetimejoda.JodaDateTimeValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.datetimejodalocal.JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.dateutil.JavaUtilDateValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.doubles.DoublePrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.doubles.DoubleWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.floats.FloatPrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.floats.FloatWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.image.ImageValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.imageawt.JavaAwtImageValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.integer.IntPrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.integer.IntWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.longs.LongPrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.longs.LongWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.money.MoneyValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.password.PasswordValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.percentage.PercentageValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.shortint.ShortPrimitiveValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.shortint.ShortWrapperValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.string.StringValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.time.TimeValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.timesql.JavaSqlTimeValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.timestamp.TimeStampValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.timestampsql.JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.url.URLValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.facets.value.uuid.UUIDValueFacetUsingSemanticsProviderFactory; import org.apache.isis.core.metamodel.progmodel.ProgrammingModelAbstract; public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract { public ProgrammingModelFacetsJava5(final IsisConfiguration configuration) { this(DeprecatedPolicy.parse(configuration)); } public ProgrammingModelFacetsJava5(final DeprecatedPolicy deprecatedPolicy) { super(deprecatedPolicy); // must be first, so any Facets created can be replaced by other // FacetFactorys later. addFactory(new FallbackFacetFactory()); addFactory(new ObjectSpecIdFacetDerivedFromClassNameFactory()); addFactory(new DomainServiceFacetAnnotationFactory()); addFactory(new IteratorFilteringFacetFactory()); addFactory(new RemoveMethodsFacetFactory()); addFactory(new RemoveStaticGettersAndSettersFacetFactory()); addFactory(new RemoveAnnotatedMethodsFacetFactory()); // come what may, we have to ignore the PersistenceCapable supertype. addFactory(new RemoveJdoEnhancementTypesFacetFactory()); // so we may as well also just ignore any 'jdo' prefixed methods here also. addFactory(new RemoveJdoPrefixedMethodsFacetFactory()); // DN 4.x addFactory(new RemoveDatanucleusPersistableTypesFacetFactory()); addFactory(new RemoveDnPrefixedMethodsFacetFactory()); // must be before any other FacetFactories that install // MandatoryFacet.class facets addFactory(new MandatoryFacetOnProperyDefaultFactory()); addFactory(new MandatoryFacetOnParametersDefaultFactory()); addFactory(new PropertyValidateFacetDefaultFactory()); // enum support addFactory(new EnumFacetUsingValueFacetUsingSemanticsProviderFactory()); addFactory(new ActionParameterChoicesFacetDerivedFromChoicesFacetFactory()); addFactory(new PropertyChoicesFacetDerivedFromChoicesFacetFactory()); // properties addFactory(new PropertyAccessorFacetViaAccessorFactory()); addFactory(new PropertySetAndClearFacetFactory()); // must come after PropertySetAndClearFacetFactory (replaces setter facet with modify if need be) addFactory(new PropertyModifyFacetFactory()); addFactory(new PropertyValidateFacetViaMethodFactory()); addFactory(new PropertyChoicesFacetViaMethodFactory()); addFactory(new PropertyAutoCompleteFacetMethodFactory()); addFactory(new PropertyDefaultFacetViaMethodFactory()); addFactory(new MandatoryFacetOnPropertyStaticMethodFactory()); // collections addFactory(new CollectionAccessorFacetViaAccessorFactory()); addFactory(new CollectionClearFacetFactory()); addFactory(new CollectionAddToRemoveFromAndValidateFacetFactory()); addFactory(new SortedByFacetAnnotationFactory()); // actions addFactory(new ActionValidationFacetViaMethodFactory()); addFactory(new ActionChoicesFacetViaMethodFactory()); addFactory(new ActionParameterChoicesFacetViaMethodFactory()); addFactory(new ActionParameterAutoCompleteFacetViaMethodFactory()); addFactory(new ActionDefaultsFacetViaMethodFactory()); addFactory(new ActionParameterDefaultsFacetViaMethodFactory()); // members in general addFactory(new NamedFacetStaticMethodFactory()); addFactory(new DescribedAsFacetStaticMethodFactory()); addFactory(new DisableForSessionFacetViaMethodFactory()); addFactory(new DisableForContextFacetViaMethodFactory()); addFactory(new DisabledFacetStaticMethodFacetFactory()); addFactory(new HideForSessionFacetViaMethodFactory()); addFactory(new HiddenFacetStaticMethodFactory()); addFactory(new HideForContextFacetViaMethodFactory()); addFactory(new RenderFacetOrResolveFactory()); addFactory(new CreatedCallbackFacetFactory()); addFactory(new LoadCallbackFacetFactory()); addFactory(new PersistCallbackViaSaveMethodFacetFactory()); addFactory(new PersistCallbackFacetFactory()); addFactory(new UpdateCallbackFacetFactory()); addFactory(new RemoveCallbackFacetFactory()); addFactory(new ValidateObjectFacetMethodFactory()); addFactory(new ObjectValidPropertiesFacetImplFactory()); addFactory(new PluralFacetStaticMethodFactory()); addFactory(new org.apache.isis.core.metamodel.facets.object.named.staticmethod.NamedFacetStaticMethodFactory()); addFactory(new MemberOrderFacetFactory()); addFactory(new ActionOrderFacetAnnotationFactory()); addFactory(new FieldOrderFacetAnnotationFactory()); addFactory(new MemberGroupLayoutFacetFactory()); addFactory(new AggregatedAnnotationFactory()); addFactory(new BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory()); addFactory(new HomePageFacetAnnotationFactory()); addFactory(new ChoicesFacetFromBoundedMarkerInterfaceFactory()); addFactory(new DefaultedFacetAnnotationElseConfigurationFactory()); addFactory(new PropertyDefaultFacetDerivedFromTypeFactory()); addFactory(new ActionParameterDefaultFacetDerivedFromTypeFactory()); addFactory(new DescribedAsFacetOnTypeAnnotationFactory()); addFactory(new DescribedAsFacetOnMemberFactory()); addFactory(new DescribedAsFacetOnParameterAnnotationElseDerivedFromTypeFactory()); addFactory(new BigDecimalFacetOnParameterFromJavaxValidationAnnotationFactory()); addFactory(new BigDecimalFacetOnPropertyFromJavaxValidationDigitsAnnotationFactory()); addFactory(new DisabledFacetOnMemberFromPropertiesFactory()); addFactory(new EncodableFacetAnnotationElseConfigurationFactory()); addFactory(new PrototypeFacetForExplorationAnnotationFactory()); addFactory(new NotContributedFacetAnnotationFactory()); addFactory(new NotInServiceMenuFacetAnnotationFactory()); addFactory(new NotInServiceMenuFacetViaMethodFactory()); addFactory(new NotContributedFacetDerivedFromDomainServiceFacetFactory()); addFactory(new NotInServiceMenuFacetDerivedFromDomainServiceFacetFactory()); addFactory(new HiddenFacetOnTypeAnnotationFactory()); // must come after the TitleAnnotationFacetFactory, because can act as an override addFactory(new HiddenFacetOnMemberFromPropertiesFactory()); addFactory(new CssClassFacetOnTypeAnnotationFactory()); addFactory(new CssClassFacetOnMemberFactory()); // must come after CssClassFacetOnMemberFactory addFactory(new CssClassFacetOnActionFromConfiguredRegexFactory()); // addFactory(new CssClassFaFacetOnTypeAnnotationFactory()); addFactory(new CssClassFaFacetOnMemberFactory()); addFactory(new HiddenObjectFacetViaMethodFactory()); addFactory(new DisabledObjectFacetViaMethodFactory()); addFactory(new CopyImmutableFacetOntoMembersFactory()); addFactory(new ImmutableFacetMarkerInterfaceFactory()); addFactory(new RecreatableObjectFacetFactory()); addFactory(new MixinFacetForMixinAnnotationFactory()); addFactory(new MaxLengthFacetOnTypeAnnotationFactory()); addFactory(new MaxLengthFacetOnActionAnnotationFactory()); addFactory(new MustSatisfySpecificationFromMustSatisfyAnnotationOnTypeFacetFactory()); addFactory(new MultiLineFacetOnTypeAnnotationFactory()); addFactory(new MultiLineFacetOnPropertyFactory()); addFactory(new MultiLineFacetOnParameterAnnotationFactory()); // must come after RecreatableObjectFacetFactory addFactory(new DomainObjectAnnotationFacetFactory()); // must come after the property/collection accessor+mutator facet factories addFactory(new ActionAnnotationFacetFactory()); // after the ActionAnnotationFacetFactory so that takes precedent for contributed associations addFactory(new PropertyAnnotationFacetFactory()); // after the ActionAnnotationFacetFactory so that takes precedent for contributed associations addFactory(new CollectionAnnotationFacetFactory()); addFactory(new ParameterAnnotationFacetFactory()); // must come after DomainObjectAnnotationFacetFactory addFactory(new DisabledFacetOnPropertyDerivedFromRecreatableObjectFacetFactory()); addFactory(new DisabledFacetOnCollectionDerivedFromViewModelFacetFactory()); // must come after DomainObjectAnnotationFacetFactory & MixinFacetFactory addFactory(new NotContributedFacetDerivedFromMixinFacetFactory()); addFactory(new GridFacetFactory()); addFactory(new DomainServiceLayoutFacetFactory()); addFactory(new DomainObjectLayoutFacetFactory()); // must come after MultiLine addFactory(new PropertyLayoutFacetFactory()); addFactory(new ParameterLayoutFacetFactory()); addFactory(new ActionLayoutFacetFactory()); addFactory(new CollectionLayoutFacetFactory()); // must come after DomainObjectLayoutFacetFactory addFactory(new TitleAnnotationFacetFactory()); addFactory(new TitleFacetViaMethodsFactory()); addFactory(new IconFacetMethodFactory()); addFactory(new CssClassFacetMethodFactory()); addFactory(new NamedFacetOnTypeAnnotationFactory()); addFactory(new NamedFacetOnMemberFactory()); addFactory(new NamedFacetOnParameterAnnotationFactory()); addFactory(new NotPersistableFacetAnnotationFactory()); addFactory(new NotPersistableFacetMarkerInterfaceFactory()); addFactory(new ParseableFacetAnnotationElseConfigurationFactory()); addFactory(new PluralAnnotationFacetFactory()); addFactory(new PagedFacetOnTypeAnnotationFactory()); addFactory(new PagedFacetOnCollectionFactory()); addFactory(new PagedFacetOnActionFactory()); // must come after any facets that install titles addFactory(new MaskFacetOnTypeAnnotationFactory()); addFactory(new MaskFacetOnPropertyAnnotationFactory()); addFactory(new MaskFacetOnParameterAnnotationFactory()); // must come after any facets that install titles, and after mask // if takes precedence over mask. addFactory(new RegExFacetOnTypeAnnotationFactory()); addFactory(new TypicalLengthFacetOnPropertyDerivedFromTypeFacetFactory()); addFactory(new TypicalLengthFacetOnParameterDerivedFromTypeFacetFactory()); addFactory(new TypicalLengthFacetOnTypeAnnotationFactory()); addFactory(new TypicalLengthOnPropertyFacetFactory()); addFactory(new TypicalLengthFacetOnParameterAnnotationFactory()); addFactory(new RenderedAsDayBeforeAnnotationOnPropertyFacetFactory()); addFactory(new RenderedAsDayBeforeFacetOnParameterAnnotationFactory()); // built-in value types for Java language addFactory(new BooleanPrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new BooleanWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new BytePrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new ByteWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new ShortPrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new ShortWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new IntPrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new IntWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new LongPrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new LongWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new FloatPrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new FloatWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new DoublePrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new DoubleWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new CharPrimitiveValueFacetUsingSemanticsProviderFactory()); addFactory(new CharWrapperValueFacetUsingSemanticsProviderFactory()); addFactory(new BigIntegerValueFacetUsingSemanticsProviderFactory()); addFactory(new BigDecimalValueFacetUsingSemanticsProviderFactory()); addFactory(new JavaSqlDateValueFacetUsingSemanticsProviderFactory()); addFactory(new JavaSqlTimeValueFacetUsingSemanticsProviderFactory()); addFactory(new JavaUtilDateValueFacetUsingSemanticsProviderFactory()); addFactory(new JavaSqlTimeStampValueFacetUsingSemanticsProviderFactory()); addFactory(new StringValueFacetUsingSemanticsProviderFactory()); addFactory(new URLValueFacetUsingSemanticsProviderFactory()); addFactory(new UUIDValueFacetUsingSemanticsProviderFactory()); addFactory(new JavaAwtImageValueFacetUsingSemanticsProviderFactory()); // applib values addFactory(new BlobValueFacetUsingSemanticsProviderFactory()); addFactory(new ClobValueFacetUsingSemanticsProviderFactory()); addFactory(new DateValueFacetUsingSemanticsProviderFactory()); addFactory(new DateTimeValueFacetUsingSemanticsProviderFactory()); addFactory(new ColorValueFacetUsingSemanticsProviderFactory()); addFactory(new MoneyValueFacetUsingSemanticsProviderFactory()); addFactory(new PasswordValueFacetUsingSemanticsProviderFactory()); addFactory(new PercentageValueFacetUsingSemanticsProviderFactory()); addFactory(new TimeStampValueFacetUsingSemanticsProviderFactory()); addFactory(new TimeValueFacetUsingSemanticsProviderFactory()); addFactory(new ImageValueFacetUsingSemanticsProviderFactory()); // jodatime values addFactory(new JodaLocalDateValueFacetUsingSemanticsProviderFactory()); addFactory(new JodaLocalDateTimeValueFacetUsingSemanticsProviderFactory()); addFactory(new JodaDateTimeValueFacetUsingSemanticsProviderFactory()); // written to not trample over TypeOf if already installed addFactory(new CollectionFacetFactory()); // must come after CollectionFacetFactory addFactory(new ParentedFacetSinceCollectionFactory()); // so we can dogfood the applib "value" types addFactory(new ValueFacetAnnotationOrConfigurationFactory()); addFactory(new DisabledFacetOnPropertyDerivedFromImmutableFactory()); addFactory(new DisabledFacetOnCollectionDerivedFromImmutableFactory()); // should come near the end, after any facets that install PropertySetterFacet have run. addFactory(new DisabledFacetOnPropertyInferredFactory()); addFactory(new ActionChoicesForCollectionParameterFacetFactory()); addFactory(new AuditableFacetMarkerInterfaceFactory()); addFactory(new FacetsFacetAnnotationFactory()); // must be after all named facets and description facets have been installed addFactory(new TranslationFacetFactory()); addFactory(new ViewModelSemanticCheckingFacetFactory()); } }