Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. package pl.cogitat.scripting;
  2.  
  3. import java.lang.reflect.Method;
  4. import java.lang.reflect.Parameter;
  5.  
  6. public class GroovyGenerator {
  7. Class analyzedClass;
  8. private String packg;
  9. private String name;
  10.  
  11. public GroovyGenerator(String pckg, String name, Class analyzedClass) {
  12. super();
  13. this.analyzedClass = analyzedClass;
  14. this.packg = pckg;
  15. this.name = name;
  16. }
  17.  
  18.  
  19. public String getName() {
  20. return name;
  21. }
  22.  
  23.  
  24. public void setName(String name) {
  25. this.name = name;
  26. }
  27.  
  28.  
  29. public String getPackg() {
  30. return packg;
  31. }
  32.  
  33.  
  34. public String performGeneration()
  35. {
  36. StringBuilder sb = new StringBuilder();
  37. sb.append("package ").append(packg).append("nn /* Code auto generatedn * do edit what You want n */nn");
  38.  
  39. String parentName = analyzedClass.getSimpleName();
  40. sb.append("class ").append(name).append(" extends ").append(parentName).append(" {n");
  41.  
  42. for(Method m : analyzedClass.getDeclaredMethods())
  43. {
  44. sb.append("def ").append(m.getName()).append("(");
  45. int pcnt = 0;
  46. for(Parameter p:m.getParameters())
  47. {
  48. if(pcnt>0)
  49. sb.append(", ");
  50. sb.append(p.getType().getSimpleName()).append(" ").append(p.getName());
  51. pcnt++;
  52. }
  53. sb.append(")n{n}n");
  54. }
  55.  
  56. sb.append("n}n");
  57. return sb.toString();
  58.  
  59. }
  60. }
  61.  
  62. package my.script
  63.  
  64. /* Code auto generated
  65. * do edit what You want
  66. */
  67.  
  68. class SelfGenerator extends GroovyGenerator {
  69. def getName()
  70. {
  71. }
  72. def setName(String arg0)
  73. {
  74. }
  75. def performGeneration()
  76. {
  77. }
  78. def getPackg()
  79. {
  80. }
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement