From fcb7e3a8e29d6def26b06decc504767c5864e5ca Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Sun, 17 Feb 2019 15:11:07 -0500 Subject: Commit before merge --- .../test/ecore/queries/ecorePatterns.vql | 14 +-- .../standalone/test/fam/queries/famPatterns.vql | 103 --------------------- .../standalone/test/fam/queries/famSPatterns.vql | 13 +++ .../standalone/test/fam/queries/famXPatterns.vql | 103 +++++++++++++++++++++ 4 files changed, 123 insertions(+), 110 deletions(-) delete mode 100644 Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famXPatterns.vql (limited to 'Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries') diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/ecore/queries/ecorePatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/ecore/queries/ecorePatterns.vql index 9af35b50..a4718150 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/ecore/queries/ecorePatterns.vql +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/ecore/queries/ecorePatterns.vql @@ -14,13 +14,13 @@ pattern loopInInheritence(a: EClass) { pattern opposite(a:EReference, b: EReference) { EReference.eOpposite(a,b); } -@Constraint(key={a}, severity="error", message="error") -pattern oppositeDifferentClass(a:EReference) { - EReference.eOpposite(a,b); - EReference.eContainingClass(a,aContaining); - EReference.eType(b,bTarget); - aContaining != bTarget; -} +//@Constraint(key={a}, severity="error", message="error") +//pattern oppositeDifferentClass(a:EReference) { +// EReference.eOpposite(a,b); +// EReference.eContainingClass(a,aContaining); +// EReference.eType(b,bTarget); +// aContaining != bTarget; +//} @Constraint(key={a}, severity="error", message="error") pattern nonSymmetricOpposite(a:EReference, b:EReference) { diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql deleted file mode 100644 index 02d34dcd..00000000 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql +++ /dev/null @@ -1,103 +0,0 @@ -package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries - -import "FamMetamodel" - -@Constraint(message="terminatorAndInformation", severity="error", key={T}) -pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { - FunctionalOutput.outgoingLinks(Out,I); - FunctionalOutput.terminator(Out,T); -} or { - InformationLink.to(I,In); - FunctionalInput.terminator(In,T); -} - -@QueryBasedFeature -pattern type(This : Function, Target : FunctionType) = { - find rootElements(_Model, This); - Target == FunctionType::Root; -} or { - neg find parent(_Child, This); - neg find rootElements(_Model, This); - Target == FunctionType::Leaf; -} or { - find parent(This, _Par); - find parent(_Child, This); - Target == FunctionType::Intermediate; -} - -pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = { - FunctionalArchitectureModel.rootElements(Model, Root); -} - -pattern parent(Func : Function, Par : Function) = { - Function.parent(Func, Par); -} - -@QueryBasedFeature -pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) { - FunctionalElement(This); - FunctionalArchitectureModel(Target); -} - -/* -@Constraint(message="noRoot", severity="error", key={fam}) -pattern noRoot(fam: FunctionalArchitectureModel) { - FunctionalArchitectureModel(fam); - neg find hasRoot(_); -} -@Constraint(message="noIntermediate", severity="error", key={fam}) -pattern noInt(fam: FunctionalArchitectureModel) { - FunctionalArchitectureModel(fam); - neg find hasInt(_); -} -@Constraint(message="noLeaf", severity="error", key={fam}) -pattern noLeaf(fam: FunctionalArchitectureModel) { - FunctionalArchitectureModel(fam); - neg find hasLeaf(_); -} -*/ - -/* -@QueryBasedFeature -pattern model(This : FunctionalElement, Target : FunctionalArchitectureModel) = { - find parent+(This, Parent); - find rootElements(Target, Parent); -} or { - find rootElements(Target, This); -} - -pattern interfaceData(FI : FunctionalInterface, FD : FunctionalData) = { - FunctionalInterface.data(FI, FD); -} - -@QueryBasedFeature -pattern inputs(This : FunctionalInterface, Target : FunctionalInput) = { - find interfaceData(This, Target); -} - -@QueryBasedFeature -pattern outputs(This : FunctionalInterface, Target : FunctionalOutput) = { - find interfaceData(This, Target); -} - -@QueryBasedFeature -pattern outgoingLinks(This : FunctionalElement, Target : InformationLink) = { - FunctionalElement.interface.outputs(This, Output); - InformationLink.from(Target, Output); -} - -@QueryBasedFeature -pattern incomingLinks(This : FunctionalElement, Target : InformationLink) = { - FunctionalElement.interface.inputs(This, Input); - InformationLink.to(Target, Input); -} - -@QueryBasedFeature -pattern connects(This : FunctionalElement, Target : FunctionalElement) = { - FunctionalElement.outgoingLinks(This,Link); - FunctionalElement.incomingLinks(Target,Link); -}*/ - -/*pattern frequency(a: Function, b : EInt) { - Function.minimumFrequency(a,b); -}*/ diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql new file mode 100644 index 00000000..307b0f9c --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql @@ -0,0 +1,13 @@ +package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries + +//import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" +import epackage "FamMetamodel" + +@Constraint(message="terminatorAndInformation", severity="error", key={T}) +pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { + FunctionalOutput.outgoingLinks(Out,I); + FunctionalOutput.terminator(Out,T); +} or { + InformationLink.to(I,In); + FunctionalInput.terminator(In,T); +} \ No newline at end of file diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famXPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famXPatterns.vql new file mode 100644 index 00000000..153fec91 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famXPatterns.vql @@ -0,0 +1,103 @@ +package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries + +import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" + +@Constraint(message="terminatorAndInformation", severity="error", key={T}) +pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { + FunctionalOutput.outgoingLinks(Out,I); + FunctionalOutput.terminator(Out,T); +} or { + InformationLink.to(I,In); + FunctionalInput.terminator(In,T); +} + +@QueryBasedFeature +pattern type(This : Function, Target : FunctionType) = { + find rootElements(_Model, This); + Target == FunctionType::Root; +} or { + neg find parent(_Child, This); + neg find rootElements(_Model, This); + Target == FunctionType::Leaf; +} or { + find parent(This, _Par); + find parent(_Child, This); + Target == FunctionType::Intermediate; +} + +pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = { + FunctionalArchitectureModel.rootElements(Model, Root); +} + +pattern parent(Func : Function, Par : Function) = { + Function.parent(Func, Par); +} + +@QueryBasedFeature +pattern model(This:FunctionalElement, Target: FunctionalArchitectureModel) { + FunctionalElement(This); + FunctionalArchitectureModel(Target); +} + +/* +@Constraint(message="noRoot", severity="error", key={fam}) +pattern noRoot(fam: FunctionalArchitectureModel) { + FunctionalArchitectureModel(fam); + neg find hasRoot(_); +} +@Constraint(message="noIntermediate", severity="error", key={fam}) +pattern noInt(fam: FunctionalArchitectureModel) { + FunctionalArchitectureModel(fam); + neg find hasInt(_); +} +@Constraint(message="noLeaf", severity="error", key={fam}) +pattern noLeaf(fam: FunctionalArchitectureModel) { + FunctionalArchitectureModel(fam); + neg find hasLeaf(_); +} +*/ + +/* +@QueryBasedFeature +pattern model(This : FunctionalElement, Target : FunctionalArchitectureModel) = { + find parent+(This, Parent); + find rootElements(Target, Parent); +} or { + find rootElements(Target, This); +} + +pattern interfaceData(FI : FunctionalInterface, FD : FunctionalData) = { + FunctionalInterface.data(FI, FD); +} + +@QueryBasedFeature +pattern inputs(This : FunctionalInterface, Target : FunctionalInput) = { + find interfaceData(This, Target); +} + +@QueryBasedFeature +pattern outputs(This : FunctionalInterface, Target : FunctionalOutput) = { + find interfaceData(This, Target); +} + +@QueryBasedFeature +pattern outgoingLinks(This : FunctionalElement, Target : InformationLink) = { + FunctionalElement.interface.outputs(This, Output); + InformationLink.from(Target, Output); +} + +@QueryBasedFeature +pattern incomingLinks(This : FunctionalElement, Target : InformationLink) = { + FunctionalElement.interface.inputs(This, Input); + InformationLink.to(Target, Input); +} + +@QueryBasedFeature +pattern connects(This : FunctionalElement, Target : FunctionalElement) = { + FunctionalElement.outgoingLinks(This,Link); + FunctionalElement.incomingLinks(Target,Link); +}*/ + +/*pattern frequency(a: Function, b : EInt) { + Function.minimumFrequency(a,b); +}*/ -- cgit v1.2.3-54-g00ecf