Ejemplo n.º 1
0
  public String resolveAnnotationType(Annotation annotation) {
    StringBuffer type = new StringBuffer();
    AnnotationDefinition annotationDefinition = annotation.getAnnotationDefinition();

    if (annotationDefinition == null) {
      logger.warn("Annotation definition for annotation: " + annotation + " is not defined.");
      return type.toString();
    }

    if (annotationDefinition.isMarker()) {
      return type.toString();
    }

    // finally we can process annotation members.
    Object memberValue;
    int memberCount = 0;
    for (AnnotationMemberDefinition memberDefinition :
        annotationDefinition.getAnnotationMembers()) {
      if ((memberValue = annotation.getValue(memberDefinition.getName())) != null) {
        // a value has been set for this member.
        if (memberCount == 0) type.append("(");
        if (memberCount > 0) type.append(", ");
        type.append(resolveMemberType(memberDefinition, memberValue));
        memberCount++;
      }
    }
    if (memberCount > 0) type.append(")");

    return type.toString();
  }
Ejemplo n.º 2
0
  public String resolveMemberType(AnnotationMemberDefinition memberDefinition, Object value) {
    StringBuffer type = new StringBuffer();

    type.append(memberDefinition.getName());
    type.append(" = ");

    if (memberDefinition.isEnum()) {
      type.append(memberDefinition.getClassName());
      type.append(".");
      type.append(value);
    } else if (memberDefinition.isString()) {
      type.append("\"");
      type.append(value);
      type.append("\"");
    } else if (memberDefinition.isPrimitiveType()) {
      // primitive types are wrapped by the java.lang.type.

      if (Character.class.getName().equals(memberDefinition.getClassName())) {
        type.append("'");
        type.append(value.toString());
        type.append("'");
      } else if (Long.class.getName().equals(memberDefinition.getClassName())) {
        type.append(value.toString());
        type.append("L");
      } else if (Float.class.getName().equals(memberDefinition.getClassName())) {
        type.append(value.toString());
        type.append("f");
      } else if (Double.class.getName().equals(memberDefinition.getClassName())) {
        type.append(value.toString());
        type.append("d");
      } else {
        type.append(value.toString());
      }
    }
    return type.toString();
  }