diff --git a/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNE.java b/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNE.java index 1f2925ba..c731037f 100644 --- a/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNE.java +++ b/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNE.java @@ -1,12 +1,13 @@ package org.emoflon.gips.gipsl.examples.mdvne; -import gips.examples.dependencies.GipsExamplesLogger; import java.io.IOException; import org.eclipse.emf.common.util.URI; import org.emoflon.gips.core.milp.SolverOutput; import org.emoflon.gips.gipsl.examples.mdvne.api.gips.MdvneGipsAPI; +import gips.examples.dependencies.GipsExamplesLogger; + public class ExampleMdVNE extends GipsExamplesLogger { public static void main(final String[] args) { diff --git a/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNESorted.java b/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNESorted.java new file mode 100644 index 00000000..9d4e5019 --- /dev/null +++ b/org.emoflon.gips.gipsl.examples.mdvne/src/org/emoflon/gips/gipsl/examples/mdvne/ExampleMdVNESorted.java @@ -0,0 +1,51 @@ +package org.emoflon.gips.gipsl.examples.mdvne; + +import gips.examples.dependencies.GipsExamplesLogger; +import java.io.IOException; + +import org.eclipse.emf.common.util.URI; +import org.emoflon.gips.core.gt.PatternMatch2MappingSorterByURI; +import org.emoflon.gips.core.milp.ConstraintSorterByName; +import org.emoflon.gips.core.milp.SolverOutput; +import org.emoflon.gips.gipsl.examples.mdvne.api.gips.MdvneGipsAPI; + +public class ExampleMdVNESorted extends GipsExamplesLogger { + + public static void main(final String[] args) { + // Create new MdVNE Gips API and load a model + final MdvneGipsAPI api = new MdvneGipsAPI(); + api.init(URI.createFileURI("./resources/example-models/model-in.xmi")); + api.getTracer().enableTracing(true); + api.getEclipseIntegrationConfig().setSolutionValuesSynchronizationEnabled(true); + + api.getSolverConfig().setEnableLpOutput(true); + api.getSolverConfig().setLpPath("output.lp"); + + api.setMatchSorter(new PatternMatch2MappingSorterByURI()); + api.setConstraintSorter(new ConstraintSorterByName()); + + // Build the ILP problem (including updates) + api.buildProblem(true); + final SolverOutput output = api.solveProblem(); + logger.info("Solver status: " + output.status()); + logger.info("Objective value: " + output.objectiveValue()); + + api.getSrv2srv().applyNonZeroMappings(); + api.getSw2node().applyNonZeroMappings(); + api.getL2p().applyNonZeroMappings(); + api.getL2s().applyNonZeroMappings(); + api.getNet2net().applyNonZeroMappings(); + + try { + api.saveResult("./resources/example-models/model-out.xmi"); + } catch (final IOException e) { + e.printStackTrace(); + } + + api.terminate(); + + logger.info("GIPS run finished."); + System.exit(0); + } + +}