Merge pull request #67 from Echtzeitsysteme/hotfix/fixes-wrong-rs-clear

Fixes broken ResourceSet reset for all ResourceSet-based model generators
This commit is contained in:
Maximilian Kratz 2024-04-19 12:57:40 +02:00 committed by GitHub
commit a6ff6e7a33
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 26 additions and 5 deletions

View file

@ -33,6 +33,7 @@ public class MultiLayeredInheritenceRSInitTest extends AMultiLayeredInheritenceT
@BeforeEach
public void resetModel() {
gen = new MultiLayeredInheritenceResourceSetModelGenerator();
((MultiLayeredInheritenceResourceSetModelGenerator) gen).init();
gen.reset();
final ResourceSet model = ((MultiLayeredInheritenceResourceSetModelGenerator) gen).getResourceSet();
con = new MultiLayeredInheritenceRSInitConnector(model);

View file

@ -24,7 +24,14 @@ public class MultiLayeredInheritenceResourceSetModelGenerator extends AMultiLaye
@Override
public void reset() {
init();
clearResourceSet();
createModel();
}
private void createModel() {
final Root root = MultilayeredinheritencemodelFactory.eINSTANCE.createRoot();
resourceSet.getResources().get(0).getContents().add(root);
}
@Override
@ -51,8 +58,8 @@ public class MultiLayeredInheritenceResourceSetModelGenerator extends AMultiLaye
getObjects().add(c);
}
private void init() {
resourceSet.getResources().clear();
public void init() {
clearResourceSet();
final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
reg.getExtensionToFactoryMap().put("xmi", new SmartEMFResourceFactoryImpl("../"));
@ -72,5 +79,9 @@ public class MultiLayeredInheritenceResourceSetModelGenerator extends AMultiLaye
public ResourceSet getResourceSet() {
return resourceSet;
}
private void clearResourceSet() {
resourceSet.getResources().forEach(r -> r.getContents().clear());
}
}

View file

@ -30,13 +30,17 @@ public class AllBuildResourceSetModelGenerator {
}
private void init() {
resourceSet.getResources().clear();
clearResourceSet();
final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
reg.getExtensionToFactoryMap().put("xmi", new SmartEMFResourceFactoryImpl("../"));
resourceSet.getPackageRegistry().put(ModelPackage.eINSTANCE.getNsURI(), ModelPackage.eINSTANCE);
resourceSet.createResource(URI.createURI("model.xmi"));
createModel();
}
private void createModel() {
final Root root = ModelFactory.eINSTANCE.createRoot();
final Container subCntr = ModelFactory.eINSTANCE.createSubstrateContainer();
subCntr.setName(SUB_NAME);
@ -106,7 +110,12 @@ public class AllBuildResourceSetModelGenerator {
}
public void reset() {
init();
clearResourceSet();
createModel();
}
private void clearResourceSet() {
resourceSet.getResources().forEach(r -> r.getContents().clear());
}
}