Advertisement
Guest User

Inspect

a guest
Feb 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.08 KB | None | 0 0
  1.  
  2. import java.awt.image.ReplicateScaleFilter;
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.stream.Collectors;
  8. import java.util.stream.Stream;
  9.  
  10.  
  11. import com.github.javaparser.JavaParser;
  12. import com.github.javaparser.ast.CompilationUnit;
  13. import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
  14. import com.github.javaparser.ast.body.ConstructorDeclaration;
  15. import com.github.javaparser.ast.body.EnumDeclaration;
  16. import com.github.javaparser.ast.body.FieldDeclaration;
  17. import com.github.javaparser.ast.body.MethodDeclaration;
  18. import com.github.javaparser.ast.body.Parameter;
  19. import com.github.javaparser.ast.comments.Comment;
  20.  
  21. public class Inspect {
  22. /*
  23. * Returns the List of Methods contained in a Compilation Unit
  24. * @return List of Methods contained in the Compilation unit
  25. * @param CompilationUnit the Compilation Unit to analyze
  26. *
  27. * */
  28. public static String ExtractMethods(CompilationUnit CompilationUnit)
  29. {
  30. String resultat ="";
  31. List<MethodDeclaration> ListOfMethods= CompilationUnit.findAll(MethodDeclaration.class);
  32. List<ConstructorDeclaration> ListOfConstructors = CompilationUnit.findAll(ConstructorDeclaration.class);
  33. for(ConstructorDeclaration constructor : ListOfConstructors)
  34. {
  35. resultat+="Constucteur :\n";
  36. if(constructor.getParameters().size()>0)
  37. {
  38. resultat +=" Parametres : \n";
  39. for (Parameter parameter : constructor.getParameters()) {
  40. resultat +=" * "+parameter.getNameAsString()+" de type : "+parameter.getTypeAsString()+"\n";
  41. }
  42. }
  43. else resultat+=" Sans parametres.\n";
  44. resultat+="\n";
  45. }
  46. for (MethodDeclaration method : ListOfMethods) {
  47. resultat +="Méthode '"+method.getNameAsString()+"'\n";
  48. resultat +=" Type de retour : "+method.getTypeAsString()+"\n";
  49. if(method.getParameters().size()>0)
  50. {
  51. resultat +=" Parametres : \n";
  52. for (Parameter parameter : method.getParameters()) {
  53. resultat +=" * "+parameter.getNameAsString()+" de type : "+parameter.getTypeAsString()+"\n";
  54. }
  55. }
  56. else resultat+=" Sans parametres.\n";
  57. resultat +="\n";
  58. }
  59. return resultat;
  60. }
  61. public static void getAttributes(CompilationUnit cu) {
  62.  
  63. JavaParser.getStaticConfiguration().setAttributeComments(false);
  64. System.out.println("==> Liste des attributs.\n");
  65. /*Stream resultAtt = (ArrayList) */cu.findAll(FieldDeclaration.class).stream()
  66. .filter(f -> f.isPublic() || f.isPrivate() || f.isStatic() || f.isFinal()|| f.isProtected() )
  67. .forEach(f -> System.out.println(f.getVariable(0)));
  68. // .collect(Collectors.toList());
  69. // FieldDeclaration f = new FieldDeclaration();
  70. //
  71. // System.out.println("==> Liste des attributes.");
  72. // for (int i = 0; i < resultAtt.size(); i++) {
  73. // System.out.println(resultAtt.get(i));
  74. // }
  75. }
  76.  
  77.  
  78. public static void getVariables(CompilationUnit cu) {
  79.  
  80. JavaParser.getStaticConfiguration().setAttributeComments(false);
  81.  
  82. ArrayList resultVar =(ArrayList) cu.findAll(FieldDeclaration.class).stream()
  83. .filter(f -> !f.isPublic() && !f.isPrivate() && !f.isStatic() && !f.isFinal() && !f.isProtected() )
  84. // .forEach(f -> System.out.println("Les variables " + f ));
  85. .collect(Collectors.toList());
  86.  
  87.  
  88. System.out.println("==> Liste des variables.");
  89. for (int i = 0; i < resultVar.size(); i++) {
  90.  
  91. System.out.println(resultVar.get(i));
  92. }
  93.  
  94.  
  95. }
  96. public static void nameClass(CompilationUnit cu){
  97. cu.findAll(ClassOrInterfaceDeclaration.class)
  98. .stream()
  99. .filter(c -> !c.isEnumDeclaration()
  100. && !c.isInterface()
  101. && !c.isAbstract())
  102. .forEach(c -> {
  103. String name = c.getNameAsString();
  104. System.out.println("Class-name : " + name);
  105. });
  106. }
  107.  
  108. public static void methodClass(CompilationUnit cu){
  109. cu.findAll(ClassOrInterfaceDeclaration.class)
  110. .forEach(c -> {
  111. if(c.isPublic()) { System.out.println("Class-encaps : " + "public");}
  112. if(c.isPrivate()) { System.out.println("Class-encaps : " + "private"); }
  113. if(c.isProtected()) { System.out.println("Class-encaps : " + "protected"); }
  114. });
  115. }
  116.  
  117. public static void nameClassAbstract(CompilationUnit cu){
  118. cu.findAll(ClassOrInterfaceDeclaration.class)
  119. .stream()
  120. .filter(c -> !c.isInterface()
  121. && c.isAbstract()
  122. && !c.isEnumDeclaration())
  123. .forEach(c -> {
  124. String name = c.getNameAsString();
  125. System.out.println("Class-abstract-name : " + name);
  126. });
  127. }
  128.  
  129. public static void nameClassInterface(CompilationUnit cu){
  130. cu.findAll(ClassOrInterfaceDeclaration.class)
  131. .stream()
  132. .filter(c -> c.isInterface()
  133. && !c.isAbstract()
  134. && !c.isEnumDeclaration())
  135. .forEach(c -> {
  136. String name = c.getNameAsString();
  137. System.out.println("Class-interface-name : " + name);
  138. });
  139. }
  140.  
  141. public static void nameClassEnum(CompilationUnit cu){
  142. cu.findAll(EnumDeclaration.class)
  143. .stream()
  144. .filter(c -> c.isEnumDeclaration())
  145. .forEach(c -> {
  146. String name = c.getNameAsString();
  147. System.out.println("Class-enum-name : " + name);
  148. });
  149. }
  150.  
  151. public static void typeClassInterfaceOrAbstract(CompilationUnit cu){
  152. cu.findAll(ClassOrInterfaceDeclaration.class)
  153. .forEach(c -> {
  154. if(c.isInterface()) { System.out.println("Class-type : " + "Interface");}
  155. if(c.isAbstract()) { System.out.println("Class-type : " + "Abstract"); }
  156. });
  157. }
  158.  
  159. public static void typeClassEnum(CompilationUnit cu){
  160. cu.findAll(EnumDeclaration.class)
  161. .forEach(c -> {
  162. if(c.isEnumDeclaration())
  163. { System.out.println("Class-type : " + "Enum"); }
  164. });
  165. }
  166. public static void getClasse(CompilationUnit cu) {
  167. nameClassAbstract(cu);
  168. nameClassInterface(cu);
  169. nameClassEnum(cu);
  170. nameClass(cu);
  171. methodClass(cu);
  172. typeClassInterfaceOrAbstract(cu);
  173. typeClassEnum(cu);
  174. }
  175. public static void getComment(CompilationUnit cu) {
  176.  
  177. String[] ss=null;
  178.  
  179. List<Comment> listC=cu.getAllContainedComments();
  180.  
  181. for(Comment c:listC) {
  182.  
  183. ss = c.getContent().split("\n");
  184. String result="";
  185. for(String com : ss)
  186. {
  187. result+=com;
  188. }
  189. System.out.println(result);
  190.  
  191. }
  192. }
  193.  
  194. public static void main(String[] args) throws FileNotFoundException {
  195. Inspect i = new Inspect();
  196. //JavaParser.getStaticConfiguration().setAttributeComments(false);
  197. CompilationUnit cu = JavaParser.parse(new File("MyTestClass.java"));
  198. System.out.println("=> Classe \n");
  199. getClasse(cu);
  200. System.out.println("\n");
  201. System.out.println("--------------------------- \n");
  202. System.out.println("==> Liste des attributs. \n");
  203. System.out.println(ExtractMethods(cu));
  204. System.out.println("--------------------------- \n");
  205. getAttributes(cu);
  206. System.out.println("--------------------------- \n");
  207. getVariables(cu);
  208. System.out.println("\n");
  209. System.out.println("--------------------------- \n");
  210. System.out.println("==> Liste des Commentaires. \n");
  211. getComment(cu);
  212. }
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement