Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public void enterPrule(InputGrammarParser.PruleContext ctx) {
- super.enterPrule(ctx);
- current = new LogEntry();
- var className = ctx.getTokens(InputGrammarLexer.CLASS_NAME);
- var fields = ctx.getTokens(InputGrammarLexer.PARAMETER);
- var isGetSet = ctx.getTokens(InputGrammarLexer.GET_SET);
- var isSingleton = ctx.getTokens(InputGrammarLexer.SINGLETON);
- List<LogEntry.ParameterWrapper> parameters = getParameterWrappers(fields);
- boolean generatesGetters = false;
- boolean generatesSetters = false;
- switch (isGetSet.get(0).getText()) {
- case "get":
- generatesGetters = true;
- break;
- case "set":
- generatesSetters = true;
- break;
- case "getset":
- generatesGetters = true;
- generatesSetters = true;
- break;
- default:
- }
- current.setClassName(className.get(0).getText());
- current.setParameters(parameters);
- current.setShouldGenerateGetters(generatesGetters);
- current.setShouldGenerateSetters(generatesSetters);
- current.setShouldGenerateSingleton(isSingleton.get(0).getText().equals("singleton"));
- }
- private List<LogEntry.ParameterWrapper> getParameterWrappers(List<TerminalNode> fields) {
- List<LogEntry.ParameterWrapper> parameters = new ArrayList<>();
- for (var el : fields){
- String[] parsedElements = el.getText().split("\\s+");
- String fieldName = parsedElements[0].substring(0, parsedElements[0].length()-1);
- String fieldType = parsedElements[1];
- LogEntry.ParameterWrapper parameterWrapper;
- if (parsedElements.length == 4){
- String defaultValue = parsedElements[3].substring(0, parsedElements[3].length()-1);
- parameterWrapper = new LogEntry.ParameterWrapper(fieldName, fieldType, defaultValue);
- }
- else{
- parameterWrapper = new LogEntry.ParameterWrapper(fieldName, fieldType);
- }
- parameters.add(parameterWrapper);
- }
- return parameters;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement