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();
  }