Skip to content
Snippets Groups Projects
Commit 81a8bc49 authored by Chrissi's avatar Chrissi
Browse files

remove unused RSUM test implementation

+ add scala and java documentation
+ simplify metric computation
parent 2d0afe6f
No related branches found
No related tags found
No related merge requests found
Showing
with 71 additions and 467 deletions
......@@ -21,6 +21,11 @@ import ttc2019.metamodels.bddg.Port;
import ttc2019.metamodels.bddg.Subtree;
import ttc2019.metamodels.bddg.Tree;
/**
* Generate for each BDD from Scala an identical one in Javas generated EMF format and save it in a file.
*
* @author Christopher Werner
*/
public class BddCreationHelper {
private BDD bdd;
......
......@@ -21,6 +21,11 @@ import ttc2019.metamodels.bdd.Port;
import ttc2019.metamodels.bdd.Subtree;
import ttc2019.metamodels.bdd.Tree;
/**
* Generate for each BDT from Scala an identical one in Javas generated EMF format and save it in a file.
*
* @author Christopher Werner
*/
public class BdtCreationHelper {
private BDD bdd;
......
......@@ -17,50 +17,50 @@ public class CreateTTinJava {
private Map<EObject, Row> rows = new HashMap<EObject, Row>();
private Map<EObject, Port> ports = new HashMap<EObject, Port>();
private Map<EObject, Cell> cells = new HashMap<EObject, Cell>();
public void createTruthTable(String name, EObject id) {
truthttable = TTFactory.getTruthTable(name);
}
truthttable = TTFactory.getTruthTable(name);
}
public void createInputPort(String name, EObject id) {
ports.put(id, TTFactory.getInputPort(name));
}
ports.put(id, TTFactory.getInputPort(name));
}
public void createOutputPort(String name, EObject id) {
ports.put(id, TTFactory.getOutputPort(name));
}
ports.put(id, TTFactory.getOutputPort(name));
}
public void createRow(EObject id) {
rows.put(id, TTFactory.getRow());
}
rows.put(id, TTFactory.getRow());
}
public void createCell(Boolean value, EObject id) {
cells.put(id, TTFactory.getCell(value));
}
cells.put(id, TTFactory.getCell(value));
}
public void createTruthTableRowsRow(EObject tt, EObject row) {
Row r = rows.get(row);
truthttable.addRows(r);
r.setOwner(truthttable);
}
Row r = rows.get(row);
truthttable.addRows(r);
r.setOwner(truthttable);
}
public void createTruthTablePortsPort(EObject tt, EObject port) {
Port p = ports.get(port);
truthttable.addPorts(p);
p.setOwner(truthttable);
}
Port p = ports.get(port);
truthttable.addPorts(p);
p.setOwner(truthttable);
}
public void createRowCellsCell(EObject row, EObject cell) {
Cell c = cells.get(cell);
Row r = rows.get(row);
c.setOwner(r);
r.addCells(c);
}
Cell c = cells.get(cell);
Row r = rows.get(row);
c.setOwner(r);
r.addCells(c);
}
public void createCellPortPort(EObject cell, EObject port) {
Cell c = cells.get(cell);
Port p = ports.get(port);
c.setPort(p);
p.addCells(c);
}
Cell c = cells.get(cell);
Port p = ports.get(port);
c.setPort(p);
p.addCells(c);
}
}
......@@ -17,8 +17,21 @@ import org.eclipse.emf.ecore.xmi.impl.XMLParserPoolImpl;
import ttc2019.metamodels.tt.TTPackage;
import ttc2019.metamodels.tt.TruthTable;
/**
* Load the EObject of an incoming Model in two different ways.
* Third time we load and EObject and cast it to a TruthTable.
*
* @author Christopher Werner
*/
public class LoadEObject {
/**
* Simple loading of an EObject without extra Optimization stuff.
* @param pathMeta Path of metamodel
* @param pathInstance Path of model
* @return Instance of EObject
* @throws IOException
*/
public EObject loadSimple(String pathMeta, String pathInstance) throws IOException {
ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
......@@ -32,6 +45,13 @@ public class LoadEObject {
return ressourceModel.getContents().get(0);
}
/**
* Loading an EObject with optimized settings.
* @param pathMeta Path of metamodel
* @param pathInstance Path of model
* @return Instance of EObject
* @throws IOException
*/
public EObject loadOptimized(String pathMeta, String pathInstance) throws IOException {
ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl());
......@@ -51,6 +71,13 @@ public class LoadEObject {
return ressourceModel.getContents().get(0);
}
/**
* Load directly a truth table from the Java representation.
* @param pathMeta Path of metamodel
* @param pathInstance Path of model
* @return Instance of EObject
* @throws IOException
*/
public TruthTable loadOptimizedTruthTable(String pathMeta, String pathInstance) throws IOException {
TTPackage.eINSTANCE.getName();
ResourceSet rs = new ResourceSetImpl();
......
......@@ -19,6 +19,11 @@ import ttc2019.metamodels.tt.Row;
import ttc2019.metamodels.tt.TruthTable;
import ttc2019.metamodels.tt.TTFactory;
/**
* Generate for each TT from Scala an identical one in Javas generated EMF format and save it in a file.
*
* @author Christopher Werner
*/
public class TtCreationHelper {
private TruthTable tt;
......
package sum.bdd
import org.rosi_project.model_management.core.PlayerSync
class Assignment(protected var value: Boolean) extends PlayerSync {
def getValue(): Boolean = {
value
}
def setValue(v: Boolean): Unit = {
value = v
+this changeValue ()
}
override def toString(): String = {
"Assignment:" + " value=" + value
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.compartments.IAssociation
class AssignmentPortOutputPort(private val sInstance: Assignment, private val tInstance: OutputPort) extends IAssociation {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[AssignmentPortOutputPort " + source + ", " + target + "]"
}
def getSourceIns(): Assignment = {
return sInstance
}
def getTargetIns(): OutputPort = {
return tInstance
}
class Source extends IAssociationSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends IAssociationTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.core.PlayerSync
class BDD(protected var name: String) extends PlayerSync {
def getName(): String = {
name
}
def setName(n: String): Unit = {
name = n
+this changeName ()
}
override def toString(): String = {
"BDD:" + " name=" + name
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.compartments.IComposition
class BDDPortsPort(private val sInstance: BDD, private val tInstance: Port) extends IComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[BDDPortsPort " + source + ", " + target + "]"
}
def getSourceIns(): BDD = {
return sInstance
}
def getTargetIns(): Port = {
return tInstance
}
class Source extends ICompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends ICompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.compartments.IComposition
class BDDTreeTree(private val sInstance: BDD, private val tInstance: Tree) extends IComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[BDDTreeTree " + source + ", " + target + "]"
}
def getSourceIns(): BDD = {
return sInstance
}
def getTargetIns(): Tree = {
return tInstance
}
class Source extends ICompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends ICompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.query.QueryHelper
class HelperPort(p_Name: String) extends Port(p_Name) with QueryHelper {
override def equals(that: Any): Boolean = {
that.isInstanceOf[Port]
}
override def toString(): String = {
"HelperPort:" + " name=" + name
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.query.QueryHelper
class HelperTree extends Tree() with QueryHelper {
override def equals(that: Any): Boolean = {
that.isInstanceOf[Tree]
}
override def toString(): String = {
"HelperTree:"
}
}
\ No newline at end of file
package sum.bdd
class InputPort(p_Name: String) extends Port(p_Name) {
override def toString(): String = {
"InputPort:" + " name=" + name
}
}
\ No newline at end of file
package sum.bdd
class Leaf extends Tree() {
override def toString(): String = {
"Leaf:"
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.compartments.IComposition
class LeafAssignmentsAssignment(private val sInstance: Leaf, private val tInstance: Assignment) extends IComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[LeafAssignmentsAssignment " + source + ", " + target + "]"
}
def getSourceIns(): Leaf = {
return sInstance
}
def getTargetIns(): Assignment = {
return tInstance
}
class Source extends ICompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends ICompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package sum.bdd
class OutputPort(p_Name: String) extends Port(p_Name) {
override def toString(): String = {
"OutputPort:" + " name=" + name
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.core.PlayerSync
abstract class Port(protected var name: String) extends PlayerSync {
def getName(): String = {
name
}
def setName(n: String): Unit = {
name = n
+this changeName ()
}
override def toString(): String = {
"Port:" + " name=" + name
}
}
\ No newline at end of file
package sum.bdd
class Subtree extends Tree() {
override def toString(): String = {
"Subtree:"
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.compartments.IAssociation
class SubtreePortInputPort(private val sInstance: Subtree, private val tInstance: InputPort) extends IAssociation {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[SubtreePortInputPort " + source + ", " + target + "]"
}
def getSourceIns(): Subtree = {
return sInstance
}
def getTargetIns(): InputPort = {
return tInstance
}
class Source extends IAssociationSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends IAssociationTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package sum.bdd
import org.rosi_project.model_management.sum.compartments.IComposition
class SubtreeTreeForOneTree(private val sInstance: Subtree, private val tInstance: Tree) extends IComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[SubtreeTreeForOneTree " + source + ", " + target + "]"
}
def getSourceIns(): Subtree = {
return sInstance
}
def getTargetIns(): Tree = {
return tInstance
}
class Source extends ICompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends ICompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment