001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019
020 package org.apache.isis.progmodels.dflt;
021
022 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelAbstract;
023 import org.apache.isis.core.progmodel.facets.actions.debug.annotation.DebugAnnotationFacetFactory;
024 import org.apache.isis.core.progmodel.facets.actions.defaults.method.ActionDefaultsFacetFactory;
025 import org.apache.isis.core.progmodel.facets.actions.executed.annotation.ExecutedAnnotationFacetFactory;
026 import org.apache.isis.core.progmodel.facets.actions.executed.prefix.ExecutedViaNamingConventionFacetFactory;
027 import org.apache.isis.core.progmodel.facets.actions.exploration.annotation.ExplorationAnnotationFacetFactory;
028 import org.apache.isis.core.progmodel.facets.actions.idempotent.IdempotentAnnotationFacetFactory;
029 import org.apache.isis.core.progmodel.facets.actions.invoke.ActionInvocationFacetFactory;
030 import org.apache.isis.core.progmodel.facets.actions.notcontributed.annotation.NotContributedAnnotationFacetFactory;
031 import org.apache.isis.core.progmodel.facets.actions.notinservicemenu.annotation.NotInServiceMenuAnnotationFacetFactory;
032 import org.apache.isis.core.progmodel.facets.actions.notinservicemenu.method.NotInServiceMenuMethodFacetFactory;
033 import org.apache.isis.core.progmodel.facets.actions.prototype.annotation.PrototypeAnnotationFacetFactory;
034 import org.apache.isis.core.progmodel.facets.actions.queryonly.QueryOnlyAnnotationFacetFactory;
035 import org.apache.isis.core.progmodel.facets.actions.typeof.annotation.TypeOfAnnotationForActionsFacetFactory;
036 import org.apache.isis.core.progmodel.facets.actions.validate.method.ActionValidationFacetViaValidateMethodFacetFactory;
037 import org.apache.isis.core.progmodel.facets.collections.accessor.CollectionAccessorFacetFactory;
038 import org.apache.isis.core.progmodel.facets.collections.aggregated.AggregatedIfCollectionFacetFactory;
039 import org.apache.isis.core.progmodel.facets.collections.clear.CollectionClearFacetFactory;
040 import org.apache.isis.core.progmodel.facets.collections.collection.CollectionFacetFactory;
041 import org.apache.isis.core.progmodel.facets.collections.disabled.fromimmutable.DisabledFacetForCollectionDerivedFromImmutableTypeFacetFactory;
042 import org.apache.isis.core.progmodel.facets.collections.modify.CollectionAddRemoveAndValidateFacetFactory;
043 import org.apache.isis.core.progmodel.facets.collections.notpersisted.annotation.NotPersistedAnnotationForCollectionFacetFactory;
044 import org.apache.isis.core.progmodel.facets.collections.typeof.TypeOfAnnotationForCollectionsFacetFactory;
045 import org.apache.isis.core.progmodel.facets.fallback.FallbackFacetFactory;
046 import org.apache.isis.core.progmodel.facets.members.describedas.annotation.DescribedAsAnnotationOnMemberFacetFactory;
047 import org.apache.isis.core.progmodel.facets.members.describedas.staticmethod.DescribedAsFacetViaDescriptionMethodFacetFactory;
048 import org.apache.isis.core.progmodel.facets.members.disable.annotation.DisabledAnnotationFacetFactory;
049 import org.apache.isis.core.progmodel.facets.members.disable.forsession.DisabledFacetViaDisableForSessionMethodFacetFactory;
050 import org.apache.isis.core.progmodel.facets.members.disable.method.DisabledFacetViaDisableMethodFacetFactory;
051 import org.apache.isis.core.progmodel.facets.members.disable.staticmethod.DisabledFacetViaProtectMethodFacetFactory;
052 import org.apache.isis.core.progmodel.facets.members.hide.annotation.HiddenAnnotationForMemberFacetFactory;
053 import org.apache.isis.core.progmodel.facets.members.hide.forsession.HiddenFacetViaHideForSessionMethodFacetFactory;
054 import org.apache.isis.core.progmodel.facets.members.hide.method.HiddenFacetViaHideMethodFacetFactory;
055 import org.apache.isis.core.progmodel.facets.members.hide.staticmethod.HiddenFacetViaAlwaysHideMethodFacetFactory;
056 import org.apache.isis.core.progmodel.facets.members.named.annotation.NamedAnnotationOnMemberFacetFactory;
057 import org.apache.isis.core.progmodel.facets.members.named.staticmethod.NamedFacetViaNameMethodFacetFactory;
058 import org.apache.isis.core.progmodel.facets.members.order.MemberOrderAnnotationFacetFactory;
059 import org.apache.isis.core.progmodel.facets.object.aggregated.annotation.AggregatedAnnotationFacetFactory;
060 import org.apache.isis.core.progmodel.facets.object.bounded.annotation.BoundedAnnotationFacetFactory;
061 import org.apache.isis.core.progmodel.facets.object.bounded.markerifc.BoundedMarkerInterfaceFacetFactory;
062 import org.apache.isis.core.progmodel.facets.object.callbacks.create.CreatedCallbackFacetFactory;
063 import org.apache.isis.core.progmodel.facets.object.callbacks.load.LoadCallbackFacetFactory;
064 import org.apache.isis.core.progmodel.facets.object.callbacks.persist.PersistCallbackFacetFactory;
065 import org.apache.isis.core.progmodel.facets.object.callbacks.persist.PersistCallbackViaSaveMethodFacetFactory;
066 import org.apache.isis.core.progmodel.facets.object.callbacks.remove.RemoveCallbackFacetFactory;
067 import org.apache.isis.core.progmodel.facets.object.callbacks.update.UpdateCallbackFacetFactory;
068 import org.apache.isis.core.progmodel.facets.object.choices.enums.EnumFacetFactory;
069 import org.apache.isis.core.progmodel.facets.object.defaults.annotation.DefaultedAnnotationFacetFactory;
070 import org.apache.isis.core.progmodel.facets.object.describedas.annotation.DescribedAsAnnotationOnTypeFacetFactory;
071 import org.apache.isis.core.progmodel.facets.object.dirty.method.DirtyMethodsFacetFactory;
072 import org.apache.isis.core.progmodel.facets.object.disabled.method.DisabledObjectViaDisabledMethodFacetFactory;
073 import org.apache.isis.core.progmodel.facets.object.encodeable.EncodableAnnotationFacetFactory;
074 import org.apache.isis.core.progmodel.facets.object.facets.annotation.FacetsAnnotationFacetFactory;
075 import org.apache.isis.core.progmodel.facets.object.hidden.HiddenAnnotationForTypeFacetFactory;
076 import org.apache.isis.core.progmodel.facets.object.hidden.method.HiddenObjectViaHiddenMethodFacetFactory;
077 import org.apache.isis.core.progmodel.facets.object.icon.method.IconMethodFacetFactory;
078 import org.apache.isis.core.progmodel.facets.object.ignore.annotation.RemoveIgnoreAnnotationMethodsFacetFactory;
079 import org.apache.isis.core.progmodel.facets.object.ignore.isis.RemoveSetDomainObjectContainerMethodFacetFactory;
080 import org.apache.isis.core.progmodel.facets.object.ignore.isis.RemoveStaticGettersAndSettersFacetFactory;
081 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.IteratorFilteringFacetFactory;
082 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveGetClassMethodFacetFactory;
083 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveInitMethodFacetFactory;
084 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveJavaLangComparableMethodsFacetFactory;
085 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveJavaLangObjectMethodsFacetFactory;
086 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.RemoveSuperclassMethodsFacetFactory;
087 import org.apache.isis.core.progmodel.facets.object.ignore.javalang.SyntheticMethodFilteringFacetFactory;
088 import org.apache.isis.core.progmodel.facets.object.immutable.annotation.ImmutableAnnotationFacetFactory;
089 import org.apache.isis.core.progmodel.facets.object.immutable.markerifc.ImmutableMarkerInterfacesFacetFactory;
090 import org.apache.isis.core.progmodel.facets.object.mask.annotation.MaskAnnotationForTypeFacetFactory;
091 import org.apache.isis.core.progmodel.facets.object.maxlen.annotation.MaxLengthAnnotationForTypeFacetFactory;
092 import org.apache.isis.core.progmodel.facets.object.multiline.annotation.MultiLineAnnotationOnTypeFacetFactory;
093 import org.apache.isis.core.progmodel.facets.object.named.annotation.NamedAnnotationOnTypeFacetFactory;
094 import org.apache.isis.core.progmodel.facets.object.named.staticmethod.NamedFacetViaSingularNameStaticMethodFacetFactory;
095 import org.apache.isis.core.progmodel.facets.object.notpersistable.NotPersistableAnnotationFacetFactory;
096 import org.apache.isis.core.progmodel.facets.object.notpersistable.NotPersistableMarkerInterfacesFacetFactory;
097 import org.apache.isis.core.progmodel.facets.object.orderactions.ActionOrderAnnotationFacetFactory;
098 import org.apache.isis.core.progmodel.facets.object.orderfields.FieldOrderAnnotationFacetFactory;
099 import org.apache.isis.core.progmodel.facets.object.parseable.ParseableFacetFactory;
100 import org.apache.isis.core.progmodel.facets.object.plural.annotation.PluralAnnotationFacetFactory;
101 import org.apache.isis.core.progmodel.facets.object.plural.staticmethod.PluralMethodFacetFactory;
102 import org.apache.isis.core.progmodel.facets.object.regex.annotation.RegExFacetAnnotationForTypeFacetFactory;
103 import org.apache.isis.core.progmodel.facets.object.stable.annotation.StableAnnotationFacetFactory;
104 import org.apache.isis.core.progmodel.facets.object.title.TitleMethodFacetFactory;
105 import org.apache.isis.core.progmodel.facets.object.title.annotation.TitleAnnotationFacetFactory;
106 import org.apache.isis.core.progmodel.facets.object.typicallen.annotation.TypicalLengthAnnotationOnTypeFacetFactory;
107 import org.apache.isis.core.progmodel.facets.object.validate.method.ValidateObjectViaValidateMethodFacetFactory;
108 import org.apache.isis.core.progmodel.facets.object.validperspec.MustSatisfySpecificationOnTypeFacetFactory;
109 import org.apache.isis.core.progmodel.facets.object.validprops.ObjectValidPropertiesFacetFactory;
110 import org.apache.isis.core.progmodel.facets.object.value.annotation.ValueFacetFactory;
111 import org.apache.isis.core.progmodel.facets.param.choices.enums.ParameterChoicesFacetDerivedFromChoicesFacetFacetFactory;
112 import org.apache.isis.core.progmodel.facets.param.choices.method.ActionChoicesFacetFactory;
113 import org.apache.isis.core.progmodel.facets.param.choices.methodnum.ActionParameterChoicesFacetFactory;
114 import org.apache.isis.core.progmodel.facets.param.defaults.fromtype.ParameterDefaultDerivedFromTypeFacetFactory;
115 import org.apache.isis.core.progmodel.facets.param.defaults.methodnum.ActionParameterDefaultsFacetFactory;
116 import org.apache.isis.core.progmodel.facets.param.describedas.annotation.DescribedAsAnnotationOnParameterFacetFactory;
117 import org.apache.isis.core.progmodel.facets.param.mandatory.annotation.OptionalAnnotationForParameterFacetFactory;
118 import org.apache.isis.core.progmodel.facets.param.mandatory.dflt.MandatoryDefaultForParametersFacetFactory;
119 import org.apache.isis.core.progmodel.facets.param.multiline.annotation.MultiLineAnnotationOnParameterFacetFactory;
120 import org.apache.isis.core.progmodel.facets.param.named.annotation.NamedAnnotationOnParameterFacetFactory;
121 import org.apache.isis.core.progmodel.facets.param.typicallen.annotation.TypicalLengthAnnotationOnParameterFacetFactory;
122 import org.apache.isis.core.progmodel.facets.param.typicallen.fromtype.TypicalLengthFacetForParameterDerivedFromTypeFacetFactory;
123 import org.apache.isis.core.progmodel.facets.param.validate.maskannot.MaskAnnotationForParameterFacetFactory;
124 import org.apache.isis.core.progmodel.facets.param.validate.maxlenannot.MaxLengthAnnotationForParameterFacetFactory;
125 import org.apache.isis.core.progmodel.facets.param.validate.perspec.MustSatisfySpecificationOnParameterFacetFactory;
126 import org.apache.isis.core.progmodel.facets.param.validate.regexannot.RegExFacetAnnotationForParameterFacetFactory;
127 import org.apache.isis.core.progmodel.facets.properties.accessor.PropertyAccessorFacetFactory;
128 import org.apache.isis.core.progmodel.facets.properties.choices.enums.PropertyChoicesFacetDerivedFromChoicesFacetFacetFactory;
129 import org.apache.isis.core.progmodel.facets.properties.choices.method.PropertyChoicesFacetFactory;
130 import org.apache.isis.core.progmodel.facets.properties.defaults.fromtype.PropertyDefaultDerivedFromTypeFacetFactory;
131 import org.apache.isis.core.progmodel.facets.properties.defaults.method.PropertyDefaultFacetFactory;
132 import org.apache.isis.core.progmodel.facets.properties.disabled.fromimmutable.DisabledFacetForPropertyDerivedFromImmutableTypeFacetFactory;
133 import org.apache.isis.core.progmodel.facets.properties.mandatory.annotation.OptionalAnnotationForPropertyFacetFactory;
134 import org.apache.isis.core.progmodel.facets.properties.mandatory.dflt.MandatoryDefaultForPropertiesFacetFactory;
135 import org.apache.isis.core.progmodel.facets.properties.mandatory.staticmethod.PropertyOptionalFacetFactory;
136 import org.apache.isis.core.progmodel.facets.properties.modify.PropertyModifyFacetFactory;
137 import org.apache.isis.core.progmodel.facets.properties.modify.PropertySetAndClearFacetFactory;
138 import org.apache.isis.core.progmodel.facets.properties.multiline.annotation.MultiLineAnnotationOnPropertyFacetFactory;
139 import org.apache.isis.core.progmodel.facets.properties.notpersisted.annotation.NotPersistedAnnotationForPropertyFacetFactory;
140 import org.apache.isis.core.progmodel.facets.properties.typicallen.annotation.TypicalLengthAnnotationOnPropertyFacetFactory;
141 import org.apache.isis.core.progmodel.facets.properties.typicallen.fromtype.TypicalLengthFacetForPropertyDerivedFromTypeFacetFactory;
142 import org.apache.isis.core.progmodel.facets.properties.validate.PropertyValidateDefaultFacetFactory;
143 import org.apache.isis.core.progmodel.facets.properties.validate.PropertyValidateFacetFactory;
144 import org.apache.isis.core.progmodel.facets.properties.validate.maskannot.MaskAnnotationForPropertyFacetFactory;
145 import org.apache.isis.core.progmodel.facets.properties.validate.maxlenannot.MaxLengthAnnotationForPropertyFacetFactory;
146 import org.apache.isis.core.progmodel.facets.properties.validate.perspec.MustSatisfySpecificationOnPropertyFacetFactory;
147 import org.apache.isis.core.progmodel.facets.properties.validate.regexannot.RegExFacetAnnotationForPropertyFacetFactory;
148 import org.apache.isis.core.progmodel.facets.value.bigdecimal.BigDecimalValueTypeFacetFactory;
149 import org.apache.isis.core.progmodel.facets.value.biginteger.BigIntegerValueTypeFacetFactory;
150 import org.apache.isis.core.progmodel.facets.value.booleans.BooleanPrimitiveValueTypeFacetFactory;
151 import org.apache.isis.core.progmodel.facets.value.booleans.BooleanWrapperValueTypeFacetFactory;
152 import org.apache.isis.core.progmodel.facets.value.bytes.BytePrimitiveValueTypeFacetFactory;
153 import org.apache.isis.core.progmodel.facets.value.bytes.ByteWrapperValueTypeFacetFactory;
154 import org.apache.isis.core.progmodel.facets.value.chars.CharPrimitiveValueTypeFacetFactory;
155 import org.apache.isis.core.progmodel.facets.value.chars.CharWrapperValueTypeFacetFactory;
156 import org.apache.isis.core.progmodel.facets.value.color.ColorValueTypeFacetFactory;
157 import org.apache.isis.core.progmodel.facets.value.date.DateValueTypeFacetFactory;
158 import org.apache.isis.core.progmodel.facets.value.datesql.JavaSqlDateValueTypeFacetFactory;
159 import org.apache.isis.core.progmodel.facets.value.datetime.DateTimeValueTypeFacetFactory;
160 import org.apache.isis.core.progmodel.facets.value.dateutil.JavaUtilDateValueTypeFacetFactory;
161 import org.apache.isis.core.progmodel.facets.value.floats.FloatPrimitiveValueTypeFacetFactory;
162 import org.apache.isis.core.progmodel.facets.value.floats.FloatWrapperValueTypeFacetFactory;
163 import org.apache.isis.core.progmodel.facets.value.image.ImageValueTypeFacetFactory;
164 import org.apache.isis.core.progmodel.facets.value.imageawt.JavaAwtImageValueTypeFacetFactory;
165 import org.apache.isis.core.progmodel.facets.value.integer.IntPrimitiveValueTypeFacetFactory;
166 import org.apache.isis.core.progmodel.facets.value.integer.IntWrapperValueTypeFacetFactory;
167 import org.apache.isis.core.progmodel.facets.value.longs.DoublePrimitiveValueTypeFacetFactory;
168 import org.apache.isis.core.progmodel.facets.value.longs.DoubleWrapperValueTypeFacetFactory;
169 import org.apache.isis.core.progmodel.facets.value.longs.LongPrimitiveValueTypeFacetFactory;
170 import org.apache.isis.core.progmodel.facets.value.longs.LongWrapperValueTypeFacetFactory;
171 import org.apache.isis.core.progmodel.facets.value.money.MoneyValueTypeFacetFactory;
172 import org.apache.isis.core.progmodel.facets.value.password.PasswordValueTypeFacetFactory;
173 import org.apache.isis.core.progmodel.facets.value.percentage.PercentageValueTypeFacetFactory;
174 import org.apache.isis.core.progmodel.facets.value.shortint.ShortPrimitiveValueTypeFacetFactory;
175 import org.apache.isis.core.progmodel.facets.value.shortint.ShortWrapperValueTypeFacetFactory;
176 import org.apache.isis.core.progmodel.facets.value.string.StringValueTypeFacetFactory;
177 import org.apache.isis.core.progmodel.facets.value.time.TimeValueTypeFacetFactory;
178 import org.apache.isis.core.progmodel.facets.value.timesql.JavaSqlTimeValueTypeFacetFactory;
179 import org.apache.isis.core.progmodel.facets.value.timestamp.TimeStampValueTypeFacetFactory;
180 import org.apache.isis.core.progmodel.facets.value.timestampsql.JavaSqlTimeStampValueTypeFacetFactory;
181
182 public class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract {
183
184 public ProgrammingModelFacetsJava5() {
185
186 // must be first, so any Facets created can be replaced by other
187 // FacetFactorys later.
188 addFactory(FallbackFacetFactory.class);
189
190 addFactory(IteratorFilteringFacetFactory.class);
191 addFactory(SyntheticMethodFilteringFacetFactory.class);
192 addFactory(RemoveSuperclassMethodsFacetFactory.class);
193 addFactory(RemoveJavaLangObjectMethodsFacetFactory.class);
194 addFactory(RemoveJavaLangComparableMethodsFacetFactory.class);
195 addFactory(RemoveSetDomainObjectContainerMethodFacetFactory.class);
196 addFactory(RemoveInitMethodFacetFactory.class);
197 addFactory(RemoveStaticGettersAndSettersFacetFactory.class);
198 addFactory(RemoveGetClassMethodFacetFactory.class);
199 addFactory(RemoveIgnoreAnnotationMethodsFacetFactory.class);
200
201 // must be before any other FacetFactories that install
202 // MandatoryFacet.class facets
203 addFactory(MandatoryDefaultForPropertiesFacetFactory.class);
204 addFactory(MandatoryDefaultForParametersFacetFactory.class);
205
206 addFactory(PropertyValidateDefaultFacetFactory.class);
207
208 // enum support
209 addFactory(EnumFacetFactory.class);
210 addFactory(ParameterChoicesFacetDerivedFromChoicesFacetFacetFactory.class);
211 addFactory(PropertyChoicesFacetDerivedFromChoicesFacetFacetFactory.class);
212
213 // properties
214 addFactory(PropertyAccessorFacetFactory.class);
215 addFactory(PropertySetAndClearFacetFactory.class);
216 addFactory(PropertyModifyFacetFactory.class); // must come after
217 // PropertySetAndClearFacetFactory
218 addFactory(PropertyValidateFacetFactory.class);
219 addFactory(PropertyChoicesFacetFactory.class);
220 addFactory(PropertyDefaultFacetFactory.class);
221 addFactory(PropertyOptionalFacetFactory.class);
222
223 // collections
224 addFactory(CollectionAccessorFacetFactory.class);
225 addFactory(CollectionClearFacetFactory.class);
226 addFactory(CollectionAddRemoveAndValidateFacetFactory.class);
227
228 // actions
229 addFactory(ActionInvocationFacetFactory.class);
230 addFactory(ActionValidationFacetViaValidateMethodFacetFactory.class);
231 addFactory(ActionChoicesFacetFactory.class);
232 addFactory(ActionParameterChoicesFacetFactory.class);
233 addFactory(ActionDefaultsFacetFactory.class);
234 addFactory(ActionParameterDefaultsFacetFactory.class);
235 addFactory(QueryOnlyAnnotationFacetFactory.class);
236 addFactory(IdempotentAnnotationFacetFactory.class);
237
238 // members in general
239 addFactory(NamedFacetViaNameMethodFacetFactory.class);
240 addFactory(DescribedAsFacetViaDescriptionMethodFacetFactory.class);
241 addFactory(DisabledFacetViaDisableForSessionMethodFacetFactory.class);
242 addFactory(DisabledFacetViaDisableMethodFacetFactory.class);
243 addFactory(DisabledFacetViaProtectMethodFacetFactory.class);
244 addFactory(HiddenFacetViaHideForSessionMethodFacetFactory.class);
245 addFactory(HiddenFacetViaAlwaysHideMethodFacetFactory.class);
246 addFactory(HiddenFacetViaHideMethodFacetFactory.class);
247
248 addFactory(IconMethodFacetFactory.class);
249
250 addFactory(CreatedCallbackFacetFactory.class);
251 addFactory(LoadCallbackFacetFactory.class);
252 addFactory(PersistCallbackViaSaveMethodFacetFactory.class);
253 addFactory(PersistCallbackFacetFactory.class);
254 addFactory(UpdateCallbackFacetFactory.class);
255 addFactory(RemoveCallbackFacetFactory.class);
256
257 addFactory(DirtyMethodsFacetFactory.class);
258 addFactory(ValidateObjectViaValidateMethodFacetFactory.class);
259 addFactory(ObjectValidPropertiesFacetFactory.class);
260 addFactory(PluralMethodFacetFactory.class);
261 addFactory(NamedFacetViaSingularNameStaticMethodFacetFactory.class);
262 addFactory(TitleAnnotationFacetFactory.class);
263 addFactory(TitleMethodFacetFactory.class);
264
265 addFactory(ActionOrderAnnotationFacetFactory.class);
266 addFactory(AggregatedAnnotationFacetFactory.class);
267 addFactory(BoundedAnnotationFacetFactory.class);
268 addFactory(BoundedMarkerInterfaceFacetFactory.class);
269 addFactory(DebugAnnotationFacetFactory.class);
270
271 addFactory(DefaultedAnnotationFacetFactory.class);
272 addFactory(PropertyDefaultDerivedFromTypeFacetFactory.class);
273 addFactory(ParameterDefaultDerivedFromTypeFacetFactory.class);
274
275 addFactory(DescribedAsAnnotationOnTypeFacetFactory.class);
276 addFactory(DescribedAsAnnotationOnMemberFacetFactory.class);
277 addFactory(DescribedAsAnnotationOnParameterFacetFactory.class);
278
279 addFactory(DisabledAnnotationFacetFactory.class);
280 addFactory(EncodableAnnotationFacetFactory.class);
281 addFactory(ExecutedAnnotationFacetFactory.class);
282 addFactory(ExecutedViaNamingConventionFacetFactory.class);
283 addFactory(ExplorationAnnotationFacetFactory.class);
284 addFactory(PrototypeAnnotationFacetFactory.class);
285 addFactory(NotContributedAnnotationFacetFactory.class);
286 addFactory(NotInServiceMenuAnnotationFacetFactory.class);
287 addFactory(NotInServiceMenuMethodFacetFactory.class);
288 addFactory(FieldOrderAnnotationFacetFactory.class);
289
290 addFactory(HiddenAnnotationForTypeFacetFactory.class);
291 addFactory(HiddenAnnotationForMemberFacetFactory.class);
292
293 // KAM
294 addFactory(HiddenObjectViaHiddenMethodFacetFactory.class);
295 addFactory(DisabledObjectViaDisabledMethodFacetFactory.class);
296
297 addFactory(ImmutableAnnotationFacetFactory.class);
298 addFactory(DisabledFacetForPropertyDerivedFromImmutableTypeFacetFactory.class);
299 addFactory(DisabledFacetForCollectionDerivedFromImmutableTypeFacetFactory.class);
300
301 addFactory(ImmutableMarkerInterfacesFacetFactory.class);
302
303 addFactory(StableAnnotationFacetFactory.class);
304
305 addFactory(MaxLengthAnnotationForTypeFacetFactory.class);
306 addFactory(MaxLengthAnnotationForPropertyFacetFactory.class);
307 addFactory(MaxLengthAnnotationForParameterFacetFactory.class);
308
309 addFactory(MemberOrderAnnotationFacetFactory.class);
310
311 addFactory(MustSatisfySpecificationOnTypeFacetFactory.class);
312 addFactory(MustSatisfySpecificationOnPropertyFacetFactory.class);
313 addFactory(MustSatisfySpecificationOnParameterFacetFactory.class);
314
315 addFactory(MultiLineAnnotationOnTypeFacetFactory.class);
316 addFactory(MultiLineAnnotationOnPropertyFacetFactory.class);
317 addFactory(MultiLineAnnotationOnParameterFacetFactory.class);
318
319 addFactory(NamedAnnotationOnTypeFacetFactory.class);
320 addFactory(NamedAnnotationOnMemberFacetFactory.class);
321 addFactory(NamedAnnotationOnParameterFacetFactory.class);
322
323 addFactory(NotPersistableAnnotationFacetFactory.class);
324 addFactory(NotPersistableMarkerInterfacesFacetFactory.class);
325
326 addFactory(NotPersistedAnnotationForCollectionFacetFactory.class);
327 addFactory(NotPersistedAnnotationForPropertyFacetFactory.class);
328
329 addFactory(OptionalAnnotationForPropertyFacetFactory.class);
330 addFactory(OptionalAnnotationForParameterFacetFactory.class);
331
332 addFactory(ParseableFacetFactory.class);
333 addFactory(PluralAnnotationFacetFactory.class);
334
335 // must come after any facets that install titles
336 addFactory(MaskAnnotationForTypeFacetFactory.class);
337 addFactory(MaskAnnotationForPropertyFacetFactory.class);
338 addFactory(MaskAnnotationForParameterFacetFactory.class);
339
340 // must come after any facets that install titles, and after mask
341 // if takes precedence over mask.
342 addFactory(RegExFacetAnnotationForTypeFacetFactory.class);
343 addFactory(RegExFacetAnnotationForPropertyFacetFactory.class);
344 addFactory(RegExFacetAnnotationForParameterFacetFactory.class);
345
346 addFactory(TypeOfAnnotationForCollectionsFacetFactory.class);
347 addFactory(TypeOfAnnotationForActionsFacetFactory.class);
348
349 addFactory(TypicalLengthFacetForPropertyDerivedFromTypeFacetFactory.class);
350 addFactory(TypicalLengthFacetForParameterDerivedFromTypeFacetFactory.class);
351
352 addFactory(TypicalLengthAnnotationOnTypeFacetFactory.class);
353 addFactory(TypicalLengthAnnotationOnPropertyFacetFactory.class);
354 addFactory(TypicalLengthAnnotationOnParameterFacetFactory.class);
355
356 // built-in value types for Java language
357 addFactory(BooleanPrimitiveValueTypeFacetFactory.class);
358 addFactory(BooleanWrapperValueTypeFacetFactory.class);
359 addFactory(BytePrimitiveValueTypeFacetFactory.class);
360 addFactory(ByteWrapperValueTypeFacetFactory.class);
361 addFactory(ShortPrimitiveValueTypeFacetFactory.class);
362 addFactory(ShortWrapperValueTypeFacetFactory.class);
363 addFactory(IntPrimitiveValueTypeFacetFactory.class);
364 addFactory(IntWrapperValueTypeFacetFactory.class);
365 addFactory(LongPrimitiveValueTypeFacetFactory.class);
366 addFactory(LongWrapperValueTypeFacetFactory.class);
367 addFactory(FloatPrimitiveValueTypeFacetFactory.class);
368 addFactory(FloatWrapperValueTypeFacetFactory.class);
369 addFactory(DoublePrimitiveValueTypeFacetFactory.class);
370 addFactory(DoubleWrapperValueTypeFacetFactory.class);
371 addFactory(CharPrimitiveValueTypeFacetFactory.class);
372 addFactory(CharWrapperValueTypeFacetFactory.class);
373 addFactory(BigIntegerValueTypeFacetFactory.class);
374 addFactory(BigDecimalValueTypeFacetFactory.class);
375 addFactory(JavaSqlDateValueTypeFacetFactory.class);
376 addFactory(JavaSqlTimeValueTypeFacetFactory.class);
377 addFactory(JavaUtilDateValueTypeFacetFactory.class);
378 addFactory(JavaSqlTimeStampValueTypeFacetFactory.class);
379 addFactory(StringValueTypeFacetFactory.class);
380
381 // applib values
382 addFactory(DateValueTypeFacetFactory.class);
383 addFactory(DateTimeValueTypeFacetFactory.class);
384 addFactory(ColorValueTypeFacetFactory.class);
385 addFactory(MoneyValueTypeFacetFactory.class);
386 addFactory(PasswordValueTypeFacetFactory.class);
387 addFactory(PercentageValueTypeFacetFactory.class);
388 addFactory(TimeStampValueTypeFacetFactory.class);
389 addFactory(TimeValueTypeFacetFactory.class);
390 addFactory(ImageValueTypeFacetFactory.class);
391 addFactory(JavaAwtImageValueTypeFacetFactory.class);
392
393 // written to not trample over TypeOf if already installed
394 addFactory(CollectionFacetFactory.class);
395 // must come after CollectionFacetFactory
396 addFactory(AggregatedIfCollectionFacetFactory.class);
397
398 // so we can dogfood the NO applib "value" types
399 addFactory(ValueFacetFactory.class);
400
401 addFactory(FacetsAnnotationFacetFactory.class);
402 }
403
404 }