Advertisement
Guest User

Untitled

a guest
Apr 25th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. @Override
  2. public void enterPrule(InputGrammarParser.PruleContext ctx) {
  3. super.enterPrule(ctx);
  4. current = new LogEntry();
  5.  
  6. var className = ctx.getTokens(InputGrammarLexer.CLASS_NAME);
  7. var fields = ctx.getTokens(InputGrammarLexer.PARAMETER);
  8. var isGetSet = ctx.getTokens(InputGrammarLexer.GET_SET);
  9. var isSingleton = ctx.getTokens(InputGrammarLexer.SINGLETON);
  10.  
  11. List<LogEntry.ParameterWrapper> parameters = getParameterWrappers(fields);
  12. boolean generatesGetters = false;
  13. boolean generatesSetters = false;
  14. switch (isGetSet.get(0).getText()) {
  15. case "get":
  16. generatesGetters = true;
  17. break;
  18. case "set":
  19. generatesSetters = true;
  20. break;
  21. case "getset":
  22. generatesGetters = true;
  23. generatesSetters = true;
  24. break;
  25. default:
  26. }
  27.  
  28. current.setClassName(className.get(0).getText());
  29. current.setParameters(parameters);
  30. current.setShouldGenerateGetters(generatesGetters);
  31. current.setShouldGenerateSetters(generatesSetters);
  32. current.setShouldGenerateSingleton(isSingleton.get(0).getText().equals("singleton"));
  33.  
  34. }
  35.  
  36. private List<LogEntry.ParameterWrapper> getParameterWrappers(List<TerminalNode> fields) {
  37. List<LogEntry.ParameterWrapper> parameters = new ArrayList<>();
  38. for (var el : fields){
  39. String[] parsedElements = el.getText().split("\\s+");
  40. String fieldName = parsedElements[0].substring(0, parsedElements[0].length()-1);
  41. String fieldType = parsedElements[1];
  42. LogEntry.ParameterWrapper parameterWrapper;
  43. if (parsedElements.length == 4){
  44. String defaultValue = parsedElements[3].substring(0, parsedElements[3].length()-1);
  45. parameterWrapper = new LogEntry.ParameterWrapper(fieldName, fieldType, defaultValue);
  46. }
  47. else{
  48. parameterWrapper = new LogEntry.ParameterWrapper(fieldName, fieldType);
  49. }
  50. parameters.add(parameterWrapper);
  51. }
  52. return parameters;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement