From 250722c453223a238192fda8db9e692ea776afc7 Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Sun, 19 May 2019 04:57:59 -0400 Subject: REALMET: first impl of n'hood visualis. minor bug with adding outgng 0s. --- .../metrics/examples/.CSERposterSample.xtendbin | Bin 0 -> 7376 bytes .../realistic/metrics/examples/.gitignore | 1 + .../metrics/examples/CSERposterSample.java | 103 +++++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/CSERposterSample.java (limited to 'Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill') diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin new file mode 100644 index 00000000..2db9fecc Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin differ diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore new file mode 100644 index 00000000..b5da4aad --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore @@ -0,0 +1 @@ +/.CSERposterSample.java._trace diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/CSERposterSample.java b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/CSERposterSample.java new file mode 100644 index 00000000..ee5069d7 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/CSERposterSample.java @@ -0,0 +1,103 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.examples; + +import com.google.common.collect.Iterables; +import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage; +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; +import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; +import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.AbstractNodeDescriptor; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.Neighbourhood2Gml; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.NeighbourhoodWithTraces; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml; +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; +import java.io.PrintWriter; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; +import linkedList.LinkedListPackage; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EEnumLiteral; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.Exceptions; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.InputOutput; +import org.eclipse.xtext.xbase.lib.IterableExtensions; + +@SuppressWarnings("all") +public class CSERposterSample { + private final static InstanceModel2PartialInterpretation partialInterpretation2Logic = new InstanceModel2PartialInterpretation(); + + private final static PartialInterpretation2ImmutableTypeLattice neighbourhoodComputer = new PartialInterpretation2ImmutableTypeLattice(); + + private final static Ecore2Logic ecore2Logic = new Ecore2Logic(); + + private final static PartialInterpretation2Gml partialVisualizer = new PartialInterpretation2Gml(); + + private final static Neighbourhood2Gml neighbourhoodVisualizer = new Neighbourhood2Gml(); + + private final static int depth = 1; + + public static void main(final String[] args) { + try { + Map _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); + XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); + _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl); + YakindummPackage.eINSTANCE.eClass(); + LinkedListPackage.eINSTANCE.eClass(); + ReteEngine.class.getClass(); + final String outputs = "outputs"; + final String instModName = "realisticModel"; + StringConcatenation _builder = new StringConcatenation(); + _builder.append("resources"); + final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); + final EObject model = workspace.readModel(EObject.class, (instModName + ".xmi")); + final EPackage pckg = model.eClass().getEPackage(); + List _list = IterableExtensions.toList(Iterables.filter(pckg.getEClassifiers(), EClass.class)); + Set _emptySet = Collections.emptySet(); + List _list_1 = IterableExtensions.toList(Iterables.filter(pckg.getEClassifiers(), EEnum.class)); + final Function1> _function = (EEnum it) -> { + return it.getELiterals(); + }; + List _list_2 = IterableExtensions.toList(Iterables.concat(IterableExtensions.>map(Iterables.filter(pckg.getEClassifiers(), EEnum.class), _function))); + final Function1> _function_1 = (EClass it) -> { + return it.getEReferences(); + }; + List _list_3 = IterableExtensions.toList(Iterables.concat(IterableExtensions.>map(Iterables.filter(pckg.getEClassifiers(), EClass.class), _function_1))); + final Function1> _function_2 = (EClass it) -> { + return it.getEAttributes(); + }; + List _list_4 = IterableExtensions.toList(Iterables.concat(IterableExtensions.>map(Iterables.filter(pckg.getEClassifiers(), EClass.class), _function_2))); + final EcoreMetamodelDescriptor metamodel = new EcoreMetamodelDescriptor(_list, _emptySet, + false, _list_1, _list_2, _list_3, _list_4); + Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); + final TracedOutput metamodelTransformationOutput = CSERposterSample.ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); + final PartialInterpretation partialModelOutput = CSERposterSample.partialInterpretation2Logic.transform(metamodelTransformationOutput, model.eResource(), false); + final PrintWriter writer = new PrintWriter((((outputs + "//") + instModName) + "MODEL.gml")); + writer.print(CSERposterSample.partialVisualizer.transform(partialModelOutput)); + writer.close(); + final NeighbourhoodWithTraces, AbstractNodeDescriptor> hood = CSERposterSample.neighbourhoodComputer.createRepresentation(partialModelOutput, CSERposterSample.depth, Integer.MAX_VALUE, Integer.MAX_VALUE); + final PrintWriter w2 = new PrintWriter((((outputs + "/") + instModName) + "NEIGHBOURHOOD.gml")); + w2.print(CSERposterSample.neighbourhoodVisualizer.transform(hood, partialModelOutput)); + w2.close(); + InputOutput.println("visualization done"); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } +} -- cgit v1.2.3-54-g00ecf