Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion src/main/java/de/vill/main/UVLListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,15 @@
import org.antlr.v4.runtime.Token;

public class UVLListener extends UVLJavaParserBaseListener {
public FeatureModelBuilder fmBuilder = new FeatureModelBuilder();
public FeatureModelBuilder fmBuilder;

public UVLListener() {
this(new FeatureModelBuilder());
}

Comment thread
SundermannC marked this conversation as resolved.
public UVLListener(FeatureModelBuilder fmBuilder) {
this.fmBuilder = fmBuilder;
}
private Set<LanguageLevel> importedLanguageLevels = new HashSet<>(Arrays.asList(LanguageLevel.BOOLEAN_LEVEL));
private Stack<Feature> featureStack = new Stack<>();
private Stack<Group> groupStack = new Stack<>();
Expand Down
17 changes: 15 additions & 2 deletions src/main/java/de/vill/main/UVLModelFactory.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package de.vill.main;

import de.vill.model.*;
import de.vill.model.building.AbstractUVLElementFactory;
import de.vill.model.building.DefaultUVLElementFactory;
import de.vill.model.building.FeatureModelBuilder;
import de.vill.model.building.VariableReference;
import de.vill.model.constraint.*;
import de.vill.model.expression.*;
Expand Down Expand Up @@ -43,10 +46,16 @@ public class UVLModelFactory {

private final Map<LanguageLevel, Class<? extends IConversionStrategy>> conversionStrategiesDrop;
private final Map<LanguageLevel, Class<? extends IConversionStrategy>> conversionStrategiesConvert;
private final AbstractUVLElementFactory elementFactory;

private final List<ParseError> errorList = new LinkedList<>();

public UVLModelFactory() {
this(new DefaultUVLElementFactory());
}

public UVLModelFactory(AbstractUVLElementFactory elementFactory) {
this.elementFactory = elementFactory;
this.conversionStrategiesDrop = new HashMap<>();
this.conversionStrategiesDrop.put(LanguageLevel.GROUP_CARDINALITY, DropGroupCardinality.class);
this.conversionStrategiesDrop.put(LanguageLevel.FEATURE_CARDINALITY, DropFeatureCardinality.class);
Expand Down Expand Up @@ -124,7 +133,7 @@ public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int
}
});

UVLListener uvlListener = new UVLListener();
UVLListener uvlListener = createUVLListener();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(uvlListener, UVLJavaParser.constraintLine());

Expand Down Expand Up @@ -272,6 +281,10 @@ private List<LanguageLevel> getActualLanguageLevelsToRemoveInOrder(FeatureModel
return completeOrderedLevelsToRemove;
}

private UVLListener createUVLListener() {
Comment thread
SundermannC marked this conversation as resolved.
return new UVLListener(new FeatureModelBuilder(elementFactory));
}

private String getPath(String rootPath, Import referencedImport) {
return rootPath + FileSystems.getDefault().getSeparator() + referencedImport.getNamespace().replace(".", FileSystems.getDefault().getSeparator()) + ".uvl";
}
Expand Down Expand Up @@ -301,7 +314,7 @@ public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int
});


UVLListener uvlListener = new UVLListener();
UVLListener uvlListener = createUVLListener();
ParseTreeWalker walker = new ParseTreeWalker();
walker.walk(uvlListener, UVLJavaParser.featureModel());
FeatureModel featureModel = null;
Expand Down
Loading