/** * Get the full description of a class by using reflection * * @param clazz * @return */ public static String getDescription(Class<?> clazz) { ClassType type = TypeOracle.Instance.getClassType(clazz); if (type == null) return clazz.getName() + ": Not Reflection Information available."; StringBuilder sb = new StringBuilder(); printAnnotations(type, sb); sb.append(type.getName()).append("\n"); sb.append("\n"); sb.append("Fields:").append("\n"); for (Field field : type.getFields()) { printAnnotations(field, sb); sb.append(field.getTypeName()).append(" ").append(field.getName()).append("\n"); } sb.append("\n"); if (type.findConstructor() != null) { sb.append("Constructor:").append("\n"); sb.append(type.findConstructor().toString()).append("\n"); } else { sb.append("No default Contructor\n"); } sb.append("\n"); sb.append("Methods:").append("\n"); for (Method method : type.getMethods()) { printAnnotations(method, sb); sb.append(method.toString()).append("\n"); } return sb.toString(); }