protected boolean definePropertyBeanMethods ( ClassFile cf , SyntheticProperty property ) { TypeDesc propertyType = TypeDesc . forClass ( property . getType ( ) ) ; // Add property get method. final MethodInfo mi = cf . addMethod ( Modifiers . PUBLIC_ABSTRACT , property . getReadMethodName ( ) , propertyType , null ) ; if ( property . getName ( ) != null ) { // Define @Name Annotation ann = mi . addRuntimeVisibleAnnotation ( TypeDesc . forClass ( Name . class ) ) ; ann . putMemberValue ( "value" , property . getName ( ) ) ; } if ( property . isNullable ( ) ) { mi . addRuntimeVisibleAnnotation ( TypeDesc . forClass ( Nullable . class ) ) ; } boolean versioned = false ; if ( property . isVersion ( ) ) { mi . addRuntimeVisibleAnnotation ( TypeDesc . forClass ( Version . class ) ) ; versioned = true ; } if ( property . getAdapter ( ) != null ) { StorablePropertyAdapter adapter = property . getAdapter ( ) ; Annotation ann = mi . addRuntimeVisibleAnnotation ( TypeDesc . forClass ( adapter . getAnnotation ( ) . getAnnotationType ( ) ) ) ; java . lang . annotation . Annotation jann = adapter . getAnnotation ( ) . getAnnotation ( ) ; if ( jann != null ) { new AnnotationBuilder ( ) . visit ( jann , ann ) ; } } List < String > annotationDescs = property . getAccessorAnnotationDescriptors ( ) ; if ( annotationDescs != null && annotationDescs . size ( ) > 0 ) { for ( String desc : annotationDescs ) { new AnnotationDescParser ( desc ) { @ Override protected Annotation buildRootAnnotation ( TypeDesc rootAnnotationType ) { return mi . addRuntimeVisibleAnnotation ( rootAnnotationType ) ; } } . parse ( null ) ; } } // Add property set method. cf . addMethod ( Modifiers . PUBLIC_ABSTRACT , property . getWriteMethodName ( ) , null , new TypeDesc [ ] { propertyType } ) ; return versioned ; }
Add the get & set methods for this property