Skip to content
Snippets Groups Projects
Commit 01b2abd2 authored by Chrissi's avatar Chrissi
Browse files

initial commit

parent 97988882
No related branches found
No related tags found
No related merge requests found
Showing
with 553 additions and 0 deletions
*.class
*.log
# sbt
dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
# Scala-IDE
.scala_dependencies
# Eclipse
.project
.classpath
.cache
.cache-main
.settings/
# IntelliJ
.idea/
/bin/
<scalastyle-project-configuration file="/ModelSyncProvider/support/scalastyle_config.xml" enabled="true"></scalastyle-project-configuration>
import sbt.Keys.organization
val scrollVersion = "1.8"
lazy val modelmanagementprovider = (project in file(".")).
settings(
name := "ModelManagementProvider",
organization := "de.tu-dresden.inf.st",
version := "0.1",
scalaVersion := "2.12.8",
sbtVersion := "1.2.8",
libraryDependencies ++= Seq(
"com.github.max-leuthaeuser" %% "scroll" % scrollVersion)
)
File added
sbt.version=1.2.8
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")
package org.rosi_project.model_management.util.query;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.attributes;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.naturalJoin;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.thetaJoin;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.outerJoin;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.outgoing;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.incoming;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.subtype;
import static org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder.supertype;
import java.io.File;
import org.rosi_project.model_sync.model_join.representation.core.AttributePath;
import org.rosi_project.model_sync.model_join.representation.core.ClassResource;
import org.rosi_project.model_sync.model_join.representation.grammar.CompoundKeepBuilder;
import org.rosi_project.model_sync.model_join.representation.grammar.KeepExpression;
import org.rosi_project.model_sync.model_join.representation.grammar.ModelJoinExpression;
import org.rosi_project.model_sync.model_join.representation.util.JoinFactory.AbstractJoinBuilder;
import org.rosi_project.model_sync.model_join.representation.util.ModelJoinBuilder;
import org.rosi_project.model_sync.model_join.representation.writer.FileBasedModelJoinWriter;
public class ModelJoinCreator {
private AbstractJoinBuilder ajb = null;
public AbstractJoinBuilder createNaturalJoin(String start) {
ClassResource classRessource = ClassResource.fromQualifiedName(start);
ajb = naturalJoin().join(classRessource).with(classRessource).as(classRessource);
return ajb;
}
public AbstractJoinBuilder createThetaJoin(String start, String condition) {
ClassResource classRessource = ClassResource.fromQualifiedName(start);
ajb = thetaJoin().where(condition).join(classRessource).with(classRessource).as(classRessource);
return ajb;
}
public AbstractJoinBuilder createOuterJoin(String start, boolean left) {
ClassResource classRessource = ClassResource.fromQualifiedName(start);
if (left) {
ajb = outerJoin().leftOuter().join(classRessource).with(classRessource).as(classRessource);
} else {
ajb = outerJoin().rightOuter().join(classRessource).with(classRessource).as(classRessource);
}
return ajb;
}
public void createAttribute(Object o, String ressourceName, String attrName) {
ClassResource classRessource = ClassResource.fromQualifiedName(ressourceName);
AttributePath attrPath = AttributePath.from(classRessource, attrName);
KeepExpression ke = attributes(attrPath);
if (o instanceof AbstractJoinBuilder) {
((AbstractJoinBuilder) o).keep(ke);
}
if (o instanceof CompoundKeepBuilder) {
((CompoundKeepBuilder) o).keep(ke);
}
}
public CompoundKeepBuilder createOutgoingReference(String ressourceName, String attrName) {
ClassResource classRessource = ClassResource.fromQualifiedName(ressourceName);
AttributePath attrPath = AttributePath.from(classRessource, attrName);
return outgoing(attrPath).as(classRessource);
}
public CompoundKeepBuilder createIncomingReference(String ressourceName, String attrName) {
ClassResource classRessource = ClassResource.fromQualifiedName(ressourceName);
AttributePath attrPath = AttributePath.from(classRessource, attrName);
return incoming(attrPath).as(classRessource);
}
public CompoundKeepBuilder createSubType(String ressourceName) {
ClassResource classRessource = ClassResource.fromQualifiedName(ressourceName);
return subtype(classRessource).as(classRessource);
}
public CompoundKeepBuilder createSuperType(String ressourceName) {
ClassResource classRessource = ClassResource.fromQualifiedName(ressourceName);
return supertype(classRessource).as(classRessource);
}
public void createFile(String fileName) {
if (ajb != null) {
ModelJoinExpression modelJoin = ModelJoinBuilder.createNewModelJoin().add(ajb.done()).build();
File file = new File(fileName);
FileBasedModelJoinWriter writer = new FileBasedModelJoinWriter(file);
writer.write(modelJoin);
}
}
}
package aml
class Attribute(protected var value: String, c_Name: String, c_Id: String) extends CAEXObject(c_Name, c_Id) {
def getValue(): String = {
value
}
def setValue(v: String): Unit = {
value = v
}
override def toString(): String = {
"Attribute:" + " value=" + value + " name=" + name + " id=" + id
}
}
\ No newline at end of file
package aml
abstract class CAEXObject(protected var name: String, protected var id: String) {
def getName(): String = {
name
}
def setName(n: String): Unit = {
name = n
}
def getId(): String = {
id
}
def setId(i: String): Unit = {
id = i
}
override def toString(): String = {
"CAEXObject:" + " name=" + name + " id=" + id
}
}
\ No newline at end of file
package aml
import org.rosi_project.model_management.sum.query.QueryHelper
class HelperCAEXObject(c_Name: String, c_Id: String) extends CAEXObject(c_Name, c_Id) with QueryHelper {
override def equals(that: Any): Boolean = {
that.isInstanceOf[CAEXObject]
}
override def toString(): String = {
"HelperCAEXObject:" + " name=" + name + " id=" + id
}
}
\ No newline at end of file
package aml
class InstanceHierarchy(c_Name: String, c_Id: String) extends CAEXObject(c_Name, c_Id) {
override def toString(): String = {
"InstanceHierarchy:" + " name=" + name + " id=" + id
}
}
\ No newline at end of file
package aml
import org.rosi_project.model_management.sum.compartments.IDirectComposition
class InstanceHierarchyInternalElementsInternalElement(private val sInstance: InstanceHierarchy, private val tInstance: InternalElement) extends IDirectComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[InstanceHierarchyInternalElementsInternalElement " + source + ", " + target + "]"
}
def getSourceIns(): InstanceHierarchy = {
return sInstance
}
def getTargetIns(): InternalElement = {
return tInstance
}
class Source extends IDirectCompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends IDirectCompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package aml
class InternalElement(s_Name: String, s_Id: String) extends SystemUnitClass(s_Name, s_Id) {
override def toString(): String = {
"InternalElement:" + " name=" + name + " id=" + id
}
}
\ No newline at end of file
package aml
import org.rosi_project.model_management.sum.compartments.IDirectAssoziation
class InternalElementBaseSystemUnitSystemUnitClass(private val sInstance: InternalElement, private val tInstance: SystemUnitClass) extends IDirectAssoziation {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[InternalElementBaseSystemUnitSystemUnitClass " + source + ", " + target + "]"
}
def getSourceIns(): InternalElement = {
return sInstance
}
def getTargetIns(): SystemUnitClass = {
return tInstance
}
class Source extends IDirectAssoziationSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends IDirectAssoziationTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package aml
class SystemUnitClass(c_Name: String, c_Id: String) extends CAEXObject(c_Name, c_Id) {
override def toString(): String = {
"SystemUnitClass:" + " name=" + name + " id=" + id
}
}
\ No newline at end of file
package aml
import org.rosi_project.model_management.sum.compartments.IDirectComposition
class SystemUnitClassAttributesAttribute(private val sInstance: SystemUnitClass, private val tInstance: Attribute) extends IDirectComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[SystemUnitClassAttributesAttribute " + source + ", " + target + "]"
}
def getSourceIns(): SystemUnitClass = {
return sInstance
}
def getTargetIns(): Attribute = {
return tInstance
}
class Source extends IDirectCompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends IDirectCompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package aml
import org.rosi_project.model_management.sum.compartments.IDirectComposition
class SystemUnitClassInternalElementsInternalElement(private val sInstance: SystemUnitClass, private val tInstance: InternalElement) extends IDirectComposition {
override def internalInitialize(): Unit = {
this.source = new Source()
this.target = new Target()
sInstance play this.source
tInstance play this.target
}
override def toString(): String = {
"[SystemUnitClassInternalElementsInternalElement " + source + ", " + target + "]"
}
def getSourceIns(): SystemUnitClass = {
return sInstance
}
def getTargetIns(): InternalElement = {
return tInstance
}
class Source extends IDirectCompositionSource {
override def toString(): String = {
"S: (" + sInstance + ")"
}
}
class Target extends IDirectCompositionTarget {
override def toString(): String = {
"T: (" + tInstance + ")"
}
}
}
\ No newline at end of file
package elib
import java.util.Date
class AudioVisualItem(protected var damaged: Boolean, protected var minutesLength: Int, protected var title: String, c_PublicationDate: Date) extends CirculatingItem(c_PublicationDate) {
def getDamaged(): Boolean = {
damaged
}
def setDamaged(d: Boolean): Unit = {
damaged = d
}
def getMinutesLength(): Int = {
minutesLength
}
def setMinutesLength(m: Int): Unit = {
minutesLength = m
}
def getTitle(): String = {
title
}
def setTitle(t: String): Unit = {
title = t
}
override def toString(): String = {
"AudioVisualItem:" + " damaged=" + damaged + " minutesLength=" + minutesLength + " title=" + title + " publicationDate=" + publicationDate
}
}
\ No newline at end of file
package elib
import java.util.Date
class Book(protected var category: BookCategory.Value, protected var pages: Int, protected var title: String, c_PublicationDate: Date) extends CirculatingItem(c_PublicationDate) {
def getCategory(): BookCategory.Value = {
category
}
def setCategory(c: BookCategory.Value): Unit = {
category = c
}
def getPages(): Int = {
pages
}
def setPages(p: Int): Unit = {
pages = p
}
def getTitle(): String = {
title
}
def setTitle(t: String): Unit = {
title = t
}
override def toString(): String = {
"Book:" + " category=" + category + " pages=" + pages + " title=" + title + " publicationDate=" + publicationDate
}
}
\ No newline at end of file
package elib
import org.rosi_project.model_management.sum.compartments.IAssociation
class BookAuthorWriter(private val sInstance: Book, private val tInstance: Writer) 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 = {
"[BookAuthorWriter " + source + ", " + target + "]"
}
def getSourceIns(): Book = {
return sInstance
}
def getTargetIns(): Writer = {
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment