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