private Object parseEnumValue( AnnotationSource javaAnnotationToken, AnnotationValuePairDefinition valuePairDefinition ) { String value = parseLiteralValue( javaAnnotationToken.getLiteralValue( valuePairDefinition.getName() ) ); Object result; if ( value == null ) { return null; } if ( valuePairDefinition.isArray() ) { result = parseEnumArrayValue( value, valuePairDefinition ); } else { result = parseEnumValue( value, valuePairDefinition ); } return result; }
private Object parseAnnotationValue( AnnotationSource javaAnnotationToken, AnnotationValuePairDefinition valuePairDefinition ) throws ModelDriverException { String value = javaAnnotationToken.getLiteralValue( valuePairDefinition.getName() ); AnnotationDefinition annotationDefinition = valuePairDefinition.getAnnotationDefinition(); Object result = null; if ( value == null ) return null; if ( annotationDefinition == null ) { return value; } if ( valuePairDefinition.isArray() ) { AnnotationSource[] javaAnnotationTokenValueArray = javaAnnotationToken.getAnnotationArrayValue( valuePairDefinition.getName() ); List<Annotation> annotationList = new ArrayList<Annotation>(); Annotation annotation; if ( javaAnnotationTokenValueArray != null ) { for ( int i = 0; i < javaAnnotationTokenValueArray.length; i++ ) { annotation = buildAnnotation( annotationDefinition, javaAnnotationTokenValueArray[ i ] ); if ( annotation != null ) { annotationList.add( annotation ); } } } result = annotationList.size() > 0 ? annotationList : null; } else { AnnotationSource javaAnnotationTokenValue = javaAnnotationToken.getAnnotationValue( valuePairDefinition.getName() ); if ( javaAnnotationTokenValue != null ) { result = buildAnnotation( annotationDefinition, javaAnnotationTokenValue ); } } return result; }
private Object parsePrimitiveValue( AnnotationSource javaAnnotationToken, AnnotationValuePairDefinition valuePairDefinition ) { String value = parseLiteralValue( javaAnnotationToken.getLiteralValue( valuePairDefinition.getName() ) ); Object result; if ( value == null ) { return null; } if ( valuePairDefinition.isArray() ) { result = parsePrimitiveArrayValue( value, valuePairDefinition.getClassName(), valuePairDefinition ); } else { result = parsePrimitiveValue( value, valuePairDefinition.getClassName() ); } return result; }
private Object buildAnnotationValue( AnnotationSource javaAnnotationToken, AnnotationValuePairDefinition valuePairDefinition ) throws ModelDriverException { Object result = null; if ( javaAnnotationToken.getLiteralValue( valuePairDefinition.getName() ) != null ) { //there's a value if ( valuePairDefinition.isPrimitiveType() ) { result = parsePrimitiveValue( javaAnnotationToken, valuePairDefinition ); } else if ( valuePairDefinition.isEnum() ) { result = parseEnumValue( javaAnnotationToken, valuePairDefinition ); } else if ( valuePairDefinition.isString() ) { result = parseStringValue( javaAnnotationToken, valuePairDefinition ); } else if ( valuePairDefinition.isClass() ) { result = parseClassValue( javaAnnotationToken, valuePairDefinition ); } else if ( valuePairDefinition.isAnnotation() ) { result = parseAnnotationValue( javaAnnotationToken, valuePairDefinition ); } } return result; }