diff --git a/monticore-generator/src/main/java/de/monticore/codegen/cd2java/_symboltable/symbol/SymbolBuilderDecorator.java b/monticore-generator/src/main/java/de/monticore/codegen/cd2java/_symboltable/symbol/SymbolBuilderDecorator.java index 9757a12d30..531229ecc3 100644 --- a/monticore-generator/src/main/java/de/monticore/codegen/cd2java/_symboltable/symbol/SymbolBuilderDecorator.java +++ b/monticore-generator/src/main/java/de/monticore/codegen/cd2java/_symboltable/symbol/SymbolBuilderDecorator.java @@ -12,6 +12,7 @@ import de.monticore.codegen.cd2java._ast.builder.buildermethods.BuilderMutatorMethodDecorator; import de.monticore.codegen.cd2java._symboltable.SymbolTableService; import de.monticore.generating.templateengine.GlobalExtensionManagement; +import de.monticore.generating.templateengine.HookPoint; import de.monticore.generating.templateengine.StringHookPoint; import de.monticore.generating.templateengine.TemplateHookPoint; import de.monticore.types.mcbasictypes._ast.ASTMCType; @@ -74,6 +75,8 @@ public ASTCDClass decorate(final ASTCDClass symbolClass) { ASTCDClass symbolBuilder = builderDecorator.decorate(decoratedSymbolClass); builderDecorator.setPrintBuildMethodTemplate(true); + addAccessModifierDefaultValue(symbolBuilder); + if (hasInheritedSymbol) { // set superclass Map values = symbolTableService.getInheritedSymbolPropertyClasses(Lists.newArrayList(symbolClass)); @@ -142,7 +145,6 @@ protected List createSymbolAttributes(ASTCDClass symbolClass) { attrs.add(this.getCDAttributeFacade().createAttribute(PROTECTED.build(), optionalTypeOfASTNode, AST_NODE_VAR)); ASTCDAttribute accessModifier = this.getCDAttributeFacade().createAttribute(PROTECTED.build(), ACCESS_MODIFIER, "accessModifier"); - this.replaceTemplate(VALUE, accessModifier, new StringHookPoint("= " + ACCESS_MODIFIER_ALL_INCLUSION)); attrs.add(accessModifier); attrs.add(this.getCDAttributeFacade().createAttribute(PROTECTED.build(), @@ -151,6 +153,14 @@ protected List createSymbolAttributes(ASTCDClass symbolClass) { return attrs; } + protected void addAccessModifierDefaultValue(ASTCDClass builder) { + HookPoint defaultVal = new StringHookPoint("= " + ACCESS_MODIFIER_ALL_INCLUSION); + + builder.getCDAttributeList().stream() + .filter(a -> "accessModifier".equals(a.getName())) + .forEach(a -> this.replaceTemplate(VALUE, a, defaultVal)); + } + protected List getMethodsForDefaultAttrs(List defaultAttrs, BuilderMutatorMethodDecorator builderMutatorMethodDecorator) { return defaultAttrs.stream()