01: /*
02: * Copyright 2006 Luca Garulli (luca.garulli@assetdata.it)
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16:
17: package org.romaframework.aspect.core.annotation;
18:
19: import java.lang.annotation.ElementType;
20: import java.lang.annotation.Retention;
21: import java.lang.annotation.RetentionPolicy;
22: import java.lang.annotation.Target;
23:
24: @Target({ElementType.FIELD,ElementType.METHOD})
25: @Retention(RetentionPolicy.RUNTIME)
26: public @interface CoreField {
27:
28: /**
29: * Embedded type class. If the field is a collection, this attribute expresses the field contained in. Specifying this attribute
30: * will override the default type self-detected using reflection.
31: *
32: * @return Embedded class instance, if any
33: */
34: Class<?> embeddedType() default Object.class;
35:
36: /**
37: * Defines if the linked instance is embedded to the object. For complex types (not primitive types) default is false. If is false
38: * means the linked object is linked.
39: *
40: * @return AnnotationConstants.TRUE, AnnotationConstants.FALSE or AnnotationConstants.UNSETTED
41: */
42: byte embedded() default AnnotationConstants.UNSETTED;
43:
44: /**
45: * Tell to use or not the runtime type found. By default is false, meaning the type found using the reflection is taken. If is
46: * setted to true then the runtime type is taken. Useful if you want to display the real implementation object fields and actions
47: * and not that defined in the interface or abstract class.
48: *
49: * @return AnnotationConstants.TRUE, AnnotationConstants.FALSE or AnnotationConstants.UNSETTED
50: */
51: byte useRuntimeType() default AnnotationConstants.UNSETTED;
52: }
|