diff options
Diffstat (limited to 'Tests')
38 files changed, 29607 insertions, 81 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/configs/fam.vsconfig b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/configs/fam.vsconfig index 8137ddf7..e56cf30c 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/configs/fam.vsconfig +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/configs/fam.vsconfig | |||
@@ -3,8 +3,8 @@ import viatra "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPattern | |||
3 | 3 | ||
4 | generate { | 4 | generate { |
5 | metamodel = { package fam } | 5 | metamodel = { package fam } |
6 | // constraints = { package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries} | 6 | constraints = { package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries} |
7 | // partial-model = { "platform:/resource/ca.mcgill.ecse.dslreasoner.standalone.test/instanceModels/famInstance.xmi"} | 7 | partial-model = { "platform:/resource/ca.mcgill.ecse.dslreasoner.standalone.test/instanceModels/famInstance.xmi"} |
8 | solver = ViatraSolver | 8 | solver = ViatraSolver |
9 | scope = { | 9 | scope = { |
10 | #node = 10 | 10 | #node = 10 |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.ecore b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.ecore index 05023c15..d9c8bfef 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.ecore +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/fam.ecore | |||
@@ -8,7 +8,11 @@ | |||
8 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" | 8 | <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface" |
9 | containment="true" eOpposite="#//FunctionalInterface/element"/> | 9 | containment="true" eOpposite="#//FunctionalInterface/element"/> |
10 | <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel" | 10 | <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel" |
11 | volatile="true" transient="true" derived="true"/> | 11 | volatile="true" transient="true" derived="true"> |
12 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | ||
13 | <details key="patternFQN" value="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model"/> | ||
14 | </eAnnotations> | ||
15 | </eStructuralFeatures> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function" | 16 | <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function" |
13 | eOpposite="#//Function/subElements"/> | 17 | eOpposite="#//Function/subElements"/> |
14 | </eClassifiers> | 18 | </eClassifiers> |
@@ -20,7 +24,11 @@ | |||
20 | <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" | 24 | <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1" |
21 | eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/> | 25 | eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/> |
22 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType" | 26 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType" |
23 | changeable="false" volatile="true" transient="true" derived="true"/> | 27 | changeable="false" volatile="true" transient="true" derived="true"> |
28 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | ||
29 | <details key="patternFQN" value="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type"/> | ||
30 | </eAnnotations> | ||
31 | </eStructuralFeatures> | ||
24 | </eClassifiers> | 32 | </eClassifiers> |
25 | <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator"> | 33 | <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator"> |
26 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData" | 34 | <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData" |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt index 0e9e29c6..28b10066 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/errors.txt | |||
@@ -430,4 +430,19 @@ Error occured (UnsupportedOperationException): Can not transform pattern "ca.mcg | |||
430 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) | 430 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) |
431 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) | 431 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) |
432 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | 432 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) |
433 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)Error occured (NoSuchElementException): Cannot find entry with FQN ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model | ||
434 | org.eclipse.viatra.query.runtime.registry.impl.GlobalRegistryView.getEntry(GlobalRegistryView.java:56) | ||
435 | org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.findQuerySpecification(QueryBasedFeatureSettingDelegateFactory.java:152) | ||
436 | org.eclipse.viatra.addon.querybasedfeatures.runtime.QueryBasedFeatureSettingDelegateFactory.createSettingDelegate(QueryBasedFeatureSettingDelegateFactory.java:113) | ||
437 | org.eclipse.emf.ecore.impl.EStructuralFeatureImpl.getSettingDelegate(EStructuralFeatureImpl.java:854) | ||
438 | ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionalElementImpl.<init>(FunctionalElementImpl.java:57) | ||
439 | ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.FunctionImpl.<init>(FunctionImpl.java:64) | ||
440 | ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.createFunction(famFactoryImpl.java:125) | ||
441 | ca.mcgill.ecse.dslreasoner.standalone.test.fam.impl.famFactoryImpl.create(famFactoryImpl.java:68) | ||
442 | hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore.transformInterpretation(Logic2Ecore.java:75) | ||
443 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:359) | ||
444 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:130) | ||
445 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:339) | ||
446 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:111) | ||
447 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor$1.run(ScriptExecutor.java:73) | ||
433 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56) \ No newline at end of file | 448 | org.eclipse.core.internal.jobs.Worker.run(Worker.java:56) \ No newline at end of file |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated index 7899a25f..b3223685 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generated3valued.vql_deactivated | |||
@@ -47045,3 +47045,7986 @@ pattern refineRelation_type_attribute_Function( | |||
47045 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); | 47045 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); |
47046 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); | 47046 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); |
47047 | } | 47047 | } |
47048 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
47049 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
47050 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
47051 | |||
47052 | ////////// | ||
47053 | // 0. Util | ||
47054 | ////////// | ||
47055 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47056 | PartialInterpretation.problem(interpretation,problem); | ||
47057 | } | ||
47058 | |||
47059 | ///////////////////////// | ||
47060 | // 0.1 Existence | ||
47061 | ///////////////////////// | ||
47062 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47063 | find interpretation(problem,interpretation); | ||
47064 | LogicProblem.elements(problem,element); | ||
47065 | } or { | ||
47066 | find interpretation(problem,interpretation); | ||
47067 | PartialInterpretation.newElements(interpretation,element); | ||
47068 | } | ||
47069 | |||
47070 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47071 | find mustExist(problem,interpretation,element); | ||
47072 | } or { | ||
47073 | find interpretation(problem,interpretation); | ||
47074 | neg find elementCloseWorld(element); | ||
47075 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47076 | } | ||
47077 | |||
47078 | private pattern elementCloseWorld(element:DefinedElement) { | ||
47079 | PartialInterpretation.openWorldElements(i,element); | ||
47080 | PartialInterpretation.maxNewElements(i,0); | ||
47081 | } or { | ||
47082 | Scope.targetTypeInterpretation(scope,interpretation); | ||
47083 | PartialTypeInterpratation.elements(interpretation,element); | ||
47084 | Scope.maxNewElements(scope,0); | ||
47085 | } | ||
47086 | |||
47087 | //////////////////////// | ||
47088 | // 0.2 Equivalence | ||
47089 | //////////////////////// | ||
47090 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
47091 | find mayExist(problem,interpretation,a); | ||
47092 | find mayExist(problem,interpretation,b); | ||
47093 | a == b; | ||
47094 | } | ||
47095 | |||
47096 | //////////////////////// | ||
47097 | // 0.3 Required Patterns by TypeIndexer | ||
47098 | //////////////////////// | ||
47099 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
47100 | find interpretation(problem,interpretation); | ||
47101 | LogicProblem.types(problem,type); | ||
47102 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
47103 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47104 | } | ||
47105 | |||
47106 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
47107 | find interpretation(problem,interpretation); | ||
47108 | LogicProblem.types(problem,type); | ||
47109 | TypeDefinition.elements(type,element); | ||
47110 | } or { | ||
47111 | find interpretation(problem,interpretation); | ||
47112 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
47113 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
47114 | } | ||
47115 | |||
47116 | private pattern isPrimitive(element: PrimitiveElement) { | ||
47117 | PrimitiveElement(element); | ||
47118 | } | ||
47119 | |||
47120 | ////////// | ||
47121 | // 1. Problem-Specific Base Indexers | ||
47122 | ////////// | ||
47123 | // 1.1 Type Indexers | ||
47124 | ////////// | ||
47125 | // 1.1.1 primitive Type Indexers | ||
47126 | ////////// | ||
47127 | |||
47128 | ////////// | ||
47129 | // 1.1.2 domain-specific Type Indexers | ||
47130 | ////////// | ||
47131 | /** | ||
47132 | * An element must be an instance of type "FunctionalElement class". | ||
47133 | */ | ||
47134 | private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47135 | Type.name(type,"FunctionalElement class"); | ||
47136 | find directInstanceOf(problem,interpretation,element,type); | ||
47137 | } | ||
47138 | private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47139 | find interpretation(problem,interpretation); | ||
47140 | PartialInterpretation.scopes(interpretation,scope); | ||
47141 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47142 | Scope.maxNewElements(scope,0); | ||
47143 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47144 | Type.name(type,"FunctionalElement class"); | ||
47145 | } | ||
47146 | |||
47147 | /** | ||
47148 | * An element may be an instance of type "FunctionalElement class". | ||
47149 | */ | ||
47150 | private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47151 | { | ||
47152 | find interpretation(problem,interpretation); | ||
47153 | PartialInterpretation.newElements(interpretation,element); | ||
47154 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47155 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47156 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47157 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
47158 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47159 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47160 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
47161 | neg find isPrimitive(element); | ||
47162 | } or { | ||
47163 | find interpretation(problem,interpretation); | ||
47164 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47165 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47166 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47167 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47168 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
47169 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47170 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47171 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
47172 | neg find isPrimitive(element); | ||
47173 | } or | ||
47174 | { find mustInstanceOfFunctionalElement_class(problem,interpretation,element); } | ||
47175 | /** | ||
47176 | * An element must be an instance of type "FunctionalArchitectureModel class". | ||
47177 | */ | ||
47178 | private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47179 | Type.name(type,"FunctionalArchitectureModel class"); | ||
47180 | find directInstanceOf(problem,interpretation,element,type); | ||
47181 | } | ||
47182 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47183 | find interpretation(problem,interpretation); | ||
47184 | PartialInterpretation.scopes(interpretation,scope); | ||
47185 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47186 | Scope.maxNewElements(scope,0); | ||
47187 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47188 | Type.name(type,"FunctionalArchitectureModel class"); | ||
47189 | } | ||
47190 | |||
47191 | /** | ||
47192 | * An element may be an instance of type "FunctionalArchitectureModel class". | ||
47193 | */ | ||
47194 | private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47195 | { | ||
47196 | find interpretation(problem,interpretation); | ||
47197 | PartialInterpretation.newElements(interpretation,element); | ||
47198 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47199 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47200 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47201 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47202 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47203 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
47204 | neg find isPrimitive(element); | ||
47205 | } or { | ||
47206 | find interpretation(problem,interpretation); | ||
47207 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47208 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47209 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47210 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47211 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47212 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47213 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
47214 | neg find isPrimitive(element); | ||
47215 | } or | ||
47216 | { find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); } | ||
47217 | /** | ||
47218 | * An element must be an instance of type "Function class". | ||
47219 | */ | ||
47220 | private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47221 | Type.name(type,"Function class"); | ||
47222 | find directInstanceOf(problem,interpretation,element,type); | ||
47223 | } | ||
47224 | private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47225 | find interpretation(problem,interpretation); | ||
47226 | PartialInterpretation.scopes(interpretation,scope); | ||
47227 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47228 | Scope.maxNewElements(scope,0); | ||
47229 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47230 | Type.name(type,"Function class"); | ||
47231 | } | ||
47232 | |||
47233 | /** | ||
47234 | * An element may be an instance of type "Function class". | ||
47235 | */ | ||
47236 | private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47237 | { | ||
47238 | find interpretation(problem,interpretation); | ||
47239 | PartialInterpretation.newElements(interpretation,element); | ||
47240 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47241 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47242 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47243 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47244 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47245 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
47246 | neg find isPrimitive(element); | ||
47247 | } or { | ||
47248 | find interpretation(problem,interpretation); | ||
47249 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47250 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47251 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47252 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47253 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47254 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47255 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
47256 | neg find isPrimitive(element); | ||
47257 | } or | ||
47258 | { find mustInstanceOfFunction_class(problem,interpretation,element); } | ||
47259 | /** | ||
47260 | * An element must be an instance of type "FAMTerminator class". | ||
47261 | */ | ||
47262 | private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47263 | Type.name(type,"FAMTerminator class"); | ||
47264 | find directInstanceOf(problem,interpretation,element,type); | ||
47265 | } | ||
47266 | private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47267 | find interpretation(problem,interpretation); | ||
47268 | PartialInterpretation.scopes(interpretation,scope); | ||
47269 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47270 | Scope.maxNewElements(scope,0); | ||
47271 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47272 | Type.name(type,"FAMTerminator class"); | ||
47273 | } | ||
47274 | |||
47275 | /** | ||
47276 | * An element may be an instance of type "FAMTerminator class". | ||
47277 | */ | ||
47278 | private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47279 | { | ||
47280 | find interpretation(problem,interpretation); | ||
47281 | PartialInterpretation.newElements(interpretation,element); | ||
47282 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47283 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47284 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47285 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47286 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47287 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
47288 | neg find isPrimitive(element); | ||
47289 | } or { | ||
47290 | find interpretation(problem,interpretation); | ||
47291 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47292 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47293 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47294 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47295 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47296 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47297 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
47298 | neg find isPrimitive(element); | ||
47299 | } or | ||
47300 | { find mustInstanceOfFAMTerminator_class(problem,interpretation,element); } | ||
47301 | /** | ||
47302 | * An element must be an instance of type "InformationLink class". | ||
47303 | */ | ||
47304 | private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47305 | Type.name(type,"InformationLink class"); | ||
47306 | find directInstanceOf(problem,interpretation,element,type); | ||
47307 | } | ||
47308 | private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47309 | find interpretation(problem,interpretation); | ||
47310 | PartialInterpretation.scopes(interpretation,scope); | ||
47311 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47312 | Scope.maxNewElements(scope,0); | ||
47313 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47314 | Type.name(type,"InformationLink class"); | ||
47315 | } | ||
47316 | |||
47317 | /** | ||
47318 | * An element may be an instance of type "InformationLink class". | ||
47319 | */ | ||
47320 | private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47321 | { | ||
47322 | find interpretation(problem,interpretation); | ||
47323 | PartialInterpretation.newElements(interpretation,element); | ||
47324 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47325 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47326 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47327 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47328 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47329 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
47330 | neg find isPrimitive(element); | ||
47331 | } or { | ||
47332 | find interpretation(problem,interpretation); | ||
47333 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47334 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47335 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47336 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47337 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47338 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47339 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
47340 | neg find isPrimitive(element); | ||
47341 | } or | ||
47342 | { find mustInstanceOfInformationLink_class(problem,interpretation,element); } | ||
47343 | /** | ||
47344 | * An element must be an instance of type "FunctionalInterface class". | ||
47345 | */ | ||
47346 | private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47347 | Type.name(type,"FunctionalInterface class"); | ||
47348 | find directInstanceOf(problem,interpretation,element,type); | ||
47349 | } | ||
47350 | private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47351 | find interpretation(problem,interpretation); | ||
47352 | PartialInterpretation.scopes(interpretation,scope); | ||
47353 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47354 | Scope.maxNewElements(scope,0); | ||
47355 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47356 | Type.name(type,"FunctionalInterface class"); | ||
47357 | } | ||
47358 | |||
47359 | /** | ||
47360 | * An element may be an instance of type "FunctionalInterface class". | ||
47361 | */ | ||
47362 | private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47363 | { | ||
47364 | find interpretation(problem,interpretation); | ||
47365 | PartialInterpretation.newElements(interpretation,element); | ||
47366 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47367 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47368 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47369 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47370 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47371 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
47372 | neg find isPrimitive(element); | ||
47373 | } or { | ||
47374 | find interpretation(problem,interpretation); | ||
47375 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47376 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
47377 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47378 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47379 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47380 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47381 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
47382 | neg find isPrimitive(element); | ||
47383 | } or | ||
47384 | { find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); } | ||
47385 | /** | ||
47386 | * An element must be an instance of type "FunctionalInput class". | ||
47387 | */ | ||
47388 | private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47389 | Type.name(type,"FunctionalInput class"); | ||
47390 | find directInstanceOf(problem,interpretation,element,type); | ||
47391 | } | ||
47392 | private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47393 | find interpretation(problem,interpretation); | ||
47394 | PartialInterpretation.scopes(interpretation,scope); | ||
47395 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47396 | Scope.maxNewElements(scope,0); | ||
47397 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47398 | Type.name(type,"FunctionalInput class"); | ||
47399 | } | ||
47400 | |||
47401 | /** | ||
47402 | * An element may be an instance of type "FunctionalInput class". | ||
47403 | */ | ||
47404 | private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47405 | { | ||
47406 | find interpretation(problem,interpretation); | ||
47407 | PartialInterpretation.newElements(interpretation,element); | ||
47408 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47409 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47410 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47411 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
47412 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47413 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47414 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
47415 | neg find isPrimitive(element); | ||
47416 | } or { | ||
47417 | find interpretation(problem,interpretation); | ||
47418 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47419 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47420 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47421 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47422 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
47423 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47424 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47425 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
47426 | neg find isPrimitive(element); | ||
47427 | } or | ||
47428 | { find mustInstanceOfFunctionalInput_class(problem,interpretation,element); } | ||
47429 | /** | ||
47430 | * An element must be an instance of type "FunctionalOutput class". | ||
47431 | */ | ||
47432 | private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47433 | Type.name(type,"FunctionalOutput class"); | ||
47434 | find directInstanceOf(problem,interpretation,element,type); | ||
47435 | } | ||
47436 | private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47437 | find interpretation(problem,interpretation); | ||
47438 | PartialInterpretation.scopes(interpretation,scope); | ||
47439 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47440 | Scope.maxNewElements(scope,0); | ||
47441 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47442 | Type.name(type,"FunctionalOutput class"); | ||
47443 | } | ||
47444 | |||
47445 | /** | ||
47446 | * An element may be an instance of type "FunctionalOutput class". | ||
47447 | */ | ||
47448 | private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47449 | { | ||
47450 | find interpretation(problem,interpretation); | ||
47451 | PartialInterpretation.newElements(interpretation,element); | ||
47452 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47453 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47454 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
47455 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47456 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47457 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47458 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
47459 | neg find isPrimitive(element); | ||
47460 | } or { | ||
47461 | find interpretation(problem,interpretation); | ||
47462 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47463 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47464 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47465 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
47466 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47467 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47468 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47469 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
47470 | neg find isPrimitive(element); | ||
47471 | } or | ||
47472 | { find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); } | ||
47473 | /** | ||
47474 | * An element must be an instance of type "FunctionalData class". | ||
47475 | */ | ||
47476 | private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47477 | Type.name(type,"FunctionalData class"); | ||
47478 | find directInstanceOf(problem,interpretation,element,type); | ||
47479 | } | ||
47480 | private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47481 | find interpretation(problem,interpretation); | ||
47482 | PartialInterpretation.scopes(interpretation,scope); | ||
47483 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47484 | Scope.maxNewElements(scope,0); | ||
47485 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47486 | Type.name(type,"FunctionalData class"); | ||
47487 | } | ||
47488 | |||
47489 | /** | ||
47490 | * An element may be an instance of type "FunctionalData class". | ||
47491 | */ | ||
47492 | private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47493 | { | ||
47494 | find interpretation(problem,interpretation); | ||
47495 | PartialInterpretation.newElements(interpretation,element); | ||
47496 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47497 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47498 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
47499 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47500 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
47501 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47502 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47503 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
47504 | neg find isPrimitive(element); | ||
47505 | } or { | ||
47506 | find interpretation(problem,interpretation); | ||
47507 | PartialInterpretation.openWorldElements(interpretation,element); | ||
47508 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
47509 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
47510 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
47511 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
47512 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
47513 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
47514 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
47515 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
47516 | neg find isPrimitive(element); | ||
47517 | } or | ||
47518 | { find mustInstanceOfFunctionalData_class(problem,interpretation,element); } | ||
47519 | /** | ||
47520 | * An element must be an instance of type "FunctionType enum". | ||
47521 | */ | ||
47522 | private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
47523 | Type.name(type,"FunctionType enum"); | ||
47524 | find directInstanceOf(problem,interpretation,element,type); | ||
47525 | } | ||
47526 | private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
47527 | find interpretation(problem,interpretation); | ||
47528 | PartialInterpretation.scopes(interpretation,scope); | ||
47529 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
47530 | Scope.maxNewElements(scope,0); | ||
47531 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
47532 | Type.name(type,"FunctionType enum"); | ||
47533 | } | ||
47534 | |||
47535 | /** | ||
47536 | * An element may be an instance of type "FunctionType enum". | ||
47537 | */ | ||
47538 | private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
47539 | { find mustInstanceOfFunctionType_enum(problem,interpretation,element); } | ||
47540 | |||
47541 | ////////// | ||
47542 | // 1.2 Relation Declaration Indexers | ||
47543 | ////////// | ||
47544 | /** | ||
47545 | * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target) | ||
47546 | */ | ||
47547 | private pattern mustInRelationinterface_reference_FunctionalElement( | ||
47548 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47549 | source: DefinedElement, target:DefinedElement) | ||
47550 | { | ||
47551 | find interpretation(problem,interpretation); | ||
47552 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47553 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement"); | ||
47554 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47555 | BinaryElementRelationLink.param1(link,source); | ||
47556 | BinaryElementRelationLink.param2(link,target); | ||
47557 | } | ||
47558 | /** | ||
47559 | * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target) | ||
47560 | */ | ||
47561 | private pattern mayInRelationinterface_reference_FunctionalElement( | ||
47562 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47563 | source: DefinedElement, target:DefinedElement) | ||
47564 | { | ||
47565 | find interpretation(problem,interpretation); | ||
47566 | // The two endpoint of the link have to exist | ||
47567 | find mayExist(problem, interpretation, source); | ||
47568 | find mayExist(problem, interpretation, target); | ||
47569 | // Type consistency | ||
47570 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
47571 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
47572 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47573 | // the upper bound of the multiplicity should be considered. | ||
47574 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_); | ||
47575 | check(numberOfExistingReferences < 1); | ||
47576 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
47577 | // the upper bound of the opposite reference multiplicity should be considered. | ||
47578 | numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_); | ||
47579 | check(numberOfExistingOppositeReferences < 1); | ||
47580 | // The reference is containment, then a new reference cannot be create if: | ||
47581 | // 1. Multiple parents | ||
47582 | neg find mustContains4(problem,interpretation,_,target); | ||
47583 | // 2. Circle in the containment hierarchy | ||
47584 | neg find mustTransitiveContains(source,target); | ||
47585 | } or { | ||
47586 | find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); | ||
47587 | } | ||
47588 | /** | ||
47589 | * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) | ||
47590 | */ | ||
47591 | private pattern mustInRelationmodel_reference_FunctionalElement( | ||
47592 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47593 | source: DefinedElement, target:DefinedElement) | ||
47594 | { | ||
47595 | find interpretation(problem,interpretation); | ||
47596 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47597 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
47598 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47599 | BinaryElementRelationLink.param1(link,source); | ||
47600 | BinaryElementRelationLink.param2(link,target); | ||
47601 | } | ||
47602 | /** | ||
47603 | * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target) | ||
47604 | */ | ||
47605 | private pattern mayInRelationmodel_reference_FunctionalElement( | ||
47606 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47607 | source: DefinedElement, target:DefinedElement) | ||
47608 | { | ||
47609 | find interpretation(problem,interpretation); | ||
47610 | // The two endpoint of the link have to exist | ||
47611 | find mayExist(problem, interpretation, source); | ||
47612 | find mayExist(problem, interpretation, target); | ||
47613 | // Type consistency | ||
47614 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
47615 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target); | ||
47616 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47617 | // the upper bound of the multiplicity should be considered. | ||
47618 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_); | ||
47619 | check(numberOfExistingReferences < 1); | ||
47620 | } or { | ||
47621 | find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target); | ||
47622 | } | ||
47623 | /** | ||
47624 | * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) | ||
47625 | */ | ||
47626 | private pattern mustInRelationparent_reference_FunctionalElement( | ||
47627 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47628 | source: DefinedElement, target:DefinedElement) | ||
47629 | { | ||
47630 | find interpretation(problem,interpretation); | ||
47631 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47632 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement"); | ||
47633 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47634 | BinaryElementRelationLink.param1(link,source); | ||
47635 | BinaryElementRelationLink.param2(link,target); | ||
47636 | } | ||
47637 | /** | ||
47638 | * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target) | ||
47639 | */ | ||
47640 | private pattern mayInRelationparent_reference_FunctionalElement( | ||
47641 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47642 | source: DefinedElement, target:DefinedElement) | ||
47643 | { | ||
47644 | find interpretation(problem,interpretation); | ||
47645 | // The two endpoint of the link have to exist | ||
47646 | find mayExist(problem, interpretation, source); | ||
47647 | find mayExist(problem, interpretation, target); | ||
47648 | // Type consistency | ||
47649 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
47650 | find mayInstanceOfFunction_class(problem,interpretation,target); | ||
47651 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47652 | // the upper bound of the multiplicity should be considered. | ||
47653 | numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_); | ||
47654 | check(numberOfExistingReferences < 1); | ||
47655 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
47656 | // 1. Multiple parents | ||
47657 | neg find mustContains4(problem,interpretation,source,_); | ||
47658 | // 2. Circle in the containment hierarchy | ||
47659 | neg find mustTransitiveContains(source,target); | ||
47660 | } or { | ||
47661 | find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target); | ||
47662 | } | ||
47663 | /** | ||
47664 | * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target) | ||
47665 | */ | ||
47666 | private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel( | ||
47667 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47668 | source: DefinedElement, target:DefinedElement) | ||
47669 | { | ||
47670 | find interpretation(problem,interpretation); | ||
47671 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47672 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
47673 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47674 | BinaryElementRelationLink.param1(link,source); | ||
47675 | BinaryElementRelationLink.param2(link,target); | ||
47676 | } | ||
47677 | /** | ||
47678 | * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target) | ||
47679 | */ | ||
47680 | private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel( | ||
47681 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47682 | source: DefinedElement, target:DefinedElement) | ||
47683 | { | ||
47684 | find interpretation(problem,interpretation); | ||
47685 | // The two endpoint of the link have to exist | ||
47686 | find mayExist(problem, interpretation, source); | ||
47687 | find mayExist(problem, interpretation, target); | ||
47688 | // Type consistency | ||
47689 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source); | ||
47690 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
47691 | // The reference is containment, then a new reference cannot be create if: | ||
47692 | // 1. Multiple parents | ||
47693 | neg find mustContains4(problem,interpretation,_,target); | ||
47694 | // 2. Circle in the containment hierarchy | ||
47695 | neg find mustTransitiveContains(source,target); | ||
47696 | } or { | ||
47697 | find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); | ||
47698 | } | ||
47699 | /** | ||
47700 | * Matcher for detecting tuples t where []subElements reference Function(source,target) | ||
47701 | */ | ||
47702 | private pattern mustInRelationsubElements_reference_Function( | ||
47703 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47704 | source: DefinedElement, target:DefinedElement) | ||
47705 | { | ||
47706 | find interpretation(problem,interpretation); | ||
47707 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47708 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function"); | ||
47709 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47710 | BinaryElementRelationLink.param1(link,source); | ||
47711 | BinaryElementRelationLink.param2(link,target); | ||
47712 | } | ||
47713 | /** | ||
47714 | * Matcher for detecting tuples t where <>subElements reference Function(source,target) | ||
47715 | */ | ||
47716 | private pattern mayInRelationsubElements_reference_Function( | ||
47717 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47718 | source: DefinedElement, target:DefinedElement) | ||
47719 | { | ||
47720 | find interpretation(problem,interpretation); | ||
47721 | // The two endpoint of the link have to exist | ||
47722 | find mayExist(problem, interpretation, source); | ||
47723 | find mayExist(problem, interpretation, target); | ||
47724 | // Type consistency | ||
47725 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
47726 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
47727 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
47728 | // the upper bound of the opposite reference multiplicity should be considered. | ||
47729 | numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_); | ||
47730 | check(numberOfExistingOppositeReferences < 1); | ||
47731 | // The reference is containment, then a new reference cannot be create if: | ||
47732 | // 1. Multiple parents | ||
47733 | neg find mustContains4(problem,interpretation,_,target); | ||
47734 | // 2. Circle in the containment hierarchy | ||
47735 | neg find mustTransitiveContains(source,target); | ||
47736 | } or { | ||
47737 | find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); | ||
47738 | } | ||
47739 | /** | ||
47740 | * Matcher for detecting tuples t where []data reference FAMTerminator(source,target) | ||
47741 | */ | ||
47742 | private pattern mustInRelationdata_reference_FAMTerminator( | ||
47743 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47744 | source: DefinedElement, target:DefinedElement) | ||
47745 | { | ||
47746 | find interpretation(problem,interpretation); | ||
47747 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47748 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator"); | ||
47749 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47750 | BinaryElementRelationLink.param1(link,source); | ||
47751 | BinaryElementRelationLink.param2(link,target); | ||
47752 | } | ||
47753 | /** | ||
47754 | * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target) | ||
47755 | */ | ||
47756 | private pattern mayInRelationdata_reference_FAMTerminator( | ||
47757 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47758 | source: DefinedElement, target:DefinedElement) | ||
47759 | { | ||
47760 | find interpretation(problem,interpretation); | ||
47761 | // The two endpoint of the link have to exist | ||
47762 | find mayExist(problem, interpretation, source); | ||
47763 | find mayExist(problem, interpretation, target); | ||
47764 | // Type consistency | ||
47765 | find mayInstanceOfFAMTerminator_class(problem,interpretation,source); | ||
47766 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
47767 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47768 | // the upper bound of the multiplicity should be considered. | ||
47769 | numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_); | ||
47770 | check(numberOfExistingReferences < 1); | ||
47771 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
47772 | // the upper bound of the opposite reference multiplicity should be considered. | ||
47773 | numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_); | ||
47774 | check(numberOfExistingOppositeReferences < 1); | ||
47775 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
47776 | // 1. Multiple parents | ||
47777 | neg find mustContains4(problem,interpretation,source,_); | ||
47778 | // 2. Circle in the containment hierarchy | ||
47779 | neg find mustTransitiveContains(source,target); | ||
47780 | } or { | ||
47781 | find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target); | ||
47782 | } | ||
47783 | /** | ||
47784 | * Matcher for detecting tuples t where []from reference InformationLink(source,target) | ||
47785 | */ | ||
47786 | private pattern mustInRelationfrom_reference_InformationLink( | ||
47787 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47788 | source: DefinedElement, target:DefinedElement) | ||
47789 | { | ||
47790 | find interpretation(problem,interpretation); | ||
47791 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47792 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink"); | ||
47793 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47794 | BinaryElementRelationLink.param1(link,source); | ||
47795 | BinaryElementRelationLink.param2(link,target); | ||
47796 | } | ||
47797 | /** | ||
47798 | * Matcher for detecting tuples t where <>from reference InformationLink(source,target) | ||
47799 | */ | ||
47800 | private pattern mayInRelationfrom_reference_InformationLink( | ||
47801 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47802 | source: DefinedElement, target:DefinedElement) | ||
47803 | { | ||
47804 | find interpretation(problem,interpretation); | ||
47805 | // The two endpoint of the link have to exist | ||
47806 | find mayExist(problem, interpretation, source); | ||
47807 | find mayExist(problem, interpretation, target); | ||
47808 | // Type consistency | ||
47809 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
47810 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,target); | ||
47811 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47812 | // the upper bound of the multiplicity should be considered. | ||
47813 | numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_); | ||
47814 | check(numberOfExistingReferences < 1); | ||
47815 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
47816 | // 1. Multiple parents | ||
47817 | neg find mustContains4(problem,interpretation,source,_); | ||
47818 | // 2. Circle in the containment hierarchy | ||
47819 | neg find mustTransitiveContains(source,target); | ||
47820 | } or { | ||
47821 | find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target); | ||
47822 | } | ||
47823 | /** | ||
47824 | * Matcher for detecting tuples t where []to reference InformationLink(source,target) | ||
47825 | */ | ||
47826 | private pattern mustInRelationto_reference_InformationLink( | ||
47827 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47828 | source: DefinedElement, target:DefinedElement) | ||
47829 | { | ||
47830 | find interpretation(problem,interpretation); | ||
47831 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47832 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
47833 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47834 | BinaryElementRelationLink.param1(link,source); | ||
47835 | BinaryElementRelationLink.param2(link,target); | ||
47836 | } | ||
47837 | /** | ||
47838 | * Matcher for detecting tuples t where <>to reference InformationLink(source,target) | ||
47839 | */ | ||
47840 | private pattern mayInRelationto_reference_InformationLink( | ||
47841 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47842 | source: DefinedElement, target:DefinedElement) | ||
47843 | { | ||
47844 | find interpretation(problem,interpretation); | ||
47845 | // The two endpoint of the link have to exist | ||
47846 | find mayExist(problem, interpretation, source); | ||
47847 | find mayExist(problem, interpretation, target); | ||
47848 | // Type consistency | ||
47849 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
47850 | find mayInstanceOfFunctionalInput_class(problem,interpretation,target); | ||
47851 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47852 | // the upper bound of the multiplicity should be considered. | ||
47853 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_); | ||
47854 | check(numberOfExistingReferences < 1); | ||
47855 | } or { | ||
47856 | find mustInRelationto_reference_InformationLink(problem,interpretation,source,target); | ||
47857 | } | ||
47858 | /** | ||
47859 | * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target) | ||
47860 | */ | ||
47861 | private pattern mustInRelationdata_reference_FunctionalInterface( | ||
47862 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47863 | source: DefinedElement, target:DefinedElement) | ||
47864 | { | ||
47865 | find interpretation(problem,interpretation); | ||
47866 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47867 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface"); | ||
47868 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47869 | BinaryElementRelationLink.param1(link,source); | ||
47870 | BinaryElementRelationLink.param2(link,target); | ||
47871 | } | ||
47872 | /** | ||
47873 | * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target) | ||
47874 | */ | ||
47875 | private pattern mayInRelationdata_reference_FunctionalInterface( | ||
47876 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47877 | source: DefinedElement, target:DefinedElement) | ||
47878 | { | ||
47879 | find interpretation(problem,interpretation); | ||
47880 | // The two endpoint of the link have to exist | ||
47881 | find mayExist(problem, interpretation, source); | ||
47882 | find mayExist(problem, interpretation, target); | ||
47883 | // Type consistency | ||
47884 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
47885 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
47886 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
47887 | // the upper bound of the opposite reference multiplicity should be considered. | ||
47888 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_); | ||
47889 | check(numberOfExistingOppositeReferences < 1); | ||
47890 | // The reference is containment, then a new reference cannot be create if: | ||
47891 | // 1. Multiple parents | ||
47892 | neg find mustContains4(problem,interpretation,_,target); | ||
47893 | // 2. Circle in the containment hierarchy | ||
47894 | neg find mustTransitiveContains(source,target); | ||
47895 | } or { | ||
47896 | find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); | ||
47897 | } | ||
47898 | /** | ||
47899 | * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target) | ||
47900 | */ | ||
47901 | private pattern mustInRelationelement_reference_FunctionalInterface( | ||
47902 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47903 | source: DefinedElement, target:DefinedElement) | ||
47904 | { | ||
47905 | find interpretation(problem,interpretation); | ||
47906 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47907 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface"); | ||
47908 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47909 | BinaryElementRelationLink.param1(link,source); | ||
47910 | BinaryElementRelationLink.param2(link,target); | ||
47911 | } | ||
47912 | /** | ||
47913 | * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target) | ||
47914 | */ | ||
47915 | private pattern mayInRelationelement_reference_FunctionalInterface( | ||
47916 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47917 | source: DefinedElement, target:DefinedElement) | ||
47918 | { | ||
47919 | find interpretation(problem,interpretation); | ||
47920 | // The two endpoint of the link have to exist | ||
47921 | find mayExist(problem, interpretation, source); | ||
47922 | find mayExist(problem, interpretation, target); | ||
47923 | // Type consistency | ||
47924 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
47925 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
47926 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
47927 | // the upper bound of the multiplicity should be considered. | ||
47928 | numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_); | ||
47929 | check(numberOfExistingReferences < 1); | ||
47930 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
47931 | // the upper bound of the opposite reference multiplicity should be considered. | ||
47932 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_); | ||
47933 | check(numberOfExistingOppositeReferences < 1); | ||
47934 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
47935 | // 1. Multiple parents | ||
47936 | neg find mustContains4(problem,interpretation,source,_); | ||
47937 | // 2. Circle in the containment hierarchy | ||
47938 | neg find mustTransitiveContains(source,target); | ||
47939 | } or { | ||
47940 | find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target); | ||
47941 | } | ||
47942 | /** | ||
47943 | * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target) | ||
47944 | */ | ||
47945 | private pattern mustInRelationIncomingLinks_reference_FunctionalInput( | ||
47946 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47947 | source: DefinedElement, target:DefinedElement) | ||
47948 | { | ||
47949 | find interpretation(problem,interpretation); | ||
47950 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47951 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
47952 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47953 | BinaryElementRelationLink.param1(link,source); | ||
47954 | BinaryElementRelationLink.param2(link,target); | ||
47955 | } | ||
47956 | /** | ||
47957 | * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target) | ||
47958 | */ | ||
47959 | private pattern mayInRelationIncomingLinks_reference_FunctionalInput( | ||
47960 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47961 | source: DefinedElement, target:DefinedElement) | ||
47962 | { | ||
47963 | find interpretation(problem,interpretation); | ||
47964 | // The two endpoint of the link have to exist | ||
47965 | find mayExist(problem, interpretation, source); | ||
47966 | find mayExist(problem, interpretation, target); | ||
47967 | // Type consistency | ||
47968 | find mayInstanceOfFunctionalInput_class(problem,interpretation,source); | ||
47969 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
47970 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
47971 | // the upper bound of the opposite reference multiplicity should be considered. | ||
47972 | numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_); | ||
47973 | check(numberOfExistingOppositeReferences < 1); | ||
47974 | } or { | ||
47975 | find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target); | ||
47976 | } | ||
47977 | /** | ||
47978 | * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target) | ||
47979 | */ | ||
47980 | private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput( | ||
47981 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47982 | source: DefinedElement, target:DefinedElement) | ||
47983 | { | ||
47984 | find interpretation(problem,interpretation); | ||
47985 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
47986 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput"); | ||
47987 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
47988 | BinaryElementRelationLink.param1(link,source); | ||
47989 | BinaryElementRelationLink.param2(link,target); | ||
47990 | } | ||
47991 | /** | ||
47992 | * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target) | ||
47993 | */ | ||
47994 | private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput( | ||
47995 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
47996 | source: DefinedElement, target:DefinedElement) | ||
47997 | { | ||
47998 | find interpretation(problem,interpretation); | ||
47999 | // The two endpoint of the link have to exist | ||
48000 | find mayExist(problem, interpretation, source); | ||
48001 | find mayExist(problem, interpretation, target); | ||
48002 | // Type consistency | ||
48003 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,source); | ||
48004 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
48005 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
48006 | // the upper bound of the opposite reference multiplicity should be considered. | ||
48007 | numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_); | ||
48008 | check(numberOfExistingOppositeReferences < 1); | ||
48009 | // The reference is containment, then a new reference cannot be create if: | ||
48010 | // 1. Multiple parents | ||
48011 | neg find mustContains4(problem,interpretation,_,target); | ||
48012 | // 2. Circle in the containment hierarchy | ||
48013 | neg find mustTransitiveContains(source,target); | ||
48014 | } or { | ||
48015 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); | ||
48016 | } | ||
48017 | /** | ||
48018 | * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target) | ||
48019 | */ | ||
48020 | private pattern mustInRelationterminator_reference_FunctionalData( | ||
48021 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48022 | source: DefinedElement, target:DefinedElement) | ||
48023 | { | ||
48024 | find interpretation(problem,interpretation); | ||
48025 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48026 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData"); | ||
48027 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
48028 | BinaryElementRelationLink.param1(link,source); | ||
48029 | BinaryElementRelationLink.param2(link,target); | ||
48030 | } | ||
48031 | /** | ||
48032 | * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target) | ||
48033 | */ | ||
48034 | private pattern mayInRelationterminator_reference_FunctionalData( | ||
48035 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48036 | source: DefinedElement, target:DefinedElement) | ||
48037 | { | ||
48038 | find interpretation(problem,interpretation); | ||
48039 | // The two endpoint of the link have to exist | ||
48040 | find mayExist(problem, interpretation, source); | ||
48041 | find mayExist(problem, interpretation, target); | ||
48042 | // Type consistency | ||
48043 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
48044 | find mayInstanceOfFAMTerminator_class(problem,interpretation,target); | ||
48045 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
48046 | // the upper bound of the multiplicity should be considered. | ||
48047 | numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_); | ||
48048 | check(numberOfExistingReferences < 1); | ||
48049 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
48050 | // the upper bound of the opposite reference multiplicity should be considered. | ||
48051 | numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_); | ||
48052 | check(numberOfExistingOppositeReferences < 1); | ||
48053 | // The reference is containment, then a new reference cannot be create if: | ||
48054 | // 1. Multiple parents | ||
48055 | neg find mustContains4(problem,interpretation,_,target); | ||
48056 | // 2. Circle in the containment hierarchy | ||
48057 | neg find mustTransitiveContains(source,target); | ||
48058 | } or { | ||
48059 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); | ||
48060 | } | ||
48061 | /** | ||
48062 | * Matcher for detecting tuples t where []interface reference FunctionalData(source,target) | ||
48063 | */ | ||
48064 | private pattern mustInRelationinterface_reference_FunctionalData( | ||
48065 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48066 | source: DefinedElement, target:DefinedElement) | ||
48067 | { | ||
48068 | find interpretation(problem,interpretation); | ||
48069 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48070 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData"); | ||
48071 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
48072 | BinaryElementRelationLink.param1(link,source); | ||
48073 | BinaryElementRelationLink.param2(link,target); | ||
48074 | } | ||
48075 | /** | ||
48076 | * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target) | ||
48077 | */ | ||
48078 | private pattern mayInRelationinterface_reference_FunctionalData( | ||
48079 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48080 | source: DefinedElement, target:DefinedElement) | ||
48081 | { | ||
48082 | find interpretation(problem,interpretation); | ||
48083 | // The two endpoint of the link have to exist | ||
48084 | find mayExist(problem, interpretation, source); | ||
48085 | find mayExist(problem, interpretation, target); | ||
48086 | // Type consistency | ||
48087 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
48088 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
48089 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
48090 | // the upper bound of the multiplicity should be considered. | ||
48091 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_); | ||
48092 | check(numberOfExistingReferences < 1); | ||
48093 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
48094 | // 1. Multiple parents | ||
48095 | neg find mustContains4(problem,interpretation,source,_); | ||
48096 | // 2. Circle in the containment hierarchy | ||
48097 | neg find mustTransitiveContains(source,target); | ||
48098 | } or { | ||
48099 | find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target); | ||
48100 | } | ||
48101 | /** | ||
48102 | * Matcher for detecting tuples t where []type attribute Function(source,target) | ||
48103 | */ | ||
48104 | private pattern mustInRelationtype_attribute_Function( | ||
48105 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48106 | source: DefinedElement, target:DefinedElement) | ||
48107 | { | ||
48108 | find interpretation(problem,interpretation); | ||
48109 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48110 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
48111 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
48112 | BinaryElementRelationLink.param1(link,source); | ||
48113 | BinaryElementRelationLink.param2(link,target); | ||
48114 | } | ||
48115 | /** | ||
48116 | * Matcher for detecting tuples t where <>type attribute Function(source,target) | ||
48117 | */ | ||
48118 | private pattern mayInRelationtype_attribute_Function( | ||
48119 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48120 | source: DefinedElement, target:DefinedElement) | ||
48121 | { | ||
48122 | find interpretation(problem,interpretation); | ||
48123 | // The two endpoint of the link have to exist | ||
48124 | find mayExist(problem, interpretation, source); | ||
48125 | find mayExist(problem, interpretation, target); | ||
48126 | // Type consistency | ||
48127 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
48128 | find mayInstanceOfFunctionType_enum(problem,interpretation,target); | ||
48129 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
48130 | // the upper bound of the multiplicity should be considered. | ||
48131 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_); | ||
48132 | check(numberOfExistingReferences < 1); | ||
48133 | } or { | ||
48134 | find mustInRelationtype_attribute_Function(problem,interpretation,source,target); | ||
48135 | } | ||
48136 | |||
48137 | ////////// | ||
48138 | // 1.3 Relation Definition Indexers | ||
48139 | ////////// | ||
48140 | |||
48141 | ////////// | ||
48142 | // 1.4 Containment Indexer | ||
48143 | ////////// | ||
48144 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
48145 | find mustContains4(_,_,source,target); | ||
48146 | } | ||
48147 | |||
48148 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
48149 | source: DefinedElement, target: DefinedElement) | ||
48150 | { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or | ||
48151 | |||
48152 | { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or | ||
48153 | |||
48154 | { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or | ||
48155 | |||
48156 | { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or | ||
48157 | |||
48158 | { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or | ||
48159 | |||
48160 | { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); } | ||
48161 | |||
48162 | private pattern mustTransitiveContains(source,target) { | ||
48163 | find mustContains2+(source,target); | ||
48164 | } | ||
48165 | |||
48166 | ////////// | ||
48167 | // 2. Invalidation Indexers | ||
48168 | ////////// | ||
48169 | // 2.1 Invalidated by WF Queries | ||
48170 | ////////// | ||
48171 | |||
48172 | ////////// | ||
48173 | // 3. Unfinishedness Indexers | ||
48174 | ////////// | ||
48175 | // 3.1 Unfinishedness Measured by Multiplicity | ||
48176 | ////////// | ||
48177 | pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
48178 | find interpretation(problem,interpretation); | ||
48179 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48180 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
48181 | find mustInstanceOfFunctionalElement_class(problem,interpretation,object); | ||
48182 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_); | ||
48183 | check(numberOfExistingReferences < 1); | ||
48184 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
48185 | } | ||
48186 | pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
48187 | find interpretation(problem,interpretation); | ||
48188 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48189 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
48190 | find mustInstanceOfInformationLink_class(problem,interpretation,object); | ||
48191 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_); | ||
48192 | check(numberOfExistingReferences < 1); | ||
48193 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
48194 | } | ||
48195 | pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
48196 | find interpretation(problem,interpretation); | ||
48197 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48198 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
48199 | find mustInstanceOfFunction_class(problem,interpretation,object); | ||
48200 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_); | ||
48201 | check(numberOfExistingReferences < 1); | ||
48202 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
48203 | } | ||
48204 | |||
48205 | ////////// | ||
48206 | // 3.2 Unfinishedness Measured by WF Queries | ||
48207 | ////////// | ||
48208 | |||
48209 | ////////// | ||
48210 | // 4. Refinement Indexers | ||
48211 | ////////// | ||
48212 | // 4.1 Object constructors | ||
48213 | ////////// | ||
48214 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
48215 | { | ||
48216 | find interpretation(problem,interpretation); | ||
48217 | find mustInstanceOfInformationLink_class(problem,interpretation,root); | ||
48218 | find mustExist(problem, interpretation, root); | ||
48219 | }or{ | ||
48220 | find interpretation(problem,interpretation); | ||
48221 | find mustInstanceOfFAMTerminator_class(problem,interpretation,root); | ||
48222 | find mustExist(problem, interpretation, root); | ||
48223 | }or{ | ||
48224 | find interpretation(problem,interpretation); | ||
48225 | find mustInstanceOfFunctionalData_class(problem,interpretation,root); | ||
48226 | find mustExist(problem, interpretation, root); | ||
48227 | }or{ | ||
48228 | find interpretation(problem,interpretation); | ||
48229 | find mustInstanceOfFunctionalElement_class(problem,interpretation,root); | ||
48230 | find mustExist(problem, interpretation, root); | ||
48231 | }or{ | ||
48232 | find interpretation(problem,interpretation); | ||
48233 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); | ||
48234 | find mustExist(problem, interpretation, root); | ||
48235 | }or{ | ||
48236 | find interpretation(problem,interpretation); | ||
48237 | find mustInstanceOfFunction_class(problem,interpretation,root); | ||
48238 | find mustExist(problem, interpretation, root); | ||
48239 | }or{ | ||
48240 | find interpretation(problem,interpretation); | ||
48241 | find mustInstanceOfFunctionalInput_class(problem,interpretation,root); | ||
48242 | find mustExist(problem, interpretation, root); | ||
48243 | }or{ | ||
48244 | find interpretation(problem,interpretation); | ||
48245 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); | ||
48246 | find mustExist(problem, interpretation, root); | ||
48247 | }or{ | ||
48248 | find interpretation(problem,interpretation); | ||
48249 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); | ||
48250 | find mustExist(problem, interpretation, root); | ||
48251 | } | ||
48252 | pattern createObject_FunctionalArchitectureModel_class( | ||
48253 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48254 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48255 | { | ||
48256 | find interpretation(problem,interpretation); | ||
48257 | neg find hasElementInContainment(problem,interpretation); | ||
48258 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48259 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class"); | ||
48260 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject); | ||
48261 | find mayExist(problem, interpretation, newObject); | ||
48262 | neg find mustExist(problem, interpretation, newObject); | ||
48263 | } | ||
48264 | pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( | ||
48265 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48266 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48267 | container:DefinedElement) | ||
48268 | { | ||
48269 | find interpretation(problem,interpretation); | ||
48270 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48271 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
48272 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48273 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
48274 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); | ||
48275 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
48276 | find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); | ||
48277 | find mustExist(problem, interpretation, container); | ||
48278 | neg find mustExist(problem, interpretation, newObject); | ||
48279 | } | ||
48280 | pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( | ||
48281 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48282 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48283 | container:DefinedElement) | ||
48284 | { | ||
48285 | find interpretation(problem,interpretation); | ||
48286 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48287 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
48288 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48289 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); | ||
48290 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
48291 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); | ||
48292 | find mustInstanceOfFunction_class(problem,interpretation,container); | ||
48293 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
48294 | find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); | ||
48295 | find mustExist(problem, interpretation, container); | ||
48296 | neg find mustExist(problem, interpretation, newObject); | ||
48297 | } | ||
48298 | pattern createObject_Function_class( | ||
48299 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48300 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48301 | { | ||
48302 | find interpretation(problem,interpretation); | ||
48303 | neg find hasElementInContainment(problem,interpretation); | ||
48304 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48305 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
48306 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
48307 | find mayExist(problem, interpretation, newObject); | ||
48308 | neg find mustExist(problem, interpretation, newObject); | ||
48309 | } | ||
48310 | pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( | ||
48311 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48312 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48313 | container:DefinedElement) | ||
48314 | { | ||
48315 | find interpretation(problem,interpretation); | ||
48316 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48317 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
48318 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48319 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); | ||
48320 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
48321 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); | ||
48322 | find mustInstanceOfFunctionalElement_class(problem,interpretation,container); | ||
48323 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
48324 | find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); | ||
48325 | find mustExist(problem, interpretation, container); | ||
48326 | neg find mustExist(problem, interpretation, newObject); | ||
48327 | } | ||
48328 | pattern createObject_FunctionalInterface_class( | ||
48329 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48330 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48331 | { | ||
48332 | find interpretation(problem,interpretation); | ||
48333 | neg find hasElementInContainment(problem,interpretation); | ||
48334 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48335 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
48336 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
48337 | find mayExist(problem, interpretation, newObject); | ||
48338 | neg find mustExist(problem, interpretation, newObject); | ||
48339 | } | ||
48340 | pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
48341 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48342 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48343 | container:DefinedElement) | ||
48344 | { | ||
48345 | find interpretation(problem,interpretation); | ||
48346 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48347 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
48348 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48349 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
48350 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
48351 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
48352 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
48353 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
48354 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
48355 | find mustExist(problem, interpretation, container); | ||
48356 | neg find mustExist(problem, interpretation, newObject); | ||
48357 | } | ||
48358 | pattern createObject_FunctionalInput_class( | ||
48359 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48360 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48361 | { | ||
48362 | find interpretation(problem,interpretation); | ||
48363 | neg find hasElementInContainment(problem,interpretation); | ||
48364 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48365 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
48366 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
48367 | find mayExist(problem, interpretation, newObject); | ||
48368 | neg find mustExist(problem, interpretation, newObject); | ||
48369 | } | ||
48370 | pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( | ||
48371 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48372 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48373 | container:DefinedElement) | ||
48374 | { | ||
48375 | find interpretation(problem,interpretation); | ||
48376 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48377 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
48378 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48379 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); | ||
48380 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
48381 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); | ||
48382 | find mustInstanceOfFunctionalData_class(problem,interpretation,container); | ||
48383 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
48384 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); | ||
48385 | find mustExist(problem, interpretation, container); | ||
48386 | neg find mustExist(problem, interpretation, newObject); | ||
48387 | } | ||
48388 | pattern createObject_FAMTerminator_class( | ||
48389 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48390 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48391 | { | ||
48392 | find interpretation(problem,interpretation); | ||
48393 | neg find hasElementInContainment(problem,interpretation); | ||
48394 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48395 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
48396 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
48397 | find mayExist(problem, interpretation, newObject); | ||
48398 | neg find mustExist(problem, interpretation, newObject); | ||
48399 | } | ||
48400 | pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
48401 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48402 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48403 | container:DefinedElement) | ||
48404 | { | ||
48405 | find interpretation(problem,interpretation); | ||
48406 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48407 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
48408 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48409 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
48410 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
48411 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
48412 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
48413 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
48414 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
48415 | find mustExist(problem, interpretation, container); | ||
48416 | neg find mustExist(problem, interpretation, newObject); | ||
48417 | } | ||
48418 | pattern createObject_FunctionalOutput_class( | ||
48419 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48420 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48421 | { | ||
48422 | find interpretation(problem,interpretation); | ||
48423 | neg find hasElementInContainment(problem,interpretation); | ||
48424 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48425 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
48426 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
48427 | find mayExist(problem, interpretation, newObject); | ||
48428 | neg find mustExist(problem, interpretation, newObject); | ||
48429 | } | ||
48430 | pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( | ||
48431 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48432 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
48433 | container:DefinedElement) | ||
48434 | { | ||
48435 | find interpretation(problem,interpretation); | ||
48436 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48437 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
48438 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
48439 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); | ||
48440 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
48441 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); | ||
48442 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); | ||
48443 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
48444 | find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); | ||
48445 | find mustExist(problem, interpretation, container); | ||
48446 | neg find mustExist(problem, interpretation, newObject); | ||
48447 | } | ||
48448 | pattern createObject_InformationLink_class( | ||
48449 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48450 | typeInterpretation:PartialComplexTypeInterpretation) | ||
48451 | { | ||
48452 | find interpretation(problem,interpretation); | ||
48453 | neg find hasElementInContainment(problem,interpretation); | ||
48454 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48455 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
48456 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
48457 | find mayExist(problem, interpretation, newObject); | ||
48458 | neg find mustExist(problem, interpretation, newObject); | ||
48459 | } | ||
48460 | |||
48461 | ////////// | ||
48462 | // 4.2 Type refinement | ||
48463 | ////////// | ||
48464 | pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48465 | find interpretation(problem,interpretation); | ||
48466 | PartialInterpretation.newElements(interpretation,element); | ||
48467 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48468 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48469 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48470 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48471 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48472 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48473 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48474 | } | ||
48475 | pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48476 | find interpretation(problem,interpretation); | ||
48477 | PartialInterpretation.newElements(interpretation,element); | ||
48478 | find mayInstanceOfFunction_class(problem,interpretation,element); | ||
48479 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48480 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48481 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
48482 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48483 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48484 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48485 | } | ||
48486 | pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48487 | find interpretation(problem,interpretation); | ||
48488 | PartialInterpretation.newElements(interpretation,element); | ||
48489 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48490 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48491 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48492 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48493 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48494 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48495 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48496 | } | ||
48497 | pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48498 | find interpretation(problem,interpretation); | ||
48499 | PartialInterpretation.newElements(interpretation,element); | ||
48500 | find mayInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
48501 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48502 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48503 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
48504 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48505 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
48506 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48507 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48508 | } | ||
48509 | pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48510 | find interpretation(problem,interpretation); | ||
48511 | PartialInterpretation.newElements(interpretation,element); | ||
48512 | find mayInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48513 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48514 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48515 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48516 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48517 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48518 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48519 | } | ||
48520 | pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48521 | find interpretation(problem,interpretation); | ||
48522 | PartialInterpretation.newElements(interpretation,element); | ||
48523 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
48524 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48525 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48526 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
48527 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48528 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
48529 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48530 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48531 | } | ||
48532 | pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
48533 | find interpretation(problem,interpretation); | ||
48534 | PartialInterpretation.newElements(interpretation,element); | ||
48535 | find mayInstanceOfInformationLink_class(problem,interpretation,element); | ||
48536 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48537 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48538 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48539 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48540 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48541 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48542 | } | ||
48543 | |||
48544 | ////////// | ||
48545 | // 4.3 Relation refinement | ||
48546 | ////////// | ||
48547 | pattern refineRelation_model_reference_FunctionalElement( | ||
48548 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48549 | relationIterpretation:PartialRelationInterpretation, | ||
48550 | from: DefinedElement, to: DefinedElement) | ||
48551 | { | ||
48552 | find interpretation(problem,interpretation); | ||
48553 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48554 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
48555 | find mustExist(problem, interpretation, from); | ||
48556 | find mustExist(problem, interpretation, to); | ||
48557 | find mustInstanceOfFunctionalElement_class(problem,interpretation,from); | ||
48558 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to); | ||
48559 | find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
48560 | neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
48561 | } | ||
48562 | pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink( | ||
48563 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48564 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
48565 | from: DefinedElement, to: DefinedElement) | ||
48566 | { | ||
48567 | find interpretation(problem,interpretation); | ||
48568 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48569 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
48570 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
48571 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink"); | ||
48572 | find mustExist(problem, interpretation, from); | ||
48573 | find mustExist(problem, interpretation, to); | ||
48574 | find mustInstanceOfFunctionalInput_class(problem,interpretation,from); | ||
48575 | find mustInstanceOfInformationLink_class(problem,interpretation,to); | ||
48576 | find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
48577 | neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
48578 | } | ||
48579 | pattern refineRelation_type_attribute_Function( | ||
48580 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
48581 | relationIterpretation:PartialRelationInterpretation, | ||
48582 | from: DefinedElement, to: DefinedElement) | ||
48583 | { | ||
48584 | find interpretation(problem,interpretation); | ||
48585 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
48586 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
48587 | find mustExist(problem, interpretation, from); | ||
48588 | find mustExist(problem, interpretation, to); | ||
48589 | find mustInstanceOfFunction_class(problem,interpretation,from); | ||
48590 | find mustInstanceOfFunctionType_enum(problem,interpretation,to); | ||
48591 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
48592 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
48593 | } | ||
48594 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
48595 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
48596 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
48597 | |||
48598 | ////////// | ||
48599 | // 0. Util | ||
48600 | ////////// | ||
48601 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48602 | PartialInterpretation.problem(interpretation,problem); | ||
48603 | } | ||
48604 | |||
48605 | ///////////////////////// | ||
48606 | // 0.1 Existence | ||
48607 | ///////////////////////// | ||
48608 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48609 | find interpretation(problem,interpretation); | ||
48610 | LogicProblem.elements(problem,element); | ||
48611 | } or { | ||
48612 | find interpretation(problem,interpretation); | ||
48613 | PartialInterpretation.newElements(interpretation,element); | ||
48614 | } | ||
48615 | |||
48616 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48617 | find mustExist(problem,interpretation,element); | ||
48618 | } or { | ||
48619 | find interpretation(problem,interpretation); | ||
48620 | neg find elementCloseWorld(element); | ||
48621 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48622 | } | ||
48623 | |||
48624 | private pattern elementCloseWorld(element:DefinedElement) { | ||
48625 | PartialInterpretation.openWorldElements(i,element); | ||
48626 | PartialInterpretation.maxNewElements(i,0); | ||
48627 | } or { | ||
48628 | Scope.targetTypeInterpretation(scope,interpretation); | ||
48629 | PartialTypeInterpratation.elements(interpretation,element); | ||
48630 | Scope.maxNewElements(scope,0); | ||
48631 | } | ||
48632 | |||
48633 | //////////////////////// | ||
48634 | // 0.2 Equivalence | ||
48635 | //////////////////////// | ||
48636 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
48637 | find mayExist(problem,interpretation,a); | ||
48638 | find mayExist(problem,interpretation,b); | ||
48639 | a == b; | ||
48640 | } | ||
48641 | |||
48642 | //////////////////////// | ||
48643 | // 0.3 Required Patterns by TypeIndexer | ||
48644 | //////////////////////// | ||
48645 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
48646 | find interpretation(problem,interpretation); | ||
48647 | LogicProblem.types(problem,type); | ||
48648 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
48649 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48650 | } | ||
48651 | |||
48652 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
48653 | find interpretation(problem,interpretation); | ||
48654 | LogicProblem.types(problem,type); | ||
48655 | TypeDefinition.elements(type,element); | ||
48656 | } or { | ||
48657 | find interpretation(problem,interpretation); | ||
48658 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
48659 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
48660 | } | ||
48661 | |||
48662 | private pattern isPrimitive(element: PrimitiveElement) { | ||
48663 | PrimitiveElement(element); | ||
48664 | } | ||
48665 | |||
48666 | ////////// | ||
48667 | // 1. Problem-Specific Base Indexers | ||
48668 | ////////// | ||
48669 | // 1.1 Type Indexers | ||
48670 | ////////// | ||
48671 | // 1.1.1 primitive Type Indexers | ||
48672 | ////////// | ||
48673 | |||
48674 | ////////// | ||
48675 | // 1.1.2 domain-specific Type Indexers | ||
48676 | ////////// | ||
48677 | /** | ||
48678 | * An element must be an instance of type "FunctionalElement class". | ||
48679 | */ | ||
48680 | private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48681 | Type.name(type,"FunctionalElement class"); | ||
48682 | find directInstanceOf(problem,interpretation,element,type); | ||
48683 | } | ||
48684 | private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48685 | find interpretation(problem,interpretation); | ||
48686 | PartialInterpretation.scopes(interpretation,scope); | ||
48687 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48688 | Scope.maxNewElements(scope,0); | ||
48689 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48690 | Type.name(type,"FunctionalElement class"); | ||
48691 | } | ||
48692 | |||
48693 | /** | ||
48694 | * An element may be an instance of type "FunctionalElement class". | ||
48695 | */ | ||
48696 | private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48697 | { | ||
48698 | find interpretation(problem,interpretation); | ||
48699 | PartialInterpretation.newElements(interpretation,element); | ||
48700 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48701 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48702 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48703 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48704 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
48705 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48706 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
48707 | neg find isPrimitive(element); | ||
48708 | } or { | ||
48709 | find interpretation(problem,interpretation); | ||
48710 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48711 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48712 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48713 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48714 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48715 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
48716 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48717 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
48718 | neg find isPrimitive(element); | ||
48719 | } or | ||
48720 | { find mustInstanceOfFunctionalElement_class(problem,interpretation,element); } | ||
48721 | /** | ||
48722 | * An element must be an instance of type "FunctionalArchitectureModel class". | ||
48723 | */ | ||
48724 | private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48725 | Type.name(type,"FunctionalArchitectureModel class"); | ||
48726 | find directInstanceOf(problem,interpretation,element,type); | ||
48727 | } | ||
48728 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48729 | find interpretation(problem,interpretation); | ||
48730 | PartialInterpretation.scopes(interpretation,scope); | ||
48731 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48732 | Scope.maxNewElements(scope,0); | ||
48733 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48734 | Type.name(type,"FunctionalArchitectureModel class"); | ||
48735 | } | ||
48736 | |||
48737 | /** | ||
48738 | * An element may be an instance of type "FunctionalArchitectureModel class". | ||
48739 | */ | ||
48740 | private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48741 | { | ||
48742 | find interpretation(problem,interpretation); | ||
48743 | PartialInterpretation.newElements(interpretation,element); | ||
48744 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48745 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48746 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48747 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48748 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48749 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
48750 | neg find isPrimitive(element); | ||
48751 | } or { | ||
48752 | find interpretation(problem,interpretation); | ||
48753 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48754 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48755 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48756 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48757 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48758 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48759 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
48760 | neg find isPrimitive(element); | ||
48761 | } or | ||
48762 | { find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); } | ||
48763 | /** | ||
48764 | * An element must be an instance of type "Function class". | ||
48765 | */ | ||
48766 | private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48767 | Type.name(type,"Function class"); | ||
48768 | find directInstanceOf(problem,interpretation,element,type); | ||
48769 | } | ||
48770 | private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48771 | find interpretation(problem,interpretation); | ||
48772 | PartialInterpretation.scopes(interpretation,scope); | ||
48773 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48774 | Scope.maxNewElements(scope,0); | ||
48775 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48776 | Type.name(type,"Function class"); | ||
48777 | } | ||
48778 | |||
48779 | /** | ||
48780 | * An element may be an instance of type "Function class". | ||
48781 | */ | ||
48782 | private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48783 | { | ||
48784 | find interpretation(problem,interpretation); | ||
48785 | PartialInterpretation.newElements(interpretation,element); | ||
48786 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48787 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48788 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48789 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48790 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48791 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
48792 | neg find isPrimitive(element); | ||
48793 | } or { | ||
48794 | find interpretation(problem,interpretation); | ||
48795 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48796 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48797 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48798 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48799 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48800 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48801 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
48802 | neg find isPrimitive(element); | ||
48803 | } or | ||
48804 | { find mustInstanceOfFunction_class(problem,interpretation,element); } | ||
48805 | /** | ||
48806 | * An element must be an instance of type "FAMTerminator class". | ||
48807 | */ | ||
48808 | private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48809 | Type.name(type,"FAMTerminator class"); | ||
48810 | find directInstanceOf(problem,interpretation,element,type); | ||
48811 | } | ||
48812 | private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48813 | find interpretation(problem,interpretation); | ||
48814 | PartialInterpretation.scopes(interpretation,scope); | ||
48815 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48816 | Scope.maxNewElements(scope,0); | ||
48817 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48818 | Type.name(type,"FAMTerminator class"); | ||
48819 | } | ||
48820 | |||
48821 | /** | ||
48822 | * An element may be an instance of type "FAMTerminator class". | ||
48823 | */ | ||
48824 | private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48825 | { | ||
48826 | find interpretation(problem,interpretation); | ||
48827 | PartialInterpretation.newElements(interpretation,element); | ||
48828 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48829 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48830 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48831 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48832 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48833 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
48834 | neg find isPrimitive(element); | ||
48835 | } or { | ||
48836 | find interpretation(problem,interpretation); | ||
48837 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48838 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48839 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48840 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48841 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48842 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48843 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
48844 | neg find isPrimitive(element); | ||
48845 | } or | ||
48846 | { find mustInstanceOfFAMTerminator_class(problem,interpretation,element); } | ||
48847 | /** | ||
48848 | * An element must be an instance of type "InformationLink class". | ||
48849 | */ | ||
48850 | private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48851 | Type.name(type,"InformationLink class"); | ||
48852 | find directInstanceOf(problem,interpretation,element,type); | ||
48853 | } | ||
48854 | private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48855 | find interpretation(problem,interpretation); | ||
48856 | PartialInterpretation.scopes(interpretation,scope); | ||
48857 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48858 | Scope.maxNewElements(scope,0); | ||
48859 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48860 | Type.name(type,"InformationLink class"); | ||
48861 | } | ||
48862 | |||
48863 | /** | ||
48864 | * An element may be an instance of type "InformationLink class". | ||
48865 | */ | ||
48866 | private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48867 | { | ||
48868 | find interpretation(problem,interpretation); | ||
48869 | PartialInterpretation.newElements(interpretation,element); | ||
48870 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48871 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48872 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48873 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48874 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48875 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
48876 | neg find isPrimitive(element); | ||
48877 | } or { | ||
48878 | find interpretation(problem,interpretation); | ||
48879 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48880 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48881 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48882 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48883 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48884 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48885 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
48886 | neg find isPrimitive(element); | ||
48887 | } or | ||
48888 | { find mustInstanceOfInformationLink_class(problem,interpretation,element); } | ||
48889 | /** | ||
48890 | * An element must be an instance of type "FunctionalInterface class". | ||
48891 | */ | ||
48892 | private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48893 | Type.name(type,"FunctionalInterface class"); | ||
48894 | find directInstanceOf(problem,interpretation,element,type); | ||
48895 | } | ||
48896 | private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48897 | find interpretation(problem,interpretation); | ||
48898 | PartialInterpretation.scopes(interpretation,scope); | ||
48899 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48900 | Scope.maxNewElements(scope,0); | ||
48901 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48902 | Type.name(type,"FunctionalInterface class"); | ||
48903 | } | ||
48904 | |||
48905 | /** | ||
48906 | * An element may be an instance of type "FunctionalInterface class". | ||
48907 | */ | ||
48908 | private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48909 | { | ||
48910 | find interpretation(problem,interpretation); | ||
48911 | PartialInterpretation.newElements(interpretation,element); | ||
48912 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48913 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48914 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48915 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48916 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48917 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
48918 | neg find isPrimitive(element); | ||
48919 | } or { | ||
48920 | find interpretation(problem,interpretation); | ||
48921 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48922 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48923 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48924 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
48925 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48926 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48927 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
48928 | neg find isPrimitive(element); | ||
48929 | } or | ||
48930 | { find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); } | ||
48931 | /** | ||
48932 | * An element must be an instance of type "FunctionalInput class". | ||
48933 | */ | ||
48934 | private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48935 | Type.name(type,"FunctionalInput class"); | ||
48936 | find directInstanceOf(problem,interpretation,element,type); | ||
48937 | } | ||
48938 | private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48939 | find interpretation(problem,interpretation); | ||
48940 | PartialInterpretation.scopes(interpretation,scope); | ||
48941 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48942 | Scope.maxNewElements(scope,0); | ||
48943 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48944 | Type.name(type,"FunctionalInput class"); | ||
48945 | } | ||
48946 | |||
48947 | /** | ||
48948 | * An element may be an instance of type "FunctionalInput class". | ||
48949 | */ | ||
48950 | private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48951 | { | ||
48952 | find interpretation(problem,interpretation); | ||
48953 | PartialInterpretation.newElements(interpretation,element); | ||
48954 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48955 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48956 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48957 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48958 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48959 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
48960 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
48961 | neg find isPrimitive(element); | ||
48962 | } or { | ||
48963 | find interpretation(problem,interpretation); | ||
48964 | PartialInterpretation.openWorldElements(interpretation,element); | ||
48965 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48966 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
48967 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
48968 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
48969 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
48970 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
48971 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
48972 | neg find isPrimitive(element); | ||
48973 | } or | ||
48974 | { find mustInstanceOfFunctionalInput_class(problem,interpretation,element); } | ||
48975 | /** | ||
48976 | * An element must be an instance of type "FunctionalOutput class". | ||
48977 | */ | ||
48978 | private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
48979 | Type.name(type,"FunctionalOutput class"); | ||
48980 | find directInstanceOf(problem,interpretation,element,type); | ||
48981 | } | ||
48982 | private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
48983 | find interpretation(problem,interpretation); | ||
48984 | PartialInterpretation.scopes(interpretation,scope); | ||
48985 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
48986 | Scope.maxNewElements(scope,0); | ||
48987 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
48988 | Type.name(type,"FunctionalOutput class"); | ||
48989 | } | ||
48990 | |||
48991 | /** | ||
48992 | * An element may be an instance of type "FunctionalOutput class". | ||
48993 | */ | ||
48994 | private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
48995 | { | ||
48996 | find interpretation(problem,interpretation); | ||
48997 | PartialInterpretation.newElements(interpretation,element); | ||
48998 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
48999 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
49000 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
49001 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
49002 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
49003 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
49004 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
49005 | neg find isPrimitive(element); | ||
49006 | } or { | ||
49007 | find interpretation(problem,interpretation); | ||
49008 | PartialInterpretation.openWorldElements(interpretation,element); | ||
49009 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
49010 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
49011 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
49012 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
49013 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
49014 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
49015 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
49016 | neg find isPrimitive(element); | ||
49017 | } or | ||
49018 | { find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); } | ||
49019 | /** | ||
49020 | * An element must be an instance of type "FunctionalData class". | ||
49021 | */ | ||
49022 | private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
49023 | Type.name(type,"FunctionalData class"); | ||
49024 | find directInstanceOf(problem,interpretation,element,type); | ||
49025 | } | ||
49026 | private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
49027 | find interpretation(problem,interpretation); | ||
49028 | PartialInterpretation.scopes(interpretation,scope); | ||
49029 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
49030 | Scope.maxNewElements(scope,0); | ||
49031 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
49032 | Type.name(type,"FunctionalData class"); | ||
49033 | } | ||
49034 | |||
49035 | /** | ||
49036 | * An element may be an instance of type "FunctionalData class". | ||
49037 | */ | ||
49038 | private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
49039 | { | ||
49040 | find interpretation(problem,interpretation); | ||
49041 | PartialInterpretation.newElements(interpretation,element); | ||
49042 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
49043 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
49044 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
49045 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
49046 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
49047 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
49048 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
49049 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
49050 | neg find isPrimitive(element); | ||
49051 | } or { | ||
49052 | find interpretation(problem,interpretation); | ||
49053 | PartialInterpretation.openWorldElements(interpretation,element); | ||
49054 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
49055 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
49056 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
49057 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
49058 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
49059 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
49060 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
49061 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
49062 | neg find isPrimitive(element); | ||
49063 | } or | ||
49064 | { find mustInstanceOfFunctionalData_class(problem,interpretation,element); } | ||
49065 | /** | ||
49066 | * An element must be an instance of type "FunctionType enum". | ||
49067 | */ | ||
49068 | private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
49069 | Type.name(type,"FunctionType enum"); | ||
49070 | find directInstanceOf(problem,interpretation,element,type); | ||
49071 | } | ||
49072 | private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
49073 | find interpretation(problem,interpretation); | ||
49074 | PartialInterpretation.scopes(interpretation,scope); | ||
49075 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
49076 | Scope.maxNewElements(scope,0); | ||
49077 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
49078 | Type.name(type,"FunctionType enum"); | ||
49079 | } | ||
49080 | |||
49081 | /** | ||
49082 | * An element may be an instance of type "FunctionType enum". | ||
49083 | */ | ||
49084 | private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
49085 | { find mustInstanceOfFunctionType_enum(problem,interpretation,element); } | ||
49086 | |||
49087 | ////////// | ||
49088 | // 1.2 Relation Declaration Indexers | ||
49089 | ////////// | ||
49090 | /** | ||
49091 | * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target) | ||
49092 | */ | ||
49093 | private pattern mustInRelationinterface_reference_FunctionalElement( | ||
49094 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49095 | source: DefinedElement, target:DefinedElement) | ||
49096 | { | ||
49097 | find interpretation(problem,interpretation); | ||
49098 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49099 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement"); | ||
49100 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49101 | BinaryElementRelationLink.param1(link,source); | ||
49102 | BinaryElementRelationLink.param2(link,target); | ||
49103 | } | ||
49104 | /** | ||
49105 | * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target) | ||
49106 | */ | ||
49107 | private pattern mayInRelationinterface_reference_FunctionalElement( | ||
49108 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49109 | source: DefinedElement, target:DefinedElement) | ||
49110 | { | ||
49111 | find interpretation(problem,interpretation); | ||
49112 | // The two endpoint of the link have to exist | ||
49113 | find mayExist(problem, interpretation, source); | ||
49114 | find mayExist(problem, interpretation, target); | ||
49115 | // Type consistency | ||
49116 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
49117 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
49118 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49119 | // the upper bound of the multiplicity should be considered. | ||
49120 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_); | ||
49121 | check(numberOfExistingReferences < 1); | ||
49122 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49123 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49124 | numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_); | ||
49125 | check(numberOfExistingOppositeReferences < 1); | ||
49126 | // The reference is containment, then a new reference cannot be create if: | ||
49127 | // 1. Multiple parents | ||
49128 | neg find mustContains4(problem,interpretation,_,target); | ||
49129 | // 2. Circle in the containment hierarchy | ||
49130 | neg find mustTransitiveContains(source,target); | ||
49131 | } or { | ||
49132 | find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); | ||
49133 | } | ||
49134 | /** | ||
49135 | * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) | ||
49136 | */ | ||
49137 | private pattern mustInRelationmodel_reference_FunctionalElement( | ||
49138 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49139 | source: DefinedElement, target:DefinedElement) | ||
49140 | { | ||
49141 | find interpretation(problem,interpretation); | ||
49142 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49143 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
49144 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49145 | BinaryElementRelationLink.param1(link,source); | ||
49146 | BinaryElementRelationLink.param2(link,target); | ||
49147 | } | ||
49148 | /** | ||
49149 | * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target) | ||
49150 | */ | ||
49151 | private pattern mayInRelationmodel_reference_FunctionalElement( | ||
49152 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49153 | source: DefinedElement, target:DefinedElement) | ||
49154 | { | ||
49155 | find interpretation(problem,interpretation); | ||
49156 | // The two endpoint of the link have to exist | ||
49157 | find mayExist(problem, interpretation, source); | ||
49158 | find mayExist(problem, interpretation, target); | ||
49159 | // Type consistency | ||
49160 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
49161 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target); | ||
49162 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49163 | // the upper bound of the multiplicity should be considered. | ||
49164 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_); | ||
49165 | check(numberOfExistingReferences < 1); | ||
49166 | } or { | ||
49167 | find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target); | ||
49168 | } | ||
49169 | /** | ||
49170 | * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) | ||
49171 | */ | ||
49172 | private pattern mustInRelationparent_reference_FunctionalElement( | ||
49173 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49174 | source: DefinedElement, target:DefinedElement) | ||
49175 | { | ||
49176 | find interpretation(problem,interpretation); | ||
49177 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49178 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement"); | ||
49179 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49180 | BinaryElementRelationLink.param1(link,source); | ||
49181 | BinaryElementRelationLink.param2(link,target); | ||
49182 | } | ||
49183 | /** | ||
49184 | * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target) | ||
49185 | */ | ||
49186 | private pattern mayInRelationparent_reference_FunctionalElement( | ||
49187 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49188 | source: DefinedElement, target:DefinedElement) | ||
49189 | { | ||
49190 | find interpretation(problem,interpretation); | ||
49191 | // The two endpoint of the link have to exist | ||
49192 | find mayExist(problem, interpretation, source); | ||
49193 | find mayExist(problem, interpretation, target); | ||
49194 | // Type consistency | ||
49195 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
49196 | find mayInstanceOfFunction_class(problem,interpretation,target); | ||
49197 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49198 | // the upper bound of the multiplicity should be considered. | ||
49199 | numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_); | ||
49200 | check(numberOfExistingReferences < 1); | ||
49201 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
49202 | // 1. Multiple parents | ||
49203 | neg find mustContains4(problem,interpretation,source,_); | ||
49204 | // 2. Circle in the containment hierarchy | ||
49205 | neg find mustTransitiveContains(source,target); | ||
49206 | } or { | ||
49207 | find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target); | ||
49208 | } | ||
49209 | /** | ||
49210 | * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target) | ||
49211 | */ | ||
49212 | private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel( | ||
49213 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49214 | source: DefinedElement, target:DefinedElement) | ||
49215 | { | ||
49216 | find interpretation(problem,interpretation); | ||
49217 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49218 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
49219 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49220 | BinaryElementRelationLink.param1(link,source); | ||
49221 | BinaryElementRelationLink.param2(link,target); | ||
49222 | } | ||
49223 | /** | ||
49224 | * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target) | ||
49225 | */ | ||
49226 | private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel( | ||
49227 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49228 | source: DefinedElement, target:DefinedElement) | ||
49229 | { | ||
49230 | find interpretation(problem,interpretation); | ||
49231 | // The two endpoint of the link have to exist | ||
49232 | find mayExist(problem, interpretation, source); | ||
49233 | find mayExist(problem, interpretation, target); | ||
49234 | // Type consistency | ||
49235 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source); | ||
49236 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
49237 | // The reference is containment, then a new reference cannot be create if: | ||
49238 | // 1. Multiple parents | ||
49239 | neg find mustContains4(problem,interpretation,_,target); | ||
49240 | // 2. Circle in the containment hierarchy | ||
49241 | neg find mustTransitiveContains(source,target); | ||
49242 | } or { | ||
49243 | find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); | ||
49244 | } | ||
49245 | /** | ||
49246 | * Matcher for detecting tuples t where []subElements reference Function(source,target) | ||
49247 | */ | ||
49248 | private pattern mustInRelationsubElements_reference_Function( | ||
49249 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49250 | source: DefinedElement, target:DefinedElement) | ||
49251 | { | ||
49252 | find interpretation(problem,interpretation); | ||
49253 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49254 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function"); | ||
49255 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49256 | BinaryElementRelationLink.param1(link,source); | ||
49257 | BinaryElementRelationLink.param2(link,target); | ||
49258 | } | ||
49259 | /** | ||
49260 | * Matcher for detecting tuples t where <>subElements reference Function(source,target) | ||
49261 | */ | ||
49262 | private pattern mayInRelationsubElements_reference_Function( | ||
49263 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49264 | source: DefinedElement, target:DefinedElement) | ||
49265 | { | ||
49266 | find interpretation(problem,interpretation); | ||
49267 | // The two endpoint of the link have to exist | ||
49268 | find mayExist(problem, interpretation, source); | ||
49269 | find mayExist(problem, interpretation, target); | ||
49270 | // Type consistency | ||
49271 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
49272 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
49273 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49274 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49275 | numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_); | ||
49276 | check(numberOfExistingOppositeReferences < 1); | ||
49277 | // The reference is containment, then a new reference cannot be create if: | ||
49278 | // 1. Multiple parents | ||
49279 | neg find mustContains4(problem,interpretation,_,target); | ||
49280 | // 2. Circle in the containment hierarchy | ||
49281 | neg find mustTransitiveContains(source,target); | ||
49282 | } or { | ||
49283 | find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); | ||
49284 | } | ||
49285 | /** | ||
49286 | * Matcher for detecting tuples t where []data reference FAMTerminator(source,target) | ||
49287 | */ | ||
49288 | private pattern mustInRelationdata_reference_FAMTerminator( | ||
49289 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49290 | source: DefinedElement, target:DefinedElement) | ||
49291 | { | ||
49292 | find interpretation(problem,interpretation); | ||
49293 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49294 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator"); | ||
49295 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49296 | BinaryElementRelationLink.param1(link,source); | ||
49297 | BinaryElementRelationLink.param2(link,target); | ||
49298 | } | ||
49299 | /** | ||
49300 | * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target) | ||
49301 | */ | ||
49302 | private pattern mayInRelationdata_reference_FAMTerminator( | ||
49303 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49304 | source: DefinedElement, target:DefinedElement) | ||
49305 | { | ||
49306 | find interpretation(problem,interpretation); | ||
49307 | // The two endpoint of the link have to exist | ||
49308 | find mayExist(problem, interpretation, source); | ||
49309 | find mayExist(problem, interpretation, target); | ||
49310 | // Type consistency | ||
49311 | find mayInstanceOfFAMTerminator_class(problem,interpretation,source); | ||
49312 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
49313 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49314 | // the upper bound of the multiplicity should be considered. | ||
49315 | numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_); | ||
49316 | check(numberOfExistingReferences < 1); | ||
49317 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49318 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49319 | numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_); | ||
49320 | check(numberOfExistingOppositeReferences < 1); | ||
49321 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
49322 | // 1. Multiple parents | ||
49323 | neg find mustContains4(problem,interpretation,source,_); | ||
49324 | // 2. Circle in the containment hierarchy | ||
49325 | neg find mustTransitiveContains(source,target); | ||
49326 | } or { | ||
49327 | find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target); | ||
49328 | } | ||
49329 | /** | ||
49330 | * Matcher for detecting tuples t where []from reference InformationLink(source,target) | ||
49331 | */ | ||
49332 | private pattern mustInRelationfrom_reference_InformationLink( | ||
49333 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49334 | source: DefinedElement, target:DefinedElement) | ||
49335 | { | ||
49336 | find interpretation(problem,interpretation); | ||
49337 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49338 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink"); | ||
49339 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49340 | BinaryElementRelationLink.param1(link,source); | ||
49341 | BinaryElementRelationLink.param2(link,target); | ||
49342 | } | ||
49343 | /** | ||
49344 | * Matcher for detecting tuples t where <>from reference InformationLink(source,target) | ||
49345 | */ | ||
49346 | private pattern mayInRelationfrom_reference_InformationLink( | ||
49347 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49348 | source: DefinedElement, target:DefinedElement) | ||
49349 | { | ||
49350 | find interpretation(problem,interpretation); | ||
49351 | // The two endpoint of the link have to exist | ||
49352 | find mayExist(problem, interpretation, source); | ||
49353 | find mayExist(problem, interpretation, target); | ||
49354 | // Type consistency | ||
49355 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
49356 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,target); | ||
49357 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49358 | // the upper bound of the multiplicity should be considered. | ||
49359 | numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_); | ||
49360 | check(numberOfExistingReferences < 1); | ||
49361 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
49362 | // 1. Multiple parents | ||
49363 | neg find mustContains4(problem,interpretation,source,_); | ||
49364 | // 2. Circle in the containment hierarchy | ||
49365 | neg find mustTransitiveContains(source,target); | ||
49366 | } or { | ||
49367 | find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target); | ||
49368 | } | ||
49369 | /** | ||
49370 | * Matcher for detecting tuples t where []to reference InformationLink(source,target) | ||
49371 | */ | ||
49372 | private pattern mustInRelationto_reference_InformationLink( | ||
49373 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49374 | source: DefinedElement, target:DefinedElement) | ||
49375 | { | ||
49376 | find interpretation(problem,interpretation); | ||
49377 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49378 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
49379 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49380 | BinaryElementRelationLink.param1(link,source); | ||
49381 | BinaryElementRelationLink.param2(link,target); | ||
49382 | } | ||
49383 | /** | ||
49384 | * Matcher for detecting tuples t where <>to reference InformationLink(source,target) | ||
49385 | */ | ||
49386 | private pattern mayInRelationto_reference_InformationLink( | ||
49387 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49388 | source: DefinedElement, target:DefinedElement) | ||
49389 | { | ||
49390 | find interpretation(problem,interpretation); | ||
49391 | // The two endpoint of the link have to exist | ||
49392 | find mayExist(problem, interpretation, source); | ||
49393 | find mayExist(problem, interpretation, target); | ||
49394 | // Type consistency | ||
49395 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
49396 | find mayInstanceOfFunctionalInput_class(problem,interpretation,target); | ||
49397 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49398 | // the upper bound of the multiplicity should be considered. | ||
49399 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_); | ||
49400 | check(numberOfExistingReferences < 1); | ||
49401 | } or { | ||
49402 | find mustInRelationto_reference_InformationLink(problem,interpretation,source,target); | ||
49403 | } | ||
49404 | /** | ||
49405 | * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target) | ||
49406 | */ | ||
49407 | private pattern mustInRelationdata_reference_FunctionalInterface( | ||
49408 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49409 | source: DefinedElement, target:DefinedElement) | ||
49410 | { | ||
49411 | find interpretation(problem,interpretation); | ||
49412 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49413 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface"); | ||
49414 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49415 | BinaryElementRelationLink.param1(link,source); | ||
49416 | BinaryElementRelationLink.param2(link,target); | ||
49417 | } | ||
49418 | /** | ||
49419 | * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target) | ||
49420 | */ | ||
49421 | private pattern mayInRelationdata_reference_FunctionalInterface( | ||
49422 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49423 | source: DefinedElement, target:DefinedElement) | ||
49424 | { | ||
49425 | find interpretation(problem,interpretation); | ||
49426 | // The two endpoint of the link have to exist | ||
49427 | find mayExist(problem, interpretation, source); | ||
49428 | find mayExist(problem, interpretation, target); | ||
49429 | // Type consistency | ||
49430 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
49431 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
49432 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49433 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49434 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_); | ||
49435 | check(numberOfExistingOppositeReferences < 1); | ||
49436 | // The reference is containment, then a new reference cannot be create if: | ||
49437 | // 1. Multiple parents | ||
49438 | neg find mustContains4(problem,interpretation,_,target); | ||
49439 | // 2. Circle in the containment hierarchy | ||
49440 | neg find mustTransitiveContains(source,target); | ||
49441 | } or { | ||
49442 | find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); | ||
49443 | } | ||
49444 | /** | ||
49445 | * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target) | ||
49446 | */ | ||
49447 | private pattern mustInRelationelement_reference_FunctionalInterface( | ||
49448 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49449 | source: DefinedElement, target:DefinedElement) | ||
49450 | { | ||
49451 | find interpretation(problem,interpretation); | ||
49452 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49453 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface"); | ||
49454 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49455 | BinaryElementRelationLink.param1(link,source); | ||
49456 | BinaryElementRelationLink.param2(link,target); | ||
49457 | } | ||
49458 | /** | ||
49459 | * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target) | ||
49460 | */ | ||
49461 | private pattern mayInRelationelement_reference_FunctionalInterface( | ||
49462 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49463 | source: DefinedElement, target:DefinedElement) | ||
49464 | { | ||
49465 | find interpretation(problem,interpretation); | ||
49466 | // The two endpoint of the link have to exist | ||
49467 | find mayExist(problem, interpretation, source); | ||
49468 | find mayExist(problem, interpretation, target); | ||
49469 | // Type consistency | ||
49470 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
49471 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
49472 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49473 | // the upper bound of the multiplicity should be considered. | ||
49474 | numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_); | ||
49475 | check(numberOfExistingReferences < 1); | ||
49476 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49477 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49478 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_); | ||
49479 | check(numberOfExistingOppositeReferences < 1); | ||
49480 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
49481 | // 1. Multiple parents | ||
49482 | neg find mustContains4(problem,interpretation,source,_); | ||
49483 | // 2. Circle in the containment hierarchy | ||
49484 | neg find mustTransitiveContains(source,target); | ||
49485 | } or { | ||
49486 | find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target); | ||
49487 | } | ||
49488 | /** | ||
49489 | * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target) | ||
49490 | */ | ||
49491 | private pattern mustInRelationIncomingLinks_reference_FunctionalInput( | ||
49492 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49493 | source: DefinedElement, target:DefinedElement) | ||
49494 | { | ||
49495 | find interpretation(problem,interpretation); | ||
49496 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49497 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
49498 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49499 | BinaryElementRelationLink.param1(link,source); | ||
49500 | BinaryElementRelationLink.param2(link,target); | ||
49501 | } | ||
49502 | /** | ||
49503 | * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target) | ||
49504 | */ | ||
49505 | private pattern mayInRelationIncomingLinks_reference_FunctionalInput( | ||
49506 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49507 | source: DefinedElement, target:DefinedElement) | ||
49508 | { | ||
49509 | find interpretation(problem,interpretation); | ||
49510 | // The two endpoint of the link have to exist | ||
49511 | find mayExist(problem, interpretation, source); | ||
49512 | find mayExist(problem, interpretation, target); | ||
49513 | // Type consistency | ||
49514 | find mayInstanceOfFunctionalInput_class(problem,interpretation,source); | ||
49515 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
49516 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49517 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49518 | numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_); | ||
49519 | check(numberOfExistingOppositeReferences < 1); | ||
49520 | } or { | ||
49521 | find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target); | ||
49522 | } | ||
49523 | /** | ||
49524 | * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target) | ||
49525 | */ | ||
49526 | private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput( | ||
49527 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49528 | source: DefinedElement, target:DefinedElement) | ||
49529 | { | ||
49530 | find interpretation(problem,interpretation); | ||
49531 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49532 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput"); | ||
49533 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49534 | BinaryElementRelationLink.param1(link,source); | ||
49535 | BinaryElementRelationLink.param2(link,target); | ||
49536 | } | ||
49537 | /** | ||
49538 | * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target) | ||
49539 | */ | ||
49540 | private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput( | ||
49541 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49542 | source: DefinedElement, target:DefinedElement) | ||
49543 | { | ||
49544 | find interpretation(problem,interpretation); | ||
49545 | // The two endpoint of the link have to exist | ||
49546 | find mayExist(problem, interpretation, source); | ||
49547 | find mayExist(problem, interpretation, target); | ||
49548 | // Type consistency | ||
49549 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,source); | ||
49550 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
49551 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49552 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49553 | numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_); | ||
49554 | check(numberOfExistingOppositeReferences < 1); | ||
49555 | // The reference is containment, then a new reference cannot be create if: | ||
49556 | // 1. Multiple parents | ||
49557 | neg find mustContains4(problem,interpretation,_,target); | ||
49558 | // 2. Circle in the containment hierarchy | ||
49559 | neg find mustTransitiveContains(source,target); | ||
49560 | } or { | ||
49561 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); | ||
49562 | } | ||
49563 | /** | ||
49564 | * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target) | ||
49565 | */ | ||
49566 | private pattern mustInRelationterminator_reference_FunctionalData( | ||
49567 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49568 | source: DefinedElement, target:DefinedElement) | ||
49569 | { | ||
49570 | find interpretation(problem,interpretation); | ||
49571 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49572 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData"); | ||
49573 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49574 | BinaryElementRelationLink.param1(link,source); | ||
49575 | BinaryElementRelationLink.param2(link,target); | ||
49576 | } | ||
49577 | /** | ||
49578 | * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target) | ||
49579 | */ | ||
49580 | private pattern mayInRelationterminator_reference_FunctionalData( | ||
49581 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49582 | source: DefinedElement, target:DefinedElement) | ||
49583 | { | ||
49584 | find interpretation(problem,interpretation); | ||
49585 | // The two endpoint of the link have to exist | ||
49586 | find mayExist(problem, interpretation, source); | ||
49587 | find mayExist(problem, interpretation, target); | ||
49588 | // Type consistency | ||
49589 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
49590 | find mayInstanceOfFAMTerminator_class(problem,interpretation,target); | ||
49591 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49592 | // the upper bound of the multiplicity should be considered. | ||
49593 | numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_); | ||
49594 | check(numberOfExistingReferences < 1); | ||
49595 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
49596 | // the upper bound of the opposite reference multiplicity should be considered. | ||
49597 | numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_); | ||
49598 | check(numberOfExistingOppositeReferences < 1); | ||
49599 | // The reference is containment, then a new reference cannot be create if: | ||
49600 | // 1. Multiple parents | ||
49601 | neg find mustContains4(problem,interpretation,_,target); | ||
49602 | // 2. Circle in the containment hierarchy | ||
49603 | neg find mustTransitiveContains(source,target); | ||
49604 | } or { | ||
49605 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); | ||
49606 | } | ||
49607 | /** | ||
49608 | * Matcher for detecting tuples t where []interface reference FunctionalData(source,target) | ||
49609 | */ | ||
49610 | private pattern mustInRelationinterface_reference_FunctionalData( | ||
49611 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49612 | source: DefinedElement, target:DefinedElement) | ||
49613 | { | ||
49614 | find interpretation(problem,interpretation); | ||
49615 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49616 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData"); | ||
49617 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49618 | BinaryElementRelationLink.param1(link,source); | ||
49619 | BinaryElementRelationLink.param2(link,target); | ||
49620 | } | ||
49621 | /** | ||
49622 | * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target) | ||
49623 | */ | ||
49624 | private pattern mayInRelationinterface_reference_FunctionalData( | ||
49625 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49626 | source: DefinedElement, target:DefinedElement) | ||
49627 | { | ||
49628 | find interpretation(problem,interpretation); | ||
49629 | // The two endpoint of the link have to exist | ||
49630 | find mayExist(problem, interpretation, source); | ||
49631 | find mayExist(problem, interpretation, target); | ||
49632 | // Type consistency | ||
49633 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
49634 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
49635 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49636 | // the upper bound of the multiplicity should be considered. | ||
49637 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_); | ||
49638 | check(numberOfExistingReferences < 1); | ||
49639 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
49640 | // 1. Multiple parents | ||
49641 | neg find mustContains4(problem,interpretation,source,_); | ||
49642 | // 2. Circle in the containment hierarchy | ||
49643 | neg find mustTransitiveContains(source,target); | ||
49644 | } or { | ||
49645 | find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target); | ||
49646 | } | ||
49647 | /** | ||
49648 | * Matcher for detecting tuples t where []type attribute Function(source,target) | ||
49649 | */ | ||
49650 | private pattern mustInRelationtype_attribute_Function( | ||
49651 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49652 | source: DefinedElement, target:DefinedElement) | ||
49653 | { | ||
49654 | find interpretation(problem,interpretation); | ||
49655 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49656 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
49657 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
49658 | BinaryElementRelationLink.param1(link,source); | ||
49659 | BinaryElementRelationLink.param2(link,target); | ||
49660 | } | ||
49661 | /** | ||
49662 | * Matcher for detecting tuples t where <>type attribute Function(source,target) | ||
49663 | */ | ||
49664 | private pattern mayInRelationtype_attribute_Function( | ||
49665 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49666 | source: DefinedElement, target:DefinedElement) | ||
49667 | { | ||
49668 | find interpretation(problem,interpretation); | ||
49669 | // The two endpoint of the link have to exist | ||
49670 | find mayExist(problem, interpretation, source); | ||
49671 | find mayExist(problem, interpretation, target); | ||
49672 | // Type consistency | ||
49673 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
49674 | find mayInstanceOfFunctionType_enum(problem,interpretation,target); | ||
49675 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
49676 | // the upper bound of the multiplicity should be considered. | ||
49677 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_); | ||
49678 | check(numberOfExistingReferences < 1); | ||
49679 | } or { | ||
49680 | find mustInRelationtype_attribute_Function(problem,interpretation,source,target); | ||
49681 | } | ||
49682 | |||
49683 | ////////// | ||
49684 | // 1.3 Relation Definition Indexers | ||
49685 | ////////// | ||
49686 | |||
49687 | ////////// | ||
49688 | // 1.4 Containment Indexer | ||
49689 | ////////// | ||
49690 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
49691 | find mustContains4(_,_,source,target); | ||
49692 | } | ||
49693 | |||
49694 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
49695 | source: DefinedElement, target: DefinedElement) | ||
49696 | { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or | ||
49697 | |||
49698 | { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or | ||
49699 | |||
49700 | { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or | ||
49701 | |||
49702 | { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or | ||
49703 | |||
49704 | { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or | ||
49705 | |||
49706 | { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); } | ||
49707 | |||
49708 | private pattern mustTransitiveContains(source,target) { | ||
49709 | find mustContains2+(source,target); | ||
49710 | } | ||
49711 | |||
49712 | ////////// | ||
49713 | // 2. Invalidation Indexers | ||
49714 | ////////// | ||
49715 | // 2.1 Invalidated by WF Queries | ||
49716 | ////////// | ||
49717 | |||
49718 | ////////// | ||
49719 | // 3. Unfinishedness Indexers | ||
49720 | ////////// | ||
49721 | // 3.1 Unfinishedness Measured by Multiplicity | ||
49722 | ////////// | ||
49723 | pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
49724 | find interpretation(problem,interpretation); | ||
49725 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49726 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
49727 | find mustInstanceOfFunctionalElement_class(problem,interpretation,object); | ||
49728 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_); | ||
49729 | check(numberOfExistingReferences < 1); | ||
49730 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
49731 | } | ||
49732 | pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
49733 | find interpretation(problem,interpretation); | ||
49734 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49735 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
49736 | find mustInstanceOfInformationLink_class(problem,interpretation,object); | ||
49737 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_); | ||
49738 | check(numberOfExistingReferences < 1); | ||
49739 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
49740 | } | ||
49741 | pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
49742 | find interpretation(problem,interpretation); | ||
49743 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
49744 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
49745 | find mustInstanceOfFunction_class(problem,interpretation,object); | ||
49746 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_); | ||
49747 | check(numberOfExistingReferences < 1); | ||
49748 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
49749 | } | ||
49750 | |||
49751 | ////////// | ||
49752 | // 3.2 Unfinishedness Measured by WF Queries | ||
49753 | ////////// | ||
49754 | |||
49755 | ////////// | ||
49756 | // 4. Refinement Indexers | ||
49757 | ////////// | ||
49758 | // 4.1 Object constructors | ||
49759 | ////////// | ||
49760 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
49761 | { | ||
49762 | find interpretation(problem,interpretation); | ||
49763 | find mustInstanceOfInformationLink_class(problem,interpretation,root); | ||
49764 | find mustExist(problem, interpretation, root); | ||
49765 | }or{ | ||
49766 | find interpretation(problem,interpretation); | ||
49767 | find mustInstanceOfFAMTerminator_class(problem,interpretation,root); | ||
49768 | find mustExist(problem, interpretation, root); | ||
49769 | }or{ | ||
49770 | find interpretation(problem,interpretation); | ||
49771 | find mustInstanceOfFunctionalData_class(problem,interpretation,root); | ||
49772 | find mustExist(problem, interpretation, root); | ||
49773 | }or{ | ||
49774 | find interpretation(problem,interpretation); | ||
49775 | find mustInstanceOfFunctionalElement_class(problem,interpretation,root); | ||
49776 | find mustExist(problem, interpretation, root); | ||
49777 | }or{ | ||
49778 | find interpretation(problem,interpretation); | ||
49779 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); | ||
49780 | find mustExist(problem, interpretation, root); | ||
49781 | }or{ | ||
49782 | find interpretation(problem,interpretation); | ||
49783 | find mustInstanceOfFunction_class(problem,interpretation,root); | ||
49784 | find mustExist(problem, interpretation, root); | ||
49785 | }or{ | ||
49786 | find interpretation(problem,interpretation); | ||
49787 | find mustInstanceOfFunctionalInput_class(problem,interpretation,root); | ||
49788 | find mustExist(problem, interpretation, root); | ||
49789 | }or{ | ||
49790 | find interpretation(problem,interpretation); | ||
49791 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); | ||
49792 | find mustExist(problem, interpretation, root); | ||
49793 | }or{ | ||
49794 | find interpretation(problem,interpretation); | ||
49795 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); | ||
49796 | find mustExist(problem, interpretation, root); | ||
49797 | } | ||
49798 | pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( | ||
49799 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49800 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49801 | container:DefinedElement) | ||
49802 | { | ||
49803 | find interpretation(problem,interpretation); | ||
49804 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49805 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
49806 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49807 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); | ||
49808 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
49809 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); | ||
49810 | find mustInstanceOfFunctionalData_class(problem,interpretation,container); | ||
49811 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
49812 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); | ||
49813 | find mustExist(problem, interpretation, container); | ||
49814 | neg find mustExist(problem, interpretation, newObject); | ||
49815 | } | ||
49816 | pattern createObject_FAMTerminator_class( | ||
49817 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49818 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49819 | { | ||
49820 | find interpretation(problem,interpretation); | ||
49821 | neg find hasElementInContainment(problem,interpretation); | ||
49822 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49823 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
49824 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
49825 | find mayExist(problem, interpretation, newObject); | ||
49826 | neg find mustExist(problem, interpretation, newObject); | ||
49827 | } | ||
49828 | pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( | ||
49829 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49830 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49831 | container:DefinedElement) | ||
49832 | { | ||
49833 | find interpretation(problem,interpretation); | ||
49834 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49835 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
49836 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49837 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); | ||
49838 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
49839 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); | ||
49840 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); | ||
49841 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
49842 | find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); | ||
49843 | find mustExist(problem, interpretation, container); | ||
49844 | neg find mustExist(problem, interpretation, newObject); | ||
49845 | } | ||
49846 | pattern createObject_InformationLink_class( | ||
49847 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49848 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49849 | { | ||
49850 | find interpretation(problem,interpretation); | ||
49851 | neg find hasElementInContainment(problem,interpretation); | ||
49852 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49853 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
49854 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
49855 | find mayExist(problem, interpretation, newObject); | ||
49856 | neg find mustExist(problem, interpretation, newObject); | ||
49857 | } | ||
49858 | pattern createObject_FunctionalArchitectureModel_class( | ||
49859 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49860 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49861 | { | ||
49862 | find interpretation(problem,interpretation); | ||
49863 | neg find hasElementInContainment(problem,interpretation); | ||
49864 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49865 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class"); | ||
49866 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject); | ||
49867 | find mayExist(problem, interpretation, newObject); | ||
49868 | neg find mustExist(problem, interpretation, newObject); | ||
49869 | } | ||
49870 | pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( | ||
49871 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49872 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49873 | container:DefinedElement) | ||
49874 | { | ||
49875 | find interpretation(problem,interpretation); | ||
49876 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49877 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
49878 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49879 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
49880 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); | ||
49881 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
49882 | find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); | ||
49883 | find mustExist(problem, interpretation, container); | ||
49884 | neg find mustExist(problem, interpretation, newObject); | ||
49885 | } | ||
49886 | pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( | ||
49887 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49888 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49889 | container:DefinedElement) | ||
49890 | { | ||
49891 | find interpretation(problem,interpretation); | ||
49892 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49893 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
49894 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49895 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); | ||
49896 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
49897 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); | ||
49898 | find mustInstanceOfFunction_class(problem,interpretation,container); | ||
49899 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
49900 | find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); | ||
49901 | find mustExist(problem, interpretation, container); | ||
49902 | neg find mustExist(problem, interpretation, newObject); | ||
49903 | } | ||
49904 | pattern createObject_Function_class( | ||
49905 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49906 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49907 | { | ||
49908 | find interpretation(problem,interpretation); | ||
49909 | neg find hasElementInContainment(problem,interpretation); | ||
49910 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49911 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
49912 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
49913 | find mayExist(problem, interpretation, newObject); | ||
49914 | neg find mustExist(problem, interpretation, newObject); | ||
49915 | } | ||
49916 | pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( | ||
49917 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49918 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49919 | container:DefinedElement) | ||
49920 | { | ||
49921 | find interpretation(problem,interpretation); | ||
49922 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49923 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
49924 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49925 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); | ||
49926 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
49927 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); | ||
49928 | find mustInstanceOfFunctionalElement_class(problem,interpretation,container); | ||
49929 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
49930 | find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); | ||
49931 | find mustExist(problem, interpretation, container); | ||
49932 | neg find mustExist(problem, interpretation, newObject); | ||
49933 | } | ||
49934 | pattern createObject_FunctionalInterface_class( | ||
49935 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49936 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49937 | { | ||
49938 | find interpretation(problem,interpretation); | ||
49939 | neg find hasElementInContainment(problem,interpretation); | ||
49940 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49941 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
49942 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
49943 | find mayExist(problem, interpretation, newObject); | ||
49944 | neg find mustExist(problem, interpretation, newObject); | ||
49945 | } | ||
49946 | pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
49947 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49948 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49949 | container:DefinedElement) | ||
49950 | { | ||
49951 | find interpretation(problem,interpretation); | ||
49952 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49953 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
49954 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49955 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
49956 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
49957 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
49958 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
49959 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
49960 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
49961 | find mustExist(problem, interpretation, container); | ||
49962 | neg find mustExist(problem, interpretation, newObject); | ||
49963 | } | ||
49964 | pattern createObject_FunctionalOutput_class( | ||
49965 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49966 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49967 | { | ||
49968 | find interpretation(problem,interpretation); | ||
49969 | neg find hasElementInContainment(problem,interpretation); | ||
49970 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49971 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
49972 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
49973 | find mayExist(problem, interpretation, newObject); | ||
49974 | neg find mustExist(problem, interpretation, newObject); | ||
49975 | } | ||
49976 | pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
49977 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49978 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
49979 | container:DefinedElement) | ||
49980 | { | ||
49981 | find interpretation(problem,interpretation); | ||
49982 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
49983 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
49984 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
49985 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
49986 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
49987 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
49988 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
49989 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
49990 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
49991 | find mustExist(problem, interpretation, container); | ||
49992 | neg find mustExist(problem, interpretation, newObject); | ||
49993 | } | ||
49994 | pattern createObject_FunctionalInput_class( | ||
49995 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
49996 | typeInterpretation:PartialComplexTypeInterpretation) | ||
49997 | { | ||
49998 | find interpretation(problem,interpretation); | ||
49999 | neg find hasElementInContainment(problem,interpretation); | ||
50000 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
50001 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
50002 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
50003 | find mayExist(problem, interpretation, newObject); | ||
50004 | neg find mustExist(problem, interpretation, newObject); | ||
50005 | } | ||
50006 | |||
50007 | ////////// | ||
50008 | // 4.2 Type refinement | ||
50009 | ////////// | ||
50010 | pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50011 | find interpretation(problem,interpretation); | ||
50012 | PartialInterpretation.newElements(interpretation,element); | ||
50013 | find mayInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50014 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50015 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50016 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50017 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50018 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50019 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50020 | } | ||
50021 | pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50022 | find interpretation(problem,interpretation); | ||
50023 | PartialInterpretation.newElements(interpretation,element); | ||
50024 | find mayInstanceOfInformationLink_class(problem,interpretation,element); | ||
50025 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50026 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50027 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50028 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50029 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50030 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50031 | } | ||
50032 | pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50033 | find interpretation(problem,interpretation); | ||
50034 | PartialInterpretation.newElements(interpretation,element); | ||
50035 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50036 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50037 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50038 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50039 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50040 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50041 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50042 | } | ||
50043 | pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50044 | find interpretation(problem,interpretation); | ||
50045 | PartialInterpretation.newElements(interpretation,element); | ||
50046 | find mayInstanceOfFunction_class(problem,interpretation,element); | ||
50047 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50048 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50049 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50050 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50051 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50052 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
50053 | } | ||
50054 | pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50055 | find interpretation(problem,interpretation); | ||
50056 | PartialInterpretation.newElements(interpretation,element); | ||
50057 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50058 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50059 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50060 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50061 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50062 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50063 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50064 | } | ||
50065 | pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50066 | find interpretation(problem,interpretation); | ||
50067 | PartialInterpretation.newElements(interpretation,element); | ||
50068 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50069 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50070 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50071 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50072 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50073 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50074 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50075 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50076 | } | ||
50077 | pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
50078 | find interpretation(problem,interpretation); | ||
50079 | PartialInterpretation.newElements(interpretation,element); | ||
50080 | find mayInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50081 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50082 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50083 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50084 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50085 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50086 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50087 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50088 | } | ||
50089 | |||
50090 | ////////// | ||
50091 | // 4.3 Relation refinement | ||
50092 | ////////// | ||
50093 | pattern refineRelation_model_reference_FunctionalElement( | ||
50094 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50095 | relationIterpretation:PartialRelationInterpretation, | ||
50096 | from: DefinedElement, to: DefinedElement) | ||
50097 | { | ||
50098 | find interpretation(problem,interpretation); | ||
50099 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50100 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
50101 | find mustExist(problem, interpretation, from); | ||
50102 | find mustExist(problem, interpretation, to); | ||
50103 | find mustInstanceOfFunctionalElement_class(problem,interpretation,from); | ||
50104 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to); | ||
50105 | find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
50106 | neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
50107 | } | ||
50108 | pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink( | ||
50109 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50110 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
50111 | from: DefinedElement, to: DefinedElement) | ||
50112 | { | ||
50113 | find interpretation(problem,interpretation); | ||
50114 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50115 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
50116 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
50117 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink"); | ||
50118 | find mustExist(problem, interpretation, from); | ||
50119 | find mustExist(problem, interpretation, to); | ||
50120 | find mustInstanceOfFunctionalInput_class(problem,interpretation,from); | ||
50121 | find mustInstanceOfInformationLink_class(problem,interpretation,to); | ||
50122 | find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
50123 | neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
50124 | } | ||
50125 | pattern refineRelation_type_attribute_Function( | ||
50126 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50127 | relationIterpretation:PartialRelationInterpretation, | ||
50128 | from: DefinedElement, to: DefinedElement) | ||
50129 | { | ||
50130 | find interpretation(problem,interpretation); | ||
50131 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50132 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
50133 | find mustExist(problem, interpretation, from); | ||
50134 | find mustExist(problem, interpretation, to); | ||
50135 | find mustInstanceOfFunction_class(problem,interpretation,from); | ||
50136 | find mustInstanceOfFunctionType_enum(problem,interpretation,to); | ||
50137 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
50138 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
50139 | } | ||
50140 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
50141 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
50142 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
50143 | |||
50144 | ////////// | ||
50145 | // 0. Util | ||
50146 | ////////// | ||
50147 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50148 | PartialInterpretation.problem(interpretation,problem); | ||
50149 | } | ||
50150 | |||
50151 | ///////////////////////// | ||
50152 | // 0.1 Existence | ||
50153 | ///////////////////////// | ||
50154 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50155 | find interpretation(problem,interpretation); | ||
50156 | LogicProblem.elements(problem,element); | ||
50157 | } or { | ||
50158 | find interpretation(problem,interpretation); | ||
50159 | PartialInterpretation.newElements(interpretation,element); | ||
50160 | } | ||
50161 | |||
50162 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50163 | find mustExist(problem,interpretation,element); | ||
50164 | } or { | ||
50165 | find interpretation(problem,interpretation); | ||
50166 | neg find elementCloseWorld(element); | ||
50167 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50168 | } | ||
50169 | |||
50170 | private pattern elementCloseWorld(element:DefinedElement) { | ||
50171 | PartialInterpretation.openWorldElements(i,element); | ||
50172 | PartialInterpretation.maxNewElements(i,0); | ||
50173 | } or { | ||
50174 | Scope.targetTypeInterpretation(scope,interpretation); | ||
50175 | PartialTypeInterpratation.elements(interpretation,element); | ||
50176 | Scope.maxNewElements(scope,0); | ||
50177 | } | ||
50178 | |||
50179 | //////////////////////// | ||
50180 | // 0.2 Equivalence | ||
50181 | //////////////////////// | ||
50182 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
50183 | find mayExist(problem,interpretation,a); | ||
50184 | find mayExist(problem,interpretation,b); | ||
50185 | a == b; | ||
50186 | } | ||
50187 | |||
50188 | //////////////////////// | ||
50189 | // 0.3 Required Patterns by TypeIndexer | ||
50190 | //////////////////////// | ||
50191 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
50192 | find interpretation(problem,interpretation); | ||
50193 | LogicProblem.types(problem,type); | ||
50194 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
50195 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50196 | } | ||
50197 | |||
50198 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
50199 | find interpretation(problem,interpretation); | ||
50200 | LogicProblem.types(problem,type); | ||
50201 | TypeDefinition.elements(type,element); | ||
50202 | } or { | ||
50203 | find interpretation(problem,interpretation); | ||
50204 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
50205 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
50206 | } | ||
50207 | |||
50208 | private pattern isPrimitive(element: PrimitiveElement) { | ||
50209 | PrimitiveElement(element); | ||
50210 | } | ||
50211 | |||
50212 | ////////// | ||
50213 | // 1. Problem-Specific Base Indexers | ||
50214 | ////////// | ||
50215 | // 1.1 Type Indexers | ||
50216 | ////////// | ||
50217 | // 1.1.1 primitive Type Indexers | ||
50218 | ////////// | ||
50219 | |||
50220 | ////////// | ||
50221 | // 1.1.2 domain-specific Type Indexers | ||
50222 | ////////// | ||
50223 | /** | ||
50224 | * An element must be an instance of type "FunctionalElement class". | ||
50225 | */ | ||
50226 | private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50227 | Type.name(type,"FunctionalElement class"); | ||
50228 | find directInstanceOf(problem,interpretation,element,type); | ||
50229 | } | ||
50230 | private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50231 | find interpretation(problem,interpretation); | ||
50232 | PartialInterpretation.scopes(interpretation,scope); | ||
50233 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50234 | Scope.maxNewElements(scope,0); | ||
50235 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50236 | Type.name(type,"FunctionalElement class"); | ||
50237 | } | ||
50238 | |||
50239 | /** | ||
50240 | * An element may be an instance of type "FunctionalElement class". | ||
50241 | */ | ||
50242 | private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50243 | { | ||
50244 | find interpretation(problem,interpretation); | ||
50245 | PartialInterpretation.newElements(interpretation,element); | ||
50246 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50247 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50248 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50249 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50250 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50251 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
50252 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
50253 | neg find isPrimitive(element); | ||
50254 | } or { | ||
50255 | find interpretation(problem,interpretation); | ||
50256 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50257 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50258 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50259 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50260 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50261 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50262 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
50263 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
50264 | neg find isPrimitive(element); | ||
50265 | } or | ||
50266 | { find mustInstanceOfFunctionalElement_class(problem,interpretation,element); } | ||
50267 | /** | ||
50268 | * An element must be an instance of type "FunctionalArchitectureModel class". | ||
50269 | */ | ||
50270 | private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50271 | Type.name(type,"FunctionalArchitectureModel class"); | ||
50272 | find directInstanceOf(problem,interpretation,element,type); | ||
50273 | } | ||
50274 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50275 | find interpretation(problem,interpretation); | ||
50276 | PartialInterpretation.scopes(interpretation,scope); | ||
50277 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50278 | Scope.maxNewElements(scope,0); | ||
50279 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50280 | Type.name(type,"FunctionalArchitectureModel class"); | ||
50281 | } | ||
50282 | |||
50283 | /** | ||
50284 | * An element may be an instance of type "FunctionalArchitectureModel class". | ||
50285 | */ | ||
50286 | private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50287 | { | ||
50288 | find interpretation(problem,interpretation); | ||
50289 | PartialInterpretation.newElements(interpretation,element); | ||
50290 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50291 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50292 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50293 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50294 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50295 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
50296 | neg find isPrimitive(element); | ||
50297 | } or { | ||
50298 | find interpretation(problem,interpretation); | ||
50299 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50300 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50301 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50302 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50303 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50304 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50305 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
50306 | neg find isPrimitive(element); | ||
50307 | } or | ||
50308 | { find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); } | ||
50309 | /** | ||
50310 | * An element must be an instance of type "Function class". | ||
50311 | */ | ||
50312 | private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50313 | Type.name(type,"Function class"); | ||
50314 | find directInstanceOf(problem,interpretation,element,type); | ||
50315 | } | ||
50316 | private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50317 | find interpretation(problem,interpretation); | ||
50318 | PartialInterpretation.scopes(interpretation,scope); | ||
50319 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50320 | Scope.maxNewElements(scope,0); | ||
50321 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50322 | Type.name(type,"Function class"); | ||
50323 | } | ||
50324 | |||
50325 | /** | ||
50326 | * An element may be an instance of type "Function class". | ||
50327 | */ | ||
50328 | private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50329 | { | ||
50330 | find interpretation(problem,interpretation); | ||
50331 | PartialInterpretation.newElements(interpretation,element); | ||
50332 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50333 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50334 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50335 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50336 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50337 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
50338 | neg find isPrimitive(element); | ||
50339 | } or { | ||
50340 | find interpretation(problem,interpretation); | ||
50341 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50342 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50343 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50344 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50345 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50346 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50347 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
50348 | neg find isPrimitive(element); | ||
50349 | } or | ||
50350 | { find mustInstanceOfFunction_class(problem,interpretation,element); } | ||
50351 | /** | ||
50352 | * An element must be an instance of type "FAMTerminator class". | ||
50353 | */ | ||
50354 | private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50355 | Type.name(type,"FAMTerminator class"); | ||
50356 | find directInstanceOf(problem,interpretation,element,type); | ||
50357 | } | ||
50358 | private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50359 | find interpretation(problem,interpretation); | ||
50360 | PartialInterpretation.scopes(interpretation,scope); | ||
50361 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50362 | Scope.maxNewElements(scope,0); | ||
50363 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50364 | Type.name(type,"FAMTerminator class"); | ||
50365 | } | ||
50366 | |||
50367 | /** | ||
50368 | * An element may be an instance of type "FAMTerminator class". | ||
50369 | */ | ||
50370 | private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50371 | { | ||
50372 | find interpretation(problem,interpretation); | ||
50373 | PartialInterpretation.newElements(interpretation,element); | ||
50374 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50375 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50376 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50377 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50378 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50379 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
50380 | neg find isPrimitive(element); | ||
50381 | } or { | ||
50382 | find interpretation(problem,interpretation); | ||
50383 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50384 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50385 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50386 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50387 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50388 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50389 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
50390 | neg find isPrimitive(element); | ||
50391 | } or | ||
50392 | { find mustInstanceOfFAMTerminator_class(problem,interpretation,element); } | ||
50393 | /** | ||
50394 | * An element must be an instance of type "InformationLink class". | ||
50395 | */ | ||
50396 | private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50397 | Type.name(type,"InformationLink class"); | ||
50398 | find directInstanceOf(problem,interpretation,element,type); | ||
50399 | } | ||
50400 | private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50401 | find interpretation(problem,interpretation); | ||
50402 | PartialInterpretation.scopes(interpretation,scope); | ||
50403 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50404 | Scope.maxNewElements(scope,0); | ||
50405 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50406 | Type.name(type,"InformationLink class"); | ||
50407 | } | ||
50408 | |||
50409 | /** | ||
50410 | * An element may be an instance of type "InformationLink class". | ||
50411 | */ | ||
50412 | private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50413 | { | ||
50414 | find interpretation(problem,interpretation); | ||
50415 | PartialInterpretation.newElements(interpretation,element); | ||
50416 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50417 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50418 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50419 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50420 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50421 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
50422 | neg find isPrimitive(element); | ||
50423 | } or { | ||
50424 | find interpretation(problem,interpretation); | ||
50425 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50426 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50427 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50428 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50429 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50430 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50431 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
50432 | neg find isPrimitive(element); | ||
50433 | } or | ||
50434 | { find mustInstanceOfInformationLink_class(problem,interpretation,element); } | ||
50435 | /** | ||
50436 | * An element must be an instance of type "FunctionalInterface class". | ||
50437 | */ | ||
50438 | private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50439 | Type.name(type,"FunctionalInterface class"); | ||
50440 | find directInstanceOf(problem,interpretation,element,type); | ||
50441 | } | ||
50442 | private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50443 | find interpretation(problem,interpretation); | ||
50444 | PartialInterpretation.scopes(interpretation,scope); | ||
50445 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50446 | Scope.maxNewElements(scope,0); | ||
50447 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50448 | Type.name(type,"FunctionalInterface class"); | ||
50449 | } | ||
50450 | |||
50451 | /** | ||
50452 | * An element may be an instance of type "FunctionalInterface class". | ||
50453 | */ | ||
50454 | private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50455 | { | ||
50456 | find interpretation(problem,interpretation); | ||
50457 | PartialInterpretation.newElements(interpretation,element); | ||
50458 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50459 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50460 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50461 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50462 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50463 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
50464 | neg find isPrimitive(element); | ||
50465 | } or { | ||
50466 | find interpretation(problem,interpretation); | ||
50467 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50468 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50469 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50470 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
50471 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50472 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50473 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
50474 | neg find isPrimitive(element); | ||
50475 | } or | ||
50476 | { find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); } | ||
50477 | /** | ||
50478 | * An element must be an instance of type "FunctionalInput class". | ||
50479 | */ | ||
50480 | private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50481 | Type.name(type,"FunctionalInput class"); | ||
50482 | find directInstanceOf(problem,interpretation,element,type); | ||
50483 | } | ||
50484 | private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50485 | find interpretation(problem,interpretation); | ||
50486 | PartialInterpretation.scopes(interpretation,scope); | ||
50487 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50488 | Scope.maxNewElements(scope,0); | ||
50489 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50490 | Type.name(type,"FunctionalInput class"); | ||
50491 | } | ||
50492 | |||
50493 | /** | ||
50494 | * An element may be an instance of type "FunctionalInput class". | ||
50495 | */ | ||
50496 | private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50497 | { | ||
50498 | find interpretation(problem,interpretation); | ||
50499 | PartialInterpretation.newElements(interpretation,element); | ||
50500 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50501 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50502 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50503 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50504 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50505 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50506 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
50507 | neg find isPrimitive(element); | ||
50508 | } or { | ||
50509 | find interpretation(problem,interpretation); | ||
50510 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50511 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50512 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50513 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50514 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50515 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50516 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50517 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
50518 | neg find isPrimitive(element); | ||
50519 | } or | ||
50520 | { find mustInstanceOfFunctionalInput_class(problem,interpretation,element); } | ||
50521 | /** | ||
50522 | * An element must be an instance of type "FunctionalOutput class". | ||
50523 | */ | ||
50524 | private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50525 | Type.name(type,"FunctionalOutput class"); | ||
50526 | find directInstanceOf(problem,interpretation,element,type); | ||
50527 | } | ||
50528 | private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50529 | find interpretation(problem,interpretation); | ||
50530 | PartialInterpretation.scopes(interpretation,scope); | ||
50531 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50532 | Scope.maxNewElements(scope,0); | ||
50533 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50534 | Type.name(type,"FunctionalOutput class"); | ||
50535 | } | ||
50536 | |||
50537 | /** | ||
50538 | * An element may be an instance of type "FunctionalOutput class". | ||
50539 | */ | ||
50540 | private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50541 | { | ||
50542 | find interpretation(problem,interpretation); | ||
50543 | PartialInterpretation.newElements(interpretation,element); | ||
50544 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50545 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50546 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50547 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50548 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50549 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50550 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
50551 | neg find isPrimitive(element); | ||
50552 | } or { | ||
50553 | find interpretation(problem,interpretation); | ||
50554 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50555 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50556 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50557 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50558 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50559 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50560 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50561 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
50562 | neg find isPrimitive(element); | ||
50563 | } or | ||
50564 | { find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); } | ||
50565 | /** | ||
50566 | * An element must be an instance of type "FunctionalData class". | ||
50567 | */ | ||
50568 | private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50569 | Type.name(type,"FunctionalData class"); | ||
50570 | find directInstanceOf(problem,interpretation,element,type); | ||
50571 | } | ||
50572 | private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50573 | find interpretation(problem,interpretation); | ||
50574 | PartialInterpretation.scopes(interpretation,scope); | ||
50575 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50576 | Scope.maxNewElements(scope,0); | ||
50577 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50578 | Type.name(type,"FunctionalData class"); | ||
50579 | } | ||
50580 | |||
50581 | /** | ||
50582 | * An element may be an instance of type "FunctionalData class". | ||
50583 | */ | ||
50584 | private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50585 | { | ||
50586 | find interpretation(problem,interpretation); | ||
50587 | PartialInterpretation.newElements(interpretation,element); | ||
50588 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50589 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50590 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50591 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50592 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50593 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50594 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50595 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
50596 | neg find isPrimitive(element); | ||
50597 | } or { | ||
50598 | find interpretation(problem,interpretation); | ||
50599 | PartialInterpretation.openWorldElements(interpretation,element); | ||
50600 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
50601 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
50602 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
50603 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
50604 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
50605 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
50606 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
50607 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
50608 | neg find isPrimitive(element); | ||
50609 | } or | ||
50610 | { find mustInstanceOfFunctionalData_class(problem,interpretation,element); } | ||
50611 | /** | ||
50612 | * An element must be an instance of type "FunctionType enum". | ||
50613 | */ | ||
50614 | private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
50615 | Type.name(type,"FunctionType enum"); | ||
50616 | find directInstanceOf(problem,interpretation,element,type); | ||
50617 | } | ||
50618 | private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
50619 | find interpretation(problem,interpretation); | ||
50620 | PartialInterpretation.scopes(interpretation,scope); | ||
50621 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
50622 | Scope.maxNewElements(scope,0); | ||
50623 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
50624 | Type.name(type,"FunctionType enum"); | ||
50625 | } | ||
50626 | |||
50627 | /** | ||
50628 | * An element may be an instance of type "FunctionType enum". | ||
50629 | */ | ||
50630 | private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
50631 | { find mustInstanceOfFunctionType_enum(problem,interpretation,element); } | ||
50632 | |||
50633 | ////////// | ||
50634 | // 1.2 Relation Declaration Indexers | ||
50635 | ////////// | ||
50636 | /** | ||
50637 | * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target) | ||
50638 | */ | ||
50639 | private pattern mustInRelationinterface_reference_FunctionalElement( | ||
50640 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50641 | source: DefinedElement, target:DefinedElement) | ||
50642 | { | ||
50643 | find interpretation(problem,interpretation); | ||
50644 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50645 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement"); | ||
50646 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50647 | BinaryElementRelationLink.param1(link,source); | ||
50648 | BinaryElementRelationLink.param2(link,target); | ||
50649 | } | ||
50650 | /** | ||
50651 | * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target) | ||
50652 | */ | ||
50653 | private pattern mayInRelationinterface_reference_FunctionalElement( | ||
50654 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50655 | source: DefinedElement, target:DefinedElement) | ||
50656 | { | ||
50657 | find interpretation(problem,interpretation); | ||
50658 | // The two endpoint of the link have to exist | ||
50659 | find mayExist(problem, interpretation, source); | ||
50660 | find mayExist(problem, interpretation, target); | ||
50661 | // Type consistency | ||
50662 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
50663 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
50664 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
50665 | // the upper bound of the multiplicity should be considered. | ||
50666 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_); | ||
50667 | check(numberOfExistingReferences < 1); | ||
50668 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
50669 | // the upper bound of the opposite reference multiplicity should be considered. | ||
50670 | numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_); | ||
50671 | check(numberOfExistingOppositeReferences < 1); | ||
50672 | // The reference is containment, then a new reference cannot be create if: | ||
50673 | // 1. Multiple parents | ||
50674 | neg find mustContains4(problem,interpretation,_,target); | ||
50675 | // 2. Circle in the containment hierarchy | ||
50676 | neg find mustTransitiveContains(source,target); | ||
50677 | } or { | ||
50678 | find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); | ||
50679 | } | ||
50680 | /** | ||
50681 | * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) | ||
50682 | */ | ||
50683 | private pattern mustInRelationmodel_reference_FunctionalElement( | ||
50684 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50685 | source: DefinedElement, target:DefinedElement) | ||
50686 | { | ||
50687 | find interpretation(problem,interpretation); | ||
50688 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50689 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
50690 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50691 | BinaryElementRelationLink.param1(link,source); | ||
50692 | BinaryElementRelationLink.param2(link,target); | ||
50693 | } | ||
50694 | /** | ||
50695 | * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target) | ||
50696 | */ | ||
50697 | private pattern mayInRelationmodel_reference_FunctionalElement( | ||
50698 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50699 | source: DefinedElement, target:DefinedElement) | ||
50700 | { | ||
50701 | find interpretation(problem,interpretation); | ||
50702 | // The two endpoint of the link have to exist | ||
50703 | find mayExist(problem, interpretation, source); | ||
50704 | find mayExist(problem, interpretation, target); | ||
50705 | // Type consistency | ||
50706 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
50707 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target); | ||
50708 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
50709 | // the upper bound of the multiplicity should be considered. | ||
50710 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_); | ||
50711 | check(numberOfExistingReferences < 1); | ||
50712 | } or { | ||
50713 | find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target); | ||
50714 | } | ||
50715 | /** | ||
50716 | * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) | ||
50717 | */ | ||
50718 | private pattern mustInRelationparent_reference_FunctionalElement( | ||
50719 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50720 | source: DefinedElement, target:DefinedElement) | ||
50721 | { | ||
50722 | find interpretation(problem,interpretation); | ||
50723 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50724 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement"); | ||
50725 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50726 | BinaryElementRelationLink.param1(link,source); | ||
50727 | BinaryElementRelationLink.param2(link,target); | ||
50728 | } | ||
50729 | /** | ||
50730 | * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target) | ||
50731 | */ | ||
50732 | private pattern mayInRelationparent_reference_FunctionalElement( | ||
50733 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50734 | source: DefinedElement, target:DefinedElement) | ||
50735 | { | ||
50736 | find interpretation(problem,interpretation); | ||
50737 | // The two endpoint of the link have to exist | ||
50738 | find mayExist(problem, interpretation, source); | ||
50739 | find mayExist(problem, interpretation, target); | ||
50740 | // Type consistency | ||
50741 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
50742 | find mayInstanceOfFunction_class(problem,interpretation,target); | ||
50743 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
50744 | // the upper bound of the multiplicity should be considered. | ||
50745 | numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_); | ||
50746 | check(numberOfExistingReferences < 1); | ||
50747 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
50748 | // 1. Multiple parents | ||
50749 | neg find mustContains4(problem,interpretation,source,_); | ||
50750 | // 2. Circle in the containment hierarchy | ||
50751 | neg find mustTransitiveContains(source,target); | ||
50752 | } or { | ||
50753 | find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target); | ||
50754 | } | ||
50755 | /** | ||
50756 | * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target) | ||
50757 | */ | ||
50758 | private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel( | ||
50759 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50760 | source: DefinedElement, target:DefinedElement) | ||
50761 | { | ||
50762 | find interpretation(problem,interpretation); | ||
50763 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50764 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
50765 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50766 | BinaryElementRelationLink.param1(link,source); | ||
50767 | BinaryElementRelationLink.param2(link,target); | ||
50768 | } | ||
50769 | /** | ||
50770 | * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target) | ||
50771 | */ | ||
50772 | private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel( | ||
50773 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50774 | source: DefinedElement, target:DefinedElement) | ||
50775 | { | ||
50776 | find interpretation(problem,interpretation); | ||
50777 | // The two endpoint of the link have to exist | ||
50778 | find mayExist(problem, interpretation, source); | ||
50779 | find mayExist(problem, interpretation, target); | ||
50780 | // Type consistency | ||
50781 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source); | ||
50782 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
50783 | // The reference is containment, then a new reference cannot be create if: | ||
50784 | // 1. Multiple parents | ||
50785 | neg find mustContains4(problem,interpretation,_,target); | ||
50786 | // 2. Circle in the containment hierarchy | ||
50787 | neg find mustTransitiveContains(source,target); | ||
50788 | } or { | ||
50789 | find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); | ||
50790 | } | ||
50791 | /** | ||
50792 | * Matcher for detecting tuples t where []subElements reference Function(source,target) | ||
50793 | */ | ||
50794 | private pattern mustInRelationsubElements_reference_Function( | ||
50795 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50796 | source: DefinedElement, target:DefinedElement) | ||
50797 | { | ||
50798 | find interpretation(problem,interpretation); | ||
50799 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50800 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function"); | ||
50801 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50802 | BinaryElementRelationLink.param1(link,source); | ||
50803 | BinaryElementRelationLink.param2(link,target); | ||
50804 | } | ||
50805 | /** | ||
50806 | * Matcher for detecting tuples t where <>subElements reference Function(source,target) | ||
50807 | */ | ||
50808 | private pattern mayInRelationsubElements_reference_Function( | ||
50809 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50810 | source: DefinedElement, target:DefinedElement) | ||
50811 | { | ||
50812 | find interpretation(problem,interpretation); | ||
50813 | // The two endpoint of the link have to exist | ||
50814 | find mayExist(problem, interpretation, source); | ||
50815 | find mayExist(problem, interpretation, target); | ||
50816 | // Type consistency | ||
50817 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
50818 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
50819 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
50820 | // the upper bound of the opposite reference multiplicity should be considered. | ||
50821 | numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_); | ||
50822 | check(numberOfExistingOppositeReferences < 1); | ||
50823 | // The reference is containment, then a new reference cannot be create if: | ||
50824 | // 1. Multiple parents | ||
50825 | neg find mustContains4(problem,interpretation,_,target); | ||
50826 | // 2. Circle in the containment hierarchy | ||
50827 | neg find mustTransitiveContains(source,target); | ||
50828 | } or { | ||
50829 | find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); | ||
50830 | } | ||
50831 | /** | ||
50832 | * Matcher for detecting tuples t where []data reference FAMTerminator(source,target) | ||
50833 | */ | ||
50834 | private pattern mustInRelationdata_reference_FAMTerminator( | ||
50835 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50836 | source: DefinedElement, target:DefinedElement) | ||
50837 | { | ||
50838 | find interpretation(problem,interpretation); | ||
50839 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50840 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator"); | ||
50841 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50842 | BinaryElementRelationLink.param1(link,source); | ||
50843 | BinaryElementRelationLink.param2(link,target); | ||
50844 | } | ||
50845 | /** | ||
50846 | * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target) | ||
50847 | */ | ||
50848 | private pattern mayInRelationdata_reference_FAMTerminator( | ||
50849 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50850 | source: DefinedElement, target:DefinedElement) | ||
50851 | { | ||
50852 | find interpretation(problem,interpretation); | ||
50853 | // The two endpoint of the link have to exist | ||
50854 | find mayExist(problem, interpretation, source); | ||
50855 | find mayExist(problem, interpretation, target); | ||
50856 | // Type consistency | ||
50857 | find mayInstanceOfFAMTerminator_class(problem,interpretation,source); | ||
50858 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
50859 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
50860 | // the upper bound of the multiplicity should be considered. | ||
50861 | numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_); | ||
50862 | check(numberOfExistingReferences < 1); | ||
50863 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
50864 | // the upper bound of the opposite reference multiplicity should be considered. | ||
50865 | numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_); | ||
50866 | check(numberOfExistingOppositeReferences < 1); | ||
50867 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
50868 | // 1. Multiple parents | ||
50869 | neg find mustContains4(problem,interpretation,source,_); | ||
50870 | // 2. Circle in the containment hierarchy | ||
50871 | neg find mustTransitiveContains(source,target); | ||
50872 | } or { | ||
50873 | find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target); | ||
50874 | } | ||
50875 | /** | ||
50876 | * Matcher for detecting tuples t where []from reference InformationLink(source,target) | ||
50877 | */ | ||
50878 | private pattern mustInRelationfrom_reference_InformationLink( | ||
50879 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50880 | source: DefinedElement, target:DefinedElement) | ||
50881 | { | ||
50882 | find interpretation(problem,interpretation); | ||
50883 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50884 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink"); | ||
50885 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50886 | BinaryElementRelationLink.param1(link,source); | ||
50887 | BinaryElementRelationLink.param2(link,target); | ||
50888 | } | ||
50889 | /** | ||
50890 | * Matcher for detecting tuples t where <>from reference InformationLink(source,target) | ||
50891 | */ | ||
50892 | private pattern mayInRelationfrom_reference_InformationLink( | ||
50893 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50894 | source: DefinedElement, target:DefinedElement) | ||
50895 | { | ||
50896 | find interpretation(problem,interpretation); | ||
50897 | // The two endpoint of the link have to exist | ||
50898 | find mayExist(problem, interpretation, source); | ||
50899 | find mayExist(problem, interpretation, target); | ||
50900 | // Type consistency | ||
50901 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
50902 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,target); | ||
50903 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
50904 | // the upper bound of the multiplicity should be considered. | ||
50905 | numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_); | ||
50906 | check(numberOfExistingReferences < 1); | ||
50907 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
50908 | // 1. Multiple parents | ||
50909 | neg find mustContains4(problem,interpretation,source,_); | ||
50910 | // 2. Circle in the containment hierarchy | ||
50911 | neg find mustTransitiveContains(source,target); | ||
50912 | } or { | ||
50913 | find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target); | ||
50914 | } | ||
50915 | /** | ||
50916 | * Matcher for detecting tuples t where []to reference InformationLink(source,target) | ||
50917 | */ | ||
50918 | private pattern mustInRelationto_reference_InformationLink( | ||
50919 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50920 | source: DefinedElement, target:DefinedElement) | ||
50921 | { | ||
50922 | find interpretation(problem,interpretation); | ||
50923 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50924 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
50925 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50926 | BinaryElementRelationLink.param1(link,source); | ||
50927 | BinaryElementRelationLink.param2(link,target); | ||
50928 | } | ||
50929 | /** | ||
50930 | * Matcher for detecting tuples t where <>to reference InformationLink(source,target) | ||
50931 | */ | ||
50932 | private pattern mayInRelationto_reference_InformationLink( | ||
50933 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50934 | source: DefinedElement, target:DefinedElement) | ||
50935 | { | ||
50936 | find interpretation(problem,interpretation); | ||
50937 | // The two endpoint of the link have to exist | ||
50938 | find mayExist(problem, interpretation, source); | ||
50939 | find mayExist(problem, interpretation, target); | ||
50940 | // Type consistency | ||
50941 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
50942 | find mayInstanceOfFunctionalInput_class(problem,interpretation,target); | ||
50943 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
50944 | // the upper bound of the multiplicity should be considered. | ||
50945 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_); | ||
50946 | check(numberOfExistingReferences < 1); | ||
50947 | } or { | ||
50948 | find mustInRelationto_reference_InformationLink(problem,interpretation,source,target); | ||
50949 | } | ||
50950 | /** | ||
50951 | * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target) | ||
50952 | */ | ||
50953 | private pattern mustInRelationdata_reference_FunctionalInterface( | ||
50954 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50955 | source: DefinedElement, target:DefinedElement) | ||
50956 | { | ||
50957 | find interpretation(problem,interpretation); | ||
50958 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50959 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface"); | ||
50960 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
50961 | BinaryElementRelationLink.param1(link,source); | ||
50962 | BinaryElementRelationLink.param2(link,target); | ||
50963 | } | ||
50964 | /** | ||
50965 | * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target) | ||
50966 | */ | ||
50967 | private pattern mayInRelationdata_reference_FunctionalInterface( | ||
50968 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50969 | source: DefinedElement, target:DefinedElement) | ||
50970 | { | ||
50971 | find interpretation(problem,interpretation); | ||
50972 | // The two endpoint of the link have to exist | ||
50973 | find mayExist(problem, interpretation, source); | ||
50974 | find mayExist(problem, interpretation, target); | ||
50975 | // Type consistency | ||
50976 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
50977 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
50978 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
50979 | // the upper bound of the opposite reference multiplicity should be considered. | ||
50980 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_); | ||
50981 | check(numberOfExistingOppositeReferences < 1); | ||
50982 | // The reference is containment, then a new reference cannot be create if: | ||
50983 | // 1. Multiple parents | ||
50984 | neg find mustContains4(problem,interpretation,_,target); | ||
50985 | // 2. Circle in the containment hierarchy | ||
50986 | neg find mustTransitiveContains(source,target); | ||
50987 | } or { | ||
50988 | find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); | ||
50989 | } | ||
50990 | /** | ||
50991 | * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target) | ||
50992 | */ | ||
50993 | private pattern mustInRelationelement_reference_FunctionalInterface( | ||
50994 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
50995 | source: DefinedElement, target:DefinedElement) | ||
50996 | { | ||
50997 | find interpretation(problem,interpretation); | ||
50998 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
50999 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface"); | ||
51000 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
51001 | BinaryElementRelationLink.param1(link,source); | ||
51002 | BinaryElementRelationLink.param2(link,target); | ||
51003 | } | ||
51004 | /** | ||
51005 | * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target) | ||
51006 | */ | ||
51007 | private pattern mayInRelationelement_reference_FunctionalInterface( | ||
51008 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51009 | source: DefinedElement, target:DefinedElement) | ||
51010 | { | ||
51011 | find interpretation(problem,interpretation); | ||
51012 | // The two endpoint of the link have to exist | ||
51013 | find mayExist(problem, interpretation, source); | ||
51014 | find mayExist(problem, interpretation, target); | ||
51015 | // Type consistency | ||
51016 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
51017 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
51018 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
51019 | // the upper bound of the multiplicity should be considered. | ||
51020 | numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_); | ||
51021 | check(numberOfExistingReferences < 1); | ||
51022 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
51023 | // the upper bound of the opposite reference multiplicity should be considered. | ||
51024 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_); | ||
51025 | check(numberOfExistingOppositeReferences < 1); | ||
51026 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
51027 | // 1. Multiple parents | ||
51028 | neg find mustContains4(problem,interpretation,source,_); | ||
51029 | // 2. Circle in the containment hierarchy | ||
51030 | neg find mustTransitiveContains(source,target); | ||
51031 | } or { | ||
51032 | find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target); | ||
51033 | } | ||
51034 | /** | ||
51035 | * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target) | ||
51036 | */ | ||
51037 | private pattern mustInRelationIncomingLinks_reference_FunctionalInput( | ||
51038 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51039 | source: DefinedElement, target:DefinedElement) | ||
51040 | { | ||
51041 | find interpretation(problem,interpretation); | ||
51042 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51043 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
51044 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
51045 | BinaryElementRelationLink.param1(link,source); | ||
51046 | BinaryElementRelationLink.param2(link,target); | ||
51047 | } | ||
51048 | /** | ||
51049 | * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target) | ||
51050 | */ | ||
51051 | private pattern mayInRelationIncomingLinks_reference_FunctionalInput( | ||
51052 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51053 | source: DefinedElement, target:DefinedElement) | ||
51054 | { | ||
51055 | find interpretation(problem,interpretation); | ||
51056 | // The two endpoint of the link have to exist | ||
51057 | find mayExist(problem, interpretation, source); | ||
51058 | find mayExist(problem, interpretation, target); | ||
51059 | // Type consistency | ||
51060 | find mayInstanceOfFunctionalInput_class(problem,interpretation,source); | ||
51061 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
51062 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
51063 | // the upper bound of the opposite reference multiplicity should be considered. | ||
51064 | numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_); | ||
51065 | check(numberOfExistingOppositeReferences < 1); | ||
51066 | } or { | ||
51067 | find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target); | ||
51068 | } | ||
51069 | /** | ||
51070 | * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target) | ||
51071 | */ | ||
51072 | private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput( | ||
51073 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51074 | source: DefinedElement, target:DefinedElement) | ||
51075 | { | ||
51076 | find interpretation(problem,interpretation); | ||
51077 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51078 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput"); | ||
51079 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
51080 | BinaryElementRelationLink.param1(link,source); | ||
51081 | BinaryElementRelationLink.param2(link,target); | ||
51082 | } | ||
51083 | /** | ||
51084 | * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target) | ||
51085 | */ | ||
51086 | private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput( | ||
51087 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51088 | source: DefinedElement, target:DefinedElement) | ||
51089 | { | ||
51090 | find interpretation(problem,interpretation); | ||
51091 | // The two endpoint of the link have to exist | ||
51092 | find mayExist(problem, interpretation, source); | ||
51093 | find mayExist(problem, interpretation, target); | ||
51094 | // Type consistency | ||
51095 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,source); | ||
51096 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
51097 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
51098 | // the upper bound of the opposite reference multiplicity should be considered. | ||
51099 | numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_); | ||
51100 | check(numberOfExistingOppositeReferences < 1); | ||
51101 | // The reference is containment, then a new reference cannot be create if: | ||
51102 | // 1. Multiple parents | ||
51103 | neg find mustContains4(problem,interpretation,_,target); | ||
51104 | // 2. Circle in the containment hierarchy | ||
51105 | neg find mustTransitiveContains(source,target); | ||
51106 | } or { | ||
51107 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); | ||
51108 | } | ||
51109 | /** | ||
51110 | * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target) | ||
51111 | */ | ||
51112 | private pattern mustInRelationterminator_reference_FunctionalData( | ||
51113 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51114 | source: DefinedElement, target:DefinedElement) | ||
51115 | { | ||
51116 | find interpretation(problem,interpretation); | ||
51117 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51118 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData"); | ||
51119 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
51120 | BinaryElementRelationLink.param1(link,source); | ||
51121 | BinaryElementRelationLink.param2(link,target); | ||
51122 | } | ||
51123 | /** | ||
51124 | * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target) | ||
51125 | */ | ||
51126 | private pattern mayInRelationterminator_reference_FunctionalData( | ||
51127 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51128 | source: DefinedElement, target:DefinedElement) | ||
51129 | { | ||
51130 | find interpretation(problem,interpretation); | ||
51131 | // The two endpoint of the link have to exist | ||
51132 | find mayExist(problem, interpretation, source); | ||
51133 | find mayExist(problem, interpretation, target); | ||
51134 | // Type consistency | ||
51135 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
51136 | find mayInstanceOfFAMTerminator_class(problem,interpretation,target); | ||
51137 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
51138 | // the upper bound of the multiplicity should be considered. | ||
51139 | numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_); | ||
51140 | check(numberOfExistingReferences < 1); | ||
51141 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
51142 | // the upper bound of the opposite reference multiplicity should be considered. | ||
51143 | numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_); | ||
51144 | check(numberOfExistingOppositeReferences < 1); | ||
51145 | // The reference is containment, then a new reference cannot be create if: | ||
51146 | // 1. Multiple parents | ||
51147 | neg find mustContains4(problem,interpretation,_,target); | ||
51148 | // 2. Circle in the containment hierarchy | ||
51149 | neg find mustTransitiveContains(source,target); | ||
51150 | } or { | ||
51151 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); | ||
51152 | } | ||
51153 | /** | ||
51154 | * Matcher for detecting tuples t where []interface reference FunctionalData(source,target) | ||
51155 | */ | ||
51156 | private pattern mustInRelationinterface_reference_FunctionalData( | ||
51157 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51158 | source: DefinedElement, target:DefinedElement) | ||
51159 | { | ||
51160 | find interpretation(problem,interpretation); | ||
51161 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51162 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData"); | ||
51163 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
51164 | BinaryElementRelationLink.param1(link,source); | ||
51165 | BinaryElementRelationLink.param2(link,target); | ||
51166 | } | ||
51167 | /** | ||
51168 | * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target) | ||
51169 | */ | ||
51170 | private pattern mayInRelationinterface_reference_FunctionalData( | ||
51171 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51172 | source: DefinedElement, target:DefinedElement) | ||
51173 | { | ||
51174 | find interpretation(problem,interpretation); | ||
51175 | // The two endpoint of the link have to exist | ||
51176 | find mayExist(problem, interpretation, source); | ||
51177 | find mayExist(problem, interpretation, target); | ||
51178 | // Type consistency | ||
51179 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
51180 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
51181 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
51182 | // the upper bound of the multiplicity should be considered. | ||
51183 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_); | ||
51184 | check(numberOfExistingReferences < 1); | ||
51185 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
51186 | // 1. Multiple parents | ||
51187 | neg find mustContains4(problem,interpretation,source,_); | ||
51188 | // 2. Circle in the containment hierarchy | ||
51189 | neg find mustTransitiveContains(source,target); | ||
51190 | } or { | ||
51191 | find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target); | ||
51192 | } | ||
51193 | /** | ||
51194 | * Matcher for detecting tuples t where []type attribute Function(source,target) | ||
51195 | */ | ||
51196 | private pattern mustInRelationtype_attribute_Function( | ||
51197 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51198 | source: DefinedElement, target:DefinedElement) | ||
51199 | { | ||
51200 | find interpretation(problem,interpretation); | ||
51201 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51202 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
51203 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
51204 | BinaryElementRelationLink.param1(link,source); | ||
51205 | BinaryElementRelationLink.param2(link,target); | ||
51206 | } | ||
51207 | /** | ||
51208 | * Matcher for detecting tuples t where <>type attribute Function(source,target) | ||
51209 | */ | ||
51210 | private pattern mayInRelationtype_attribute_Function( | ||
51211 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51212 | source: DefinedElement, target:DefinedElement) | ||
51213 | { | ||
51214 | find interpretation(problem,interpretation); | ||
51215 | // The two endpoint of the link have to exist | ||
51216 | find mayExist(problem, interpretation, source); | ||
51217 | find mayExist(problem, interpretation, target); | ||
51218 | // Type consistency | ||
51219 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
51220 | find mayInstanceOfFunctionType_enum(problem,interpretation,target); | ||
51221 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
51222 | // the upper bound of the multiplicity should be considered. | ||
51223 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_); | ||
51224 | check(numberOfExistingReferences < 1); | ||
51225 | } or { | ||
51226 | find mustInRelationtype_attribute_Function(problem,interpretation,source,target); | ||
51227 | } | ||
51228 | |||
51229 | ////////// | ||
51230 | // 1.3 Relation Definition Indexers | ||
51231 | ////////// | ||
51232 | |||
51233 | ////////// | ||
51234 | // 1.4 Containment Indexer | ||
51235 | ////////// | ||
51236 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
51237 | find mustContains4(_,_,source,target); | ||
51238 | } | ||
51239 | |||
51240 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
51241 | source: DefinedElement, target: DefinedElement) | ||
51242 | { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or | ||
51243 | |||
51244 | { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or | ||
51245 | |||
51246 | { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or | ||
51247 | |||
51248 | { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or | ||
51249 | |||
51250 | { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or | ||
51251 | |||
51252 | { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); } | ||
51253 | |||
51254 | private pattern mustTransitiveContains(source,target) { | ||
51255 | find mustContains2+(source,target); | ||
51256 | } | ||
51257 | |||
51258 | ////////// | ||
51259 | // 2. Invalidation Indexers | ||
51260 | ////////// | ||
51261 | // 2.1 Invalidated by WF Queries | ||
51262 | ////////// | ||
51263 | |||
51264 | ////////// | ||
51265 | // 3. Unfinishedness Indexers | ||
51266 | ////////// | ||
51267 | // 3.1 Unfinishedness Measured by Multiplicity | ||
51268 | ////////// | ||
51269 | pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
51270 | find interpretation(problem,interpretation); | ||
51271 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51272 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
51273 | find mustInstanceOfFunctionalElement_class(problem,interpretation,object); | ||
51274 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_); | ||
51275 | check(numberOfExistingReferences < 1); | ||
51276 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
51277 | } | ||
51278 | pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
51279 | find interpretation(problem,interpretation); | ||
51280 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51281 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
51282 | find mustInstanceOfInformationLink_class(problem,interpretation,object); | ||
51283 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_); | ||
51284 | check(numberOfExistingReferences < 1); | ||
51285 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
51286 | } | ||
51287 | pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
51288 | find interpretation(problem,interpretation); | ||
51289 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51290 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
51291 | find mustInstanceOfFunction_class(problem,interpretation,object); | ||
51292 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_); | ||
51293 | check(numberOfExistingReferences < 1); | ||
51294 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
51295 | } | ||
51296 | |||
51297 | ////////// | ||
51298 | // 3.2 Unfinishedness Measured by WF Queries | ||
51299 | ////////// | ||
51300 | |||
51301 | ////////// | ||
51302 | // 4. Refinement Indexers | ||
51303 | ////////// | ||
51304 | // 4.1 Object constructors | ||
51305 | ////////// | ||
51306 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
51307 | { | ||
51308 | find interpretation(problem,interpretation); | ||
51309 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); | ||
51310 | find mustExist(problem, interpretation, root); | ||
51311 | }or{ | ||
51312 | find interpretation(problem,interpretation); | ||
51313 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); | ||
51314 | find mustExist(problem, interpretation, root); | ||
51315 | }or{ | ||
51316 | find interpretation(problem,interpretation); | ||
51317 | find mustInstanceOfInformationLink_class(problem,interpretation,root); | ||
51318 | find mustExist(problem, interpretation, root); | ||
51319 | }or{ | ||
51320 | find interpretation(problem,interpretation); | ||
51321 | find mustInstanceOfFAMTerminator_class(problem,interpretation,root); | ||
51322 | find mustExist(problem, interpretation, root); | ||
51323 | }or{ | ||
51324 | find interpretation(problem,interpretation); | ||
51325 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); | ||
51326 | find mustExist(problem, interpretation, root); | ||
51327 | }or{ | ||
51328 | find interpretation(problem,interpretation); | ||
51329 | find mustInstanceOfFunctionalElement_class(problem,interpretation,root); | ||
51330 | find mustExist(problem, interpretation, root); | ||
51331 | }or{ | ||
51332 | find interpretation(problem,interpretation); | ||
51333 | find mustInstanceOfFunctionalData_class(problem,interpretation,root); | ||
51334 | find mustExist(problem, interpretation, root); | ||
51335 | }or{ | ||
51336 | find interpretation(problem,interpretation); | ||
51337 | find mustInstanceOfFunctionalInput_class(problem,interpretation,root); | ||
51338 | find mustExist(problem, interpretation, root); | ||
51339 | }or{ | ||
51340 | find interpretation(problem,interpretation); | ||
51341 | find mustInstanceOfFunction_class(problem,interpretation,root); | ||
51342 | find mustExist(problem, interpretation, root); | ||
51343 | } | ||
51344 | pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( | ||
51345 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51346 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51347 | container:DefinedElement) | ||
51348 | { | ||
51349 | find interpretation(problem,interpretation); | ||
51350 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51351 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
51352 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51353 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); | ||
51354 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
51355 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); | ||
51356 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); | ||
51357 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
51358 | find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); | ||
51359 | find mustExist(problem, interpretation, container); | ||
51360 | neg find mustExist(problem, interpretation, newObject); | ||
51361 | } | ||
51362 | pattern createObject_InformationLink_class( | ||
51363 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51364 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51365 | { | ||
51366 | find interpretation(problem,interpretation); | ||
51367 | neg find hasElementInContainment(problem,interpretation); | ||
51368 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51369 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
51370 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
51371 | find mayExist(problem, interpretation, newObject); | ||
51372 | neg find mustExist(problem, interpretation, newObject); | ||
51373 | } | ||
51374 | pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
51375 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51376 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51377 | container:DefinedElement) | ||
51378 | { | ||
51379 | find interpretation(problem,interpretation); | ||
51380 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51381 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
51382 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51383 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
51384 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
51385 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
51386 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
51387 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
51388 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
51389 | find mustExist(problem, interpretation, container); | ||
51390 | neg find mustExist(problem, interpretation, newObject); | ||
51391 | } | ||
51392 | pattern createObject_FunctionalInput_class( | ||
51393 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51394 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51395 | { | ||
51396 | find interpretation(problem,interpretation); | ||
51397 | neg find hasElementInContainment(problem,interpretation); | ||
51398 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51399 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
51400 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
51401 | find mayExist(problem, interpretation, newObject); | ||
51402 | neg find mustExist(problem, interpretation, newObject); | ||
51403 | } | ||
51404 | pattern createObject_FunctionalArchitectureModel_class( | ||
51405 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51406 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51407 | { | ||
51408 | find interpretation(problem,interpretation); | ||
51409 | neg find hasElementInContainment(problem,interpretation); | ||
51410 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51411 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class"); | ||
51412 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,newObject); | ||
51413 | find mayExist(problem, interpretation, newObject); | ||
51414 | neg find mustExist(problem, interpretation, newObject); | ||
51415 | } | ||
51416 | pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( | ||
51417 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51418 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51419 | container:DefinedElement) | ||
51420 | { | ||
51421 | find interpretation(problem,interpretation); | ||
51422 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51423 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
51424 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51425 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); | ||
51426 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
51427 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); | ||
51428 | find mustInstanceOfFunctionalElement_class(problem,interpretation,container); | ||
51429 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
51430 | find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); | ||
51431 | find mustExist(problem, interpretation, container); | ||
51432 | neg find mustExist(problem, interpretation, newObject); | ||
51433 | } | ||
51434 | pattern createObject_FunctionalInterface_class( | ||
51435 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51436 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51437 | { | ||
51438 | find interpretation(problem,interpretation); | ||
51439 | neg find hasElementInContainment(problem,interpretation); | ||
51440 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51441 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
51442 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
51443 | find mayExist(problem, interpretation, newObject); | ||
51444 | neg find mustExist(problem, interpretation, newObject); | ||
51445 | } | ||
51446 | pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( | ||
51447 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51448 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51449 | container:DefinedElement) | ||
51450 | { | ||
51451 | find interpretation(problem,interpretation); | ||
51452 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51453 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
51454 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51455 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); | ||
51456 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
51457 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); | ||
51458 | find mustInstanceOfFunctionalData_class(problem,interpretation,container); | ||
51459 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
51460 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); | ||
51461 | find mustExist(problem, interpretation, container); | ||
51462 | neg find mustExist(problem, interpretation, newObject); | ||
51463 | } | ||
51464 | pattern createObject_FAMTerminator_class( | ||
51465 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51466 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51467 | { | ||
51468 | find interpretation(problem,interpretation); | ||
51469 | neg find hasElementInContainment(problem,interpretation); | ||
51470 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51471 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
51472 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
51473 | find mayExist(problem, interpretation, newObject); | ||
51474 | neg find mustExist(problem, interpretation, newObject); | ||
51475 | } | ||
51476 | pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( | ||
51477 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51478 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51479 | container:DefinedElement) | ||
51480 | { | ||
51481 | find interpretation(problem,interpretation); | ||
51482 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51483 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
51484 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51485 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
51486 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); | ||
51487 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
51488 | find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); | ||
51489 | find mustExist(problem, interpretation, container); | ||
51490 | neg find mustExist(problem, interpretation, newObject); | ||
51491 | } | ||
51492 | pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( | ||
51493 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51494 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51495 | container:DefinedElement) | ||
51496 | { | ||
51497 | find interpretation(problem,interpretation); | ||
51498 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51499 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
51500 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51501 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); | ||
51502 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
51503 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); | ||
51504 | find mustInstanceOfFunction_class(problem,interpretation,container); | ||
51505 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
51506 | find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); | ||
51507 | find mustExist(problem, interpretation, container); | ||
51508 | neg find mustExist(problem, interpretation, newObject); | ||
51509 | } | ||
51510 | pattern createObject_Function_class( | ||
51511 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51512 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51513 | { | ||
51514 | find interpretation(problem,interpretation); | ||
51515 | neg find hasElementInContainment(problem,interpretation); | ||
51516 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51517 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
51518 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
51519 | find mayExist(problem, interpretation, newObject); | ||
51520 | neg find mustExist(problem, interpretation, newObject); | ||
51521 | } | ||
51522 | pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
51523 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51524 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
51525 | container:DefinedElement) | ||
51526 | { | ||
51527 | find interpretation(problem,interpretation); | ||
51528 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51529 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
51530 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
51531 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
51532 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
51533 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
51534 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
51535 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
51536 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
51537 | find mustExist(problem, interpretation, container); | ||
51538 | neg find mustExist(problem, interpretation, newObject); | ||
51539 | } | ||
51540 | pattern createObject_FunctionalOutput_class( | ||
51541 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51542 | typeInterpretation:PartialComplexTypeInterpretation) | ||
51543 | { | ||
51544 | find interpretation(problem,interpretation); | ||
51545 | neg find hasElementInContainment(problem,interpretation); | ||
51546 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51547 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
51548 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
51549 | find mayExist(problem, interpretation, newObject); | ||
51550 | neg find mustExist(problem, interpretation, newObject); | ||
51551 | } | ||
51552 | |||
51553 | ////////// | ||
51554 | // 4.2 Type refinement | ||
51555 | ////////// | ||
51556 | pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51557 | find interpretation(problem,interpretation); | ||
51558 | PartialInterpretation.newElements(interpretation,element); | ||
51559 | find mayInstanceOfInformationLink_class(problem,interpretation,element); | ||
51560 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51561 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51562 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51563 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51564 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51565 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51566 | } | ||
51567 | pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51568 | find interpretation(problem,interpretation); | ||
51569 | PartialInterpretation.newElements(interpretation,element); | ||
51570 | find mayInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
51571 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51572 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51573 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
51574 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51575 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51576 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51577 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
51578 | } | ||
51579 | pattern refineTypeTo_FunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51580 | find interpretation(problem,interpretation); | ||
51581 | PartialInterpretation.newElements(interpretation,element); | ||
51582 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51583 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51584 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51585 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51586 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51587 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51588 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51589 | } | ||
51590 | pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51591 | find interpretation(problem,interpretation); | ||
51592 | PartialInterpretation.newElements(interpretation,element); | ||
51593 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51594 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51595 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51596 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51597 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51598 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51599 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51600 | } | ||
51601 | pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51602 | find interpretation(problem,interpretation); | ||
51603 | PartialInterpretation.newElements(interpretation,element); | ||
51604 | find mayInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51605 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51606 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51607 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51608 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51609 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51610 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51611 | } | ||
51612 | pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51613 | find interpretation(problem,interpretation); | ||
51614 | PartialInterpretation.newElements(interpretation,element); | ||
51615 | find mayInstanceOfFunction_class(problem,interpretation,element); | ||
51616 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51617 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51618 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51619 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51620 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51621 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
51622 | } | ||
51623 | pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
51624 | find interpretation(problem,interpretation); | ||
51625 | PartialInterpretation.newElements(interpretation,element); | ||
51626 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
51627 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51628 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51629 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
51630 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51631 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51632 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51633 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
51634 | } | ||
51635 | |||
51636 | ////////// | ||
51637 | // 4.3 Relation refinement | ||
51638 | ////////// | ||
51639 | pattern refineRelation_model_reference_FunctionalElement( | ||
51640 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51641 | relationIterpretation:PartialRelationInterpretation, | ||
51642 | from: DefinedElement, to: DefinedElement) | ||
51643 | { | ||
51644 | find interpretation(problem,interpretation); | ||
51645 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51646 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
51647 | find mustExist(problem, interpretation, from); | ||
51648 | find mustExist(problem, interpretation, to); | ||
51649 | find mustInstanceOfFunctionalElement_class(problem,interpretation,from); | ||
51650 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to); | ||
51651 | find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
51652 | neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
51653 | } | ||
51654 | pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink( | ||
51655 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51656 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
51657 | from: DefinedElement, to: DefinedElement) | ||
51658 | { | ||
51659 | find interpretation(problem,interpretation); | ||
51660 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51661 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
51662 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
51663 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink"); | ||
51664 | find mustExist(problem, interpretation, from); | ||
51665 | find mustExist(problem, interpretation, to); | ||
51666 | find mustInstanceOfFunctionalInput_class(problem,interpretation,from); | ||
51667 | find mustInstanceOfInformationLink_class(problem,interpretation,to); | ||
51668 | find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
51669 | neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
51670 | } | ||
51671 | pattern refineRelation_type_attribute_Function( | ||
51672 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
51673 | relationIterpretation:PartialRelationInterpretation, | ||
51674 | from: DefinedElement, to: DefinedElement) | ||
51675 | { | ||
51676 | find interpretation(problem,interpretation); | ||
51677 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
51678 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
51679 | find mustExist(problem, interpretation, from); | ||
51680 | find mustExist(problem, interpretation, to); | ||
51681 | find mustInstanceOfFunction_class(problem,interpretation,from); | ||
51682 | find mustInstanceOfFunctionType_enum(problem,interpretation,to); | ||
51683 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
51684 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
51685 | } | ||
51686 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
51687 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
51688 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
51689 | |||
51690 | ////////// | ||
51691 | // 0. Util | ||
51692 | ////////// | ||
51693 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51694 | PartialInterpretation.problem(interpretation,problem); | ||
51695 | } | ||
51696 | |||
51697 | ///////////////////////// | ||
51698 | // 0.1 Existence | ||
51699 | ///////////////////////// | ||
51700 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51701 | find interpretation(problem,interpretation); | ||
51702 | LogicProblem.elements(problem,element); | ||
51703 | } or { | ||
51704 | find interpretation(problem,interpretation); | ||
51705 | PartialInterpretation.newElements(interpretation,element); | ||
51706 | } | ||
51707 | |||
51708 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51709 | find mustExist(problem,interpretation,element); | ||
51710 | } or { | ||
51711 | find interpretation(problem,interpretation); | ||
51712 | neg find elementCloseWorld(element); | ||
51713 | PartialInterpretation.openWorldElements(interpretation,element); | ||
51714 | } | ||
51715 | |||
51716 | private pattern elementCloseWorld(element:DefinedElement) { | ||
51717 | PartialInterpretation.openWorldElements(i,element); | ||
51718 | PartialInterpretation.maxNewElements(i,0); | ||
51719 | } or { | ||
51720 | Scope.targetTypeInterpretation(scope,interpretation); | ||
51721 | PartialTypeInterpratation.elements(interpretation,element); | ||
51722 | Scope.maxNewElements(scope,0); | ||
51723 | } | ||
51724 | |||
51725 | //////////////////////// | ||
51726 | // 0.2 Equivalence | ||
51727 | //////////////////////// | ||
51728 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
51729 | find mayExist(problem,interpretation,a); | ||
51730 | find mayExist(problem,interpretation,b); | ||
51731 | a == b; | ||
51732 | } | ||
51733 | |||
51734 | //////////////////////// | ||
51735 | // 0.3 Required Patterns by TypeIndexer | ||
51736 | //////////////////////// | ||
51737 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
51738 | find interpretation(problem,interpretation); | ||
51739 | LogicProblem.types(problem,type); | ||
51740 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
51741 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51742 | } | ||
51743 | |||
51744 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
51745 | find interpretation(problem,interpretation); | ||
51746 | LogicProblem.types(problem,type); | ||
51747 | TypeDefinition.elements(type,element); | ||
51748 | } or { | ||
51749 | find interpretation(problem,interpretation); | ||
51750 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
51751 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
51752 | } | ||
51753 | |||
51754 | private pattern isPrimitive(element: PrimitiveElement) { | ||
51755 | PrimitiveElement(element); | ||
51756 | } | ||
51757 | |||
51758 | ////////// | ||
51759 | // 1. Problem-Specific Base Indexers | ||
51760 | ////////// | ||
51761 | // 1.1 Type Indexers | ||
51762 | ////////// | ||
51763 | // 1.1.1 primitive Type Indexers | ||
51764 | ////////// | ||
51765 | |||
51766 | ////////// | ||
51767 | // 1.1.2 domain-specific Type Indexers | ||
51768 | ////////// | ||
51769 | /** | ||
51770 | * An element must be an instance of type "FunctionalElement class". | ||
51771 | */ | ||
51772 | private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51773 | Type.name(type,"FunctionalElement class"); | ||
51774 | find directInstanceOf(problem,interpretation,element,type); | ||
51775 | } | ||
51776 | private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51777 | find interpretation(problem,interpretation); | ||
51778 | PartialInterpretation.scopes(interpretation,scope); | ||
51779 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
51780 | Scope.maxNewElements(scope,0); | ||
51781 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51782 | Type.name(type,"FunctionalElement class"); | ||
51783 | } | ||
51784 | |||
51785 | /** | ||
51786 | * An element may be an instance of type "FunctionalElement class". | ||
51787 | */ | ||
51788 | private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
51789 | { | ||
51790 | find interpretation(problem,interpretation); | ||
51791 | PartialInterpretation.newElements(interpretation,element); | ||
51792 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51793 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51794 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51795 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
51796 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51797 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51798 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
51799 | neg find isPrimitive(element); | ||
51800 | } or { | ||
51801 | find interpretation(problem,interpretation); | ||
51802 | PartialInterpretation.openWorldElements(interpretation,element); | ||
51803 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51804 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51805 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51806 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
51807 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51808 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51809 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
51810 | neg find isPrimitive(element); | ||
51811 | } or | ||
51812 | { find mustInstanceOfFunctionalElement_class(problem,interpretation,element); } | ||
51813 | /** | ||
51814 | * An element must be an instance of type "FunctionalArchitectureModel class". | ||
51815 | */ | ||
51816 | private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51817 | Type.name(type,"FunctionalArchitectureModel class"); | ||
51818 | find directInstanceOf(problem,interpretation,element,type); | ||
51819 | } | ||
51820 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51821 | find interpretation(problem,interpretation); | ||
51822 | PartialInterpretation.scopes(interpretation,scope); | ||
51823 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
51824 | Scope.maxNewElements(scope,0); | ||
51825 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51826 | Type.name(type,"FunctionalArchitectureModel class"); | ||
51827 | } | ||
51828 | |||
51829 | /** | ||
51830 | * An element may be an instance of type "FunctionalArchitectureModel class". | ||
51831 | */ | ||
51832 | private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
51833 | { | ||
51834 | find interpretation(problem,interpretation); | ||
51835 | PartialInterpretation.newElements(interpretation,element); | ||
51836 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51837 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51838 | neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
51839 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51840 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51841 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51842 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
51843 | neg find isPrimitive(element); | ||
51844 | } or { | ||
51845 | find interpretation(problem,interpretation); | ||
51846 | PartialInterpretation.openWorldElements(interpretation,element); | ||
51847 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51848 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51849 | neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
51850 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51851 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51852 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51853 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
51854 | neg find isPrimitive(element); | ||
51855 | } or | ||
51856 | { find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); } | ||
51857 | /** | ||
51858 | * An element must be an instance of type "Function class". | ||
51859 | */ | ||
51860 | private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51861 | Type.name(type,"Function class"); | ||
51862 | find directInstanceOf(problem,interpretation,element,type); | ||
51863 | } | ||
51864 | private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51865 | find interpretation(problem,interpretation); | ||
51866 | PartialInterpretation.scopes(interpretation,scope); | ||
51867 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
51868 | Scope.maxNewElements(scope,0); | ||
51869 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51870 | Type.name(type,"Function class"); | ||
51871 | } | ||
51872 | |||
51873 | /** | ||
51874 | * An element may be an instance of type "Function class". | ||
51875 | */ | ||
51876 | private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
51877 | { | ||
51878 | find interpretation(problem,interpretation); | ||
51879 | PartialInterpretation.newElements(interpretation,element); | ||
51880 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51881 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51882 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51883 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51884 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51885 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
51886 | neg find isPrimitive(element); | ||
51887 | } or { | ||
51888 | find interpretation(problem,interpretation); | ||
51889 | PartialInterpretation.openWorldElements(interpretation,element); | ||
51890 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51891 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51892 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51893 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51894 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51895 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
51896 | neg find isPrimitive(element); | ||
51897 | } or | ||
51898 | { find mustInstanceOfFunction_class(problem,interpretation,element); } | ||
51899 | /** | ||
51900 | * An element must be an instance of type "FAMTerminator class". | ||
51901 | */ | ||
51902 | private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51903 | Type.name(type,"FAMTerminator class"); | ||
51904 | find directInstanceOf(problem,interpretation,element,type); | ||
51905 | } | ||
51906 | private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51907 | find interpretation(problem,interpretation); | ||
51908 | PartialInterpretation.scopes(interpretation,scope); | ||
51909 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
51910 | Scope.maxNewElements(scope,0); | ||
51911 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51912 | Type.name(type,"FAMTerminator class"); | ||
51913 | } | ||
51914 | |||
51915 | /** | ||
51916 | * An element may be an instance of type "FAMTerminator class". | ||
51917 | */ | ||
51918 | private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
51919 | { | ||
51920 | find interpretation(problem,interpretation); | ||
51921 | PartialInterpretation.newElements(interpretation,element); | ||
51922 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51923 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51924 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51925 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51926 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51927 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
51928 | neg find isPrimitive(element); | ||
51929 | } or { | ||
51930 | find interpretation(problem,interpretation); | ||
51931 | PartialInterpretation.openWorldElements(interpretation,element); | ||
51932 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
51933 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51934 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51935 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51936 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51937 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
51938 | neg find isPrimitive(element); | ||
51939 | } or | ||
51940 | { find mustInstanceOfFAMTerminator_class(problem,interpretation,element); } | ||
51941 | /** | ||
51942 | * An element must be an instance of type "InformationLink class". | ||
51943 | */ | ||
51944 | private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51945 | Type.name(type,"InformationLink class"); | ||
51946 | find directInstanceOf(problem,interpretation,element,type); | ||
51947 | } | ||
51948 | private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51949 | find interpretation(problem,interpretation); | ||
51950 | PartialInterpretation.scopes(interpretation,scope); | ||
51951 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
51952 | Scope.maxNewElements(scope,0); | ||
51953 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51954 | Type.name(type,"InformationLink class"); | ||
51955 | } | ||
51956 | |||
51957 | /** | ||
51958 | * An element may be an instance of type "InformationLink class". | ||
51959 | */ | ||
51960 | private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
51961 | { | ||
51962 | find interpretation(problem,interpretation); | ||
51963 | PartialInterpretation.newElements(interpretation,element); | ||
51964 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51965 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51966 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51967 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51968 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51969 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
51970 | neg find isPrimitive(element); | ||
51971 | } or { | ||
51972 | find interpretation(problem,interpretation); | ||
51973 | PartialInterpretation.openWorldElements(interpretation,element); | ||
51974 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
51975 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
51976 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
51977 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
51978 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
51979 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
51980 | neg find isPrimitive(element); | ||
51981 | } or | ||
51982 | { find mustInstanceOfInformationLink_class(problem,interpretation,element); } | ||
51983 | /** | ||
51984 | * An element must be an instance of type "FunctionalInterface class". | ||
51985 | */ | ||
51986 | private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
51987 | Type.name(type,"FunctionalInterface class"); | ||
51988 | find directInstanceOf(problem,interpretation,element,type); | ||
51989 | } | ||
51990 | private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
51991 | find interpretation(problem,interpretation); | ||
51992 | PartialInterpretation.scopes(interpretation,scope); | ||
51993 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
51994 | Scope.maxNewElements(scope,0); | ||
51995 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
51996 | Type.name(type,"FunctionalInterface class"); | ||
51997 | } | ||
51998 | |||
51999 | /** | ||
52000 | * An element may be an instance of type "FunctionalInterface class". | ||
52001 | */ | ||
52002 | private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52003 | { | ||
52004 | find interpretation(problem,interpretation); | ||
52005 | PartialInterpretation.newElements(interpretation,element); | ||
52006 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52007 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52008 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
52009 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52010 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52011 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
52012 | neg find isPrimitive(element); | ||
52013 | } or { | ||
52014 | find interpretation(problem,interpretation); | ||
52015 | PartialInterpretation.openWorldElements(interpretation,element); | ||
52016 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52017 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52018 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
52019 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52020 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52021 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
52022 | neg find isPrimitive(element); | ||
52023 | } or | ||
52024 | { find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); } | ||
52025 | /** | ||
52026 | * An element must be an instance of type "FunctionalInput class". | ||
52027 | */ | ||
52028 | private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
52029 | Type.name(type,"FunctionalInput class"); | ||
52030 | find directInstanceOf(problem,interpretation,element,type); | ||
52031 | } | ||
52032 | private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
52033 | find interpretation(problem,interpretation); | ||
52034 | PartialInterpretation.scopes(interpretation,scope); | ||
52035 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
52036 | Scope.maxNewElements(scope,0); | ||
52037 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
52038 | Type.name(type,"FunctionalInput class"); | ||
52039 | } | ||
52040 | |||
52041 | /** | ||
52042 | * An element may be an instance of type "FunctionalInput class". | ||
52043 | */ | ||
52044 | private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52045 | { | ||
52046 | find interpretation(problem,interpretation); | ||
52047 | PartialInterpretation.newElements(interpretation,element); | ||
52048 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
52049 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52050 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52051 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52052 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52053 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52054 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
52055 | neg find isPrimitive(element); | ||
52056 | } or { | ||
52057 | find interpretation(problem,interpretation); | ||
52058 | PartialInterpretation.openWorldElements(interpretation,element); | ||
52059 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
52060 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52061 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52062 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52063 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52064 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52065 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
52066 | neg find isPrimitive(element); | ||
52067 | } or | ||
52068 | { find mustInstanceOfFunctionalInput_class(problem,interpretation,element); } | ||
52069 | /** | ||
52070 | * An element must be an instance of type "FunctionalOutput class". | ||
52071 | */ | ||
52072 | private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
52073 | Type.name(type,"FunctionalOutput class"); | ||
52074 | find directInstanceOf(problem,interpretation,element,type); | ||
52075 | } | ||
52076 | private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
52077 | find interpretation(problem,interpretation); | ||
52078 | PartialInterpretation.scopes(interpretation,scope); | ||
52079 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
52080 | Scope.maxNewElements(scope,0); | ||
52081 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
52082 | Type.name(type,"FunctionalOutput class"); | ||
52083 | } | ||
52084 | |||
52085 | /** | ||
52086 | * An element may be an instance of type "FunctionalOutput class". | ||
52087 | */ | ||
52088 | private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52089 | { | ||
52090 | find interpretation(problem,interpretation); | ||
52091 | PartialInterpretation.newElements(interpretation,element); | ||
52092 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52093 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52094 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
52095 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52096 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52097 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52098 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
52099 | neg find isPrimitive(element); | ||
52100 | } or { | ||
52101 | find interpretation(problem,interpretation); | ||
52102 | PartialInterpretation.openWorldElements(interpretation,element); | ||
52103 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52104 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52105 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
52106 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52107 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52108 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52109 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
52110 | neg find isPrimitive(element); | ||
52111 | } or | ||
52112 | { find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); } | ||
52113 | /** | ||
52114 | * An element must be an instance of type "FunctionalData class". | ||
52115 | */ | ||
52116 | private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
52117 | Type.name(type,"FunctionalData class"); | ||
52118 | find directInstanceOf(problem,interpretation,element,type); | ||
52119 | } | ||
52120 | private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
52121 | find interpretation(problem,interpretation); | ||
52122 | PartialInterpretation.scopes(interpretation,scope); | ||
52123 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
52124 | Scope.maxNewElements(scope,0); | ||
52125 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
52126 | Type.name(type,"FunctionalData class"); | ||
52127 | } | ||
52128 | |||
52129 | /** | ||
52130 | * An element may be an instance of type "FunctionalData class". | ||
52131 | */ | ||
52132 | private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52133 | { | ||
52134 | find interpretation(problem,interpretation); | ||
52135 | PartialInterpretation.newElements(interpretation,element); | ||
52136 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
52137 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52138 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52139 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
52140 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52141 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52142 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52143 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
52144 | neg find isPrimitive(element); | ||
52145 | } or { | ||
52146 | find interpretation(problem,interpretation); | ||
52147 | PartialInterpretation.openWorldElements(interpretation,element); | ||
52148 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
52149 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52150 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52151 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
52152 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
52153 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52154 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52155 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
52156 | neg find isPrimitive(element); | ||
52157 | } or | ||
52158 | { find mustInstanceOfFunctionalData_class(problem,interpretation,element); } | ||
52159 | /** | ||
52160 | * An element must be an instance of type "FunctionType enum". | ||
52161 | */ | ||
52162 | private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
52163 | Type.name(type,"FunctionType enum"); | ||
52164 | find directInstanceOf(problem,interpretation,element,type); | ||
52165 | } | ||
52166 | private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
52167 | find interpretation(problem,interpretation); | ||
52168 | PartialInterpretation.scopes(interpretation,scope); | ||
52169 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
52170 | Scope.maxNewElements(scope,0); | ||
52171 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
52172 | Type.name(type,"FunctionType enum"); | ||
52173 | } | ||
52174 | |||
52175 | /** | ||
52176 | * An element may be an instance of type "FunctionType enum". | ||
52177 | */ | ||
52178 | private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52179 | { find mustInstanceOfFunctionType_enum(problem,interpretation,element); } | ||
52180 | /** | ||
52181 | * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart". | ||
52182 | */ | ||
52183 | private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
52184 | Type.name(type,"FunctionalArchitectureModel class DefinedPart"); | ||
52185 | find directInstanceOf(problem,interpretation,element,type); | ||
52186 | } | ||
52187 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
52188 | find interpretation(problem,interpretation); | ||
52189 | PartialInterpretation.scopes(interpretation,scope); | ||
52190 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
52191 | Scope.maxNewElements(scope,0); | ||
52192 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
52193 | Type.name(type,"FunctionalArchitectureModel class DefinedPart"); | ||
52194 | } | ||
52195 | |||
52196 | /** | ||
52197 | * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart". | ||
52198 | */ | ||
52199 | private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52200 | { find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); } | ||
52201 | /** | ||
52202 | * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart". | ||
52203 | */ | ||
52204 | private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
52205 | Type.name(type,"FunctionalArchitectureModel class UndefinedPart"); | ||
52206 | find directInstanceOf(problem,interpretation,element,type); | ||
52207 | } | ||
52208 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
52209 | find interpretation(problem,interpretation); | ||
52210 | PartialInterpretation.scopes(interpretation,scope); | ||
52211 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
52212 | Scope.maxNewElements(scope,0); | ||
52213 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
52214 | Type.name(type,"FunctionalArchitectureModel class UndefinedPart"); | ||
52215 | } | ||
52216 | |||
52217 | /** | ||
52218 | * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart". | ||
52219 | */ | ||
52220 | private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
52221 | { | ||
52222 | find interpretation(problem,interpretation); | ||
52223 | PartialInterpretation.newElements(interpretation,element); | ||
52224 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52225 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52226 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52227 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
52228 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52229 | neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); | ||
52230 | neg find isPrimitive(element); | ||
52231 | } or { | ||
52232 | find interpretation(problem,interpretation); | ||
52233 | PartialInterpretation.openWorldElements(interpretation,element); | ||
52234 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
52235 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
52236 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
52237 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
52238 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
52239 | neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); | ||
52240 | neg find isPrimitive(element); | ||
52241 | } or | ||
52242 | { find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); } | ||
52243 | |||
52244 | ////////// | ||
52245 | // 1.2 Relation Declaration Indexers | ||
52246 | ////////// | ||
52247 | /** | ||
52248 | * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target) | ||
52249 | */ | ||
52250 | private pattern mustInRelationinterface_reference_FunctionalElement( | ||
52251 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52252 | source: DefinedElement, target:DefinedElement) | ||
52253 | { | ||
52254 | find interpretation(problem,interpretation); | ||
52255 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52256 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement"); | ||
52257 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52258 | BinaryElementRelationLink.param1(link,source); | ||
52259 | BinaryElementRelationLink.param2(link,target); | ||
52260 | } | ||
52261 | /** | ||
52262 | * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target) | ||
52263 | */ | ||
52264 | private pattern mayInRelationinterface_reference_FunctionalElement( | ||
52265 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52266 | source: DefinedElement, target:DefinedElement) | ||
52267 | { | ||
52268 | find interpretation(problem,interpretation); | ||
52269 | // The two endpoint of the link have to exist | ||
52270 | find mayExist(problem, interpretation, source); | ||
52271 | find mayExist(problem, interpretation, target); | ||
52272 | // Type consistency | ||
52273 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
52274 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
52275 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52276 | // the upper bound of the multiplicity should be considered. | ||
52277 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_); | ||
52278 | check(numberOfExistingReferences < 1); | ||
52279 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52280 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52281 | numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_); | ||
52282 | check(numberOfExistingOppositeReferences < 1); | ||
52283 | // The reference is containment, then a new reference cannot be create if: | ||
52284 | // 1. Multiple parents | ||
52285 | neg find mustContains4(problem,interpretation,_,target); | ||
52286 | // 2. Circle in the containment hierarchy | ||
52287 | neg find mustTransitiveContains(source,target); | ||
52288 | } or { | ||
52289 | find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); | ||
52290 | } | ||
52291 | /** | ||
52292 | * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) | ||
52293 | */ | ||
52294 | private pattern mustInRelationmodel_reference_FunctionalElement( | ||
52295 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52296 | source: DefinedElement, target:DefinedElement) | ||
52297 | { | ||
52298 | find interpretation(problem,interpretation); | ||
52299 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52300 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
52301 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52302 | BinaryElementRelationLink.param1(link,source); | ||
52303 | BinaryElementRelationLink.param2(link,target); | ||
52304 | } | ||
52305 | /** | ||
52306 | * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target) | ||
52307 | */ | ||
52308 | private pattern mayInRelationmodel_reference_FunctionalElement( | ||
52309 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52310 | source: DefinedElement, target:DefinedElement) | ||
52311 | { | ||
52312 | find interpretation(problem,interpretation); | ||
52313 | // The two endpoint of the link have to exist | ||
52314 | find mayExist(problem, interpretation, source); | ||
52315 | find mayExist(problem, interpretation, target); | ||
52316 | // Type consistency | ||
52317 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
52318 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target); | ||
52319 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52320 | // the upper bound of the multiplicity should be considered. | ||
52321 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_); | ||
52322 | check(numberOfExistingReferences < 1); | ||
52323 | } or { | ||
52324 | find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target); | ||
52325 | } | ||
52326 | /** | ||
52327 | * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) | ||
52328 | */ | ||
52329 | private pattern mustInRelationparent_reference_FunctionalElement( | ||
52330 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52331 | source: DefinedElement, target:DefinedElement) | ||
52332 | { | ||
52333 | find interpretation(problem,interpretation); | ||
52334 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52335 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement"); | ||
52336 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52337 | BinaryElementRelationLink.param1(link,source); | ||
52338 | BinaryElementRelationLink.param2(link,target); | ||
52339 | } | ||
52340 | /** | ||
52341 | * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target) | ||
52342 | */ | ||
52343 | private pattern mayInRelationparent_reference_FunctionalElement( | ||
52344 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52345 | source: DefinedElement, target:DefinedElement) | ||
52346 | { | ||
52347 | find interpretation(problem,interpretation); | ||
52348 | // The two endpoint of the link have to exist | ||
52349 | find mayExist(problem, interpretation, source); | ||
52350 | find mayExist(problem, interpretation, target); | ||
52351 | // Type consistency | ||
52352 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
52353 | find mayInstanceOfFunction_class(problem,interpretation,target); | ||
52354 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52355 | // the upper bound of the multiplicity should be considered. | ||
52356 | numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_); | ||
52357 | check(numberOfExistingReferences < 1); | ||
52358 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
52359 | // 1. Multiple parents | ||
52360 | neg find mustContains4(problem,interpretation,source,_); | ||
52361 | // 2. Circle in the containment hierarchy | ||
52362 | neg find mustTransitiveContains(source,target); | ||
52363 | } or { | ||
52364 | find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target); | ||
52365 | } | ||
52366 | /** | ||
52367 | * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target) | ||
52368 | */ | ||
52369 | private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel( | ||
52370 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52371 | source: DefinedElement, target:DefinedElement) | ||
52372 | { | ||
52373 | find interpretation(problem,interpretation); | ||
52374 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52375 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
52376 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52377 | BinaryElementRelationLink.param1(link,source); | ||
52378 | BinaryElementRelationLink.param2(link,target); | ||
52379 | } | ||
52380 | /** | ||
52381 | * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target) | ||
52382 | */ | ||
52383 | private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel( | ||
52384 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52385 | source: DefinedElement, target:DefinedElement) | ||
52386 | { | ||
52387 | find interpretation(problem,interpretation); | ||
52388 | // The two endpoint of the link have to exist | ||
52389 | find mayExist(problem, interpretation, source); | ||
52390 | find mayExist(problem, interpretation, target); | ||
52391 | // Type consistency | ||
52392 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source); | ||
52393 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
52394 | // The reference is containment, then a new reference cannot be create if: | ||
52395 | // 1. Multiple parents | ||
52396 | neg find mustContains4(problem,interpretation,_,target); | ||
52397 | // 2. Circle in the containment hierarchy | ||
52398 | neg find mustTransitiveContains(source,target); | ||
52399 | } or { | ||
52400 | find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); | ||
52401 | } | ||
52402 | /** | ||
52403 | * Matcher for detecting tuples t where []subElements reference Function(source,target) | ||
52404 | */ | ||
52405 | private pattern mustInRelationsubElements_reference_Function( | ||
52406 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52407 | source: DefinedElement, target:DefinedElement) | ||
52408 | { | ||
52409 | find interpretation(problem,interpretation); | ||
52410 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52411 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function"); | ||
52412 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52413 | BinaryElementRelationLink.param1(link,source); | ||
52414 | BinaryElementRelationLink.param2(link,target); | ||
52415 | } | ||
52416 | /** | ||
52417 | * Matcher for detecting tuples t where <>subElements reference Function(source,target) | ||
52418 | */ | ||
52419 | private pattern mayInRelationsubElements_reference_Function( | ||
52420 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52421 | source: DefinedElement, target:DefinedElement) | ||
52422 | { | ||
52423 | find interpretation(problem,interpretation); | ||
52424 | // The two endpoint of the link have to exist | ||
52425 | find mayExist(problem, interpretation, source); | ||
52426 | find mayExist(problem, interpretation, target); | ||
52427 | // Type consistency | ||
52428 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
52429 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
52430 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52431 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52432 | numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_); | ||
52433 | check(numberOfExistingOppositeReferences < 1); | ||
52434 | // The reference is containment, then a new reference cannot be create if: | ||
52435 | // 1. Multiple parents | ||
52436 | neg find mustContains4(problem,interpretation,_,target); | ||
52437 | // 2. Circle in the containment hierarchy | ||
52438 | neg find mustTransitiveContains(source,target); | ||
52439 | } or { | ||
52440 | find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); | ||
52441 | } | ||
52442 | /** | ||
52443 | * Matcher for detecting tuples t where []data reference FAMTerminator(source,target) | ||
52444 | */ | ||
52445 | private pattern mustInRelationdata_reference_FAMTerminator( | ||
52446 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52447 | source: DefinedElement, target:DefinedElement) | ||
52448 | { | ||
52449 | find interpretation(problem,interpretation); | ||
52450 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52451 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator"); | ||
52452 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52453 | BinaryElementRelationLink.param1(link,source); | ||
52454 | BinaryElementRelationLink.param2(link,target); | ||
52455 | } | ||
52456 | /** | ||
52457 | * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target) | ||
52458 | */ | ||
52459 | private pattern mayInRelationdata_reference_FAMTerminator( | ||
52460 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52461 | source: DefinedElement, target:DefinedElement) | ||
52462 | { | ||
52463 | find interpretation(problem,interpretation); | ||
52464 | // The two endpoint of the link have to exist | ||
52465 | find mayExist(problem, interpretation, source); | ||
52466 | find mayExist(problem, interpretation, target); | ||
52467 | // Type consistency | ||
52468 | find mayInstanceOfFAMTerminator_class(problem,interpretation,source); | ||
52469 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
52470 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52471 | // the upper bound of the multiplicity should be considered. | ||
52472 | numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_); | ||
52473 | check(numberOfExistingReferences < 1); | ||
52474 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52475 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52476 | numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_); | ||
52477 | check(numberOfExistingOppositeReferences < 1); | ||
52478 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
52479 | // 1. Multiple parents | ||
52480 | neg find mustContains4(problem,interpretation,source,_); | ||
52481 | // 2. Circle in the containment hierarchy | ||
52482 | neg find mustTransitiveContains(source,target); | ||
52483 | } or { | ||
52484 | find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target); | ||
52485 | } | ||
52486 | /** | ||
52487 | * Matcher for detecting tuples t where []from reference InformationLink(source,target) | ||
52488 | */ | ||
52489 | private pattern mustInRelationfrom_reference_InformationLink( | ||
52490 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52491 | source: DefinedElement, target:DefinedElement) | ||
52492 | { | ||
52493 | find interpretation(problem,interpretation); | ||
52494 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52495 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink"); | ||
52496 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52497 | BinaryElementRelationLink.param1(link,source); | ||
52498 | BinaryElementRelationLink.param2(link,target); | ||
52499 | } | ||
52500 | /** | ||
52501 | * Matcher for detecting tuples t where <>from reference InformationLink(source,target) | ||
52502 | */ | ||
52503 | private pattern mayInRelationfrom_reference_InformationLink( | ||
52504 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52505 | source: DefinedElement, target:DefinedElement) | ||
52506 | { | ||
52507 | find interpretation(problem,interpretation); | ||
52508 | // The two endpoint of the link have to exist | ||
52509 | find mayExist(problem, interpretation, source); | ||
52510 | find mayExist(problem, interpretation, target); | ||
52511 | // Type consistency | ||
52512 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
52513 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,target); | ||
52514 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52515 | // the upper bound of the multiplicity should be considered. | ||
52516 | numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_); | ||
52517 | check(numberOfExistingReferences < 1); | ||
52518 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
52519 | // 1. Multiple parents | ||
52520 | neg find mustContains4(problem,interpretation,source,_); | ||
52521 | // 2. Circle in the containment hierarchy | ||
52522 | neg find mustTransitiveContains(source,target); | ||
52523 | } or { | ||
52524 | find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target); | ||
52525 | } | ||
52526 | /** | ||
52527 | * Matcher for detecting tuples t where []to reference InformationLink(source,target) | ||
52528 | */ | ||
52529 | private pattern mustInRelationto_reference_InformationLink( | ||
52530 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52531 | source: DefinedElement, target:DefinedElement) | ||
52532 | { | ||
52533 | find interpretation(problem,interpretation); | ||
52534 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52535 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
52536 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52537 | BinaryElementRelationLink.param1(link,source); | ||
52538 | BinaryElementRelationLink.param2(link,target); | ||
52539 | } | ||
52540 | /** | ||
52541 | * Matcher for detecting tuples t where <>to reference InformationLink(source,target) | ||
52542 | */ | ||
52543 | private pattern mayInRelationto_reference_InformationLink( | ||
52544 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52545 | source: DefinedElement, target:DefinedElement) | ||
52546 | { | ||
52547 | find interpretation(problem,interpretation); | ||
52548 | // The two endpoint of the link have to exist | ||
52549 | find mayExist(problem, interpretation, source); | ||
52550 | find mayExist(problem, interpretation, target); | ||
52551 | // Type consistency | ||
52552 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
52553 | find mayInstanceOfFunctionalInput_class(problem,interpretation,target); | ||
52554 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52555 | // the upper bound of the multiplicity should be considered. | ||
52556 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_); | ||
52557 | check(numberOfExistingReferences < 1); | ||
52558 | } or { | ||
52559 | find mustInRelationto_reference_InformationLink(problem,interpretation,source,target); | ||
52560 | } | ||
52561 | /** | ||
52562 | * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target) | ||
52563 | */ | ||
52564 | private pattern mustInRelationdata_reference_FunctionalInterface( | ||
52565 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52566 | source: DefinedElement, target:DefinedElement) | ||
52567 | { | ||
52568 | find interpretation(problem,interpretation); | ||
52569 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52570 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface"); | ||
52571 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52572 | BinaryElementRelationLink.param1(link,source); | ||
52573 | BinaryElementRelationLink.param2(link,target); | ||
52574 | } | ||
52575 | /** | ||
52576 | * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target) | ||
52577 | */ | ||
52578 | private pattern mayInRelationdata_reference_FunctionalInterface( | ||
52579 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52580 | source: DefinedElement, target:DefinedElement) | ||
52581 | { | ||
52582 | find interpretation(problem,interpretation); | ||
52583 | // The two endpoint of the link have to exist | ||
52584 | find mayExist(problem, interpretation, source); | ||
52585 | find mayExist(problem, interpretation, target); | ||
52586 | // Type consistency | ||
52587 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
52588 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
52589 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52590 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52591 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_); | ||
52592 | check(numberOfExistingOppositeReferences < 1); | ||
52593 | // The reference is containment, then a new reference cannot be create if: | ||
52594 | // 1. Multiple parents | ||
52595 | neg find mustContains4(problem,interpretation,_,target); | ||
52596 | // 2. Circle in the containment hierarchy | ||
52597 | neg find mustTransitiveContains(source,target); | ||
52598 | } or { | ||
52599 | find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); | ||
52600 | } | ||
52601 | /** | ||
52602 | * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target) | ||
52603 | */ | ||
52604 | private pattern mustInRelationelement_reference_FunctionalInterface( | ||
52605 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52606 | source: DefinedElement, target:DefinedElement) | ||
52607 | { | ||
52608 | find interpretation(problem,interpretation); | ||
52609 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52610 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface"); | ||
52611 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52612 | BinaryElementRelationLink.param1(link,source); | ||
52613 | BinaryElementRelationLink.param2(link,target); | ||
52614 | } | ||
52615 | /** | ||
52616 | * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target) | ||
52617 | */ | ||
52618 | private pattern mayInRelationelement_reference_FunctionalInterface( | ||
52619 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52620 | source: DefinedElement, target:DefinedElement) | ||
52621 | { | ||
52622 | find interpretation(problem,interpretation); | ||
52623 | // The two endpoint of the link have to exist | ||
52624 | find mayExist(problem, interpretation, source); | ||
52625 | find mayExist(problem, interpretation, target); | ||
52626 | // Type consistency | ||
52627 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
52628 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
52629 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52630 | // the upper bound of the multiplicity should be considered. | ||
52631 | numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_); | ||
52632 | check(numberOfExistingReferences < 1); | ||
52633 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52634 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52635 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_); | ||
52636 | check(numberOfExistingOppositeReferences < 1); | ||
52637 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
52638 | // 1. Multiple parents | ||
52639 | neg find mustContains4(problem,interpretation,source,_); | ||
52640 | // 2. Circle in the containment hierarchy | ||
52641 | neg find mustTransitiveContains(source,target); | ||
52642 | } or { | ||
52643 | find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target); | ||
52644 | } | ||
52645 | /** | ||
52646 | * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target) | ||
52647 | */ | ||
52648 | private pattern mustInRelationIncomingLinks_reference_FunctionalInput( | ||
52649 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52650 | source: DefinedElement, target:DefinedElement) | ||
52651 | { | ||
52652 | find interpretation(problem,interpretation); | ||
52653 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52654 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
52655 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52656 | BinaryElementRelationLink.param1(link,source); | ||
52657 | BinaryElementRelationLink.param2(link,target); | ||
52658 | } | ||
52659 | /** | ||
52660 | * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target) | ||
52661 | */ | ||
52662 | private pattern mayInRelationIncomingLinks_reference_FunctionalInput( | ||
52663 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52664 | source: DefinedElement, target:DefinedElement) | ||
52665 | { | ||
52666 | find interpretation(problem,interpretation); | ||
52667 | // The two endpoint of the link have to exist | ||
52668 | find mayExist(problem, interpretation, source); | ||
52669 | find mayExist(problem, interpretation, target); | ||
52670 | // Type consistency | ||
52671 | find mayInstanceOfFunctionalInput_class(problem,interpretation,source); | ||
52672 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
52673 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52674 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52675 | numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_); | ||
52676 | check(numberOfExistingOppositeReferences < 1); | ||
52677 | } or { | ||
52678 | find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target); | ||
52679 | } | ||
52680 | /** | ||
52681 | * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target) | ||
52682 | */ | ||
52683 | private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput( | ||
52684 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52685 | source: DefinedElement, target:DefinedElement) | ||
52686 | { | ||
52687 | find interpretation(problem,interpretation); | ||
52688 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52689 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput"); | ||
52690 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52691 | BinaryElementRelationLink.param1(link,source); | ||
52692 | BinaryElementRelationLink.param2(link,target); | ||
52693 | } | ||
52694 | /** | ||
52695 | * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target) | ||
52696 | */ | ||
52697 | private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput( | ||
52698 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52699 | source: DefinedElement, target:DefinedElement) | ||
52700 | { | ||
52701 | find interpretation(problem,interpretation); | ||
52702 | // The two endpoint of the link have to exist | ||
52703 | find mayExist(problem, interpretation, source); | ||
52704 | find mayExist(problem, interpretation, target); | ||
52705 | // Type consistency | ||
52706 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,source); | ||
52707 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
52708 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52709 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52710 | numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_); | ||
52711 | check(numberOfExistingOppositeReferences < 1); | ||
52712 | // The reference is containment, then a new reference cannot be create if: | ||
52713 | // 1. Multiple parents | ||
52714 | neg find mustContains4(problem,interpretation,_,target); | ||
52715 | // 2. Circle in the containment hierarchy | ||
52716 | neg find mustTransitiveContains(source,target); | ||
52717 | } or { | ||
52718 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); | ||
52719 | } | ||
52720 | /** | ||
52721 | * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target) | ||
52722 | */ | ||
52723 | private pattern mustInRelationterminator_reference_FunctionalData( | ||
52724 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52725 | source: DefinedElement, target:DefinedElement) | ||
52726 | { | ||
52727 | find interpretation(problem,interpretation); | ||
52728 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52729 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData"); | ||
52730 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52731 | BinaryElementRelationLink.param1(link,source); | ||
52732 | BinaryElementRelationLink.param2(link,target); | ||
52733 | } | ||
52734 | /** | ||
52735 | * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target) | ||
52736 | */ | ||
52737 | private pattern mayInRelationterminator_reference_FunctionalData( | ||
52738 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52739 | source: DefinedElement, target:DefinedElement) | ||
52740 | { | ||
52741 | find interpretation(problem,interpretation); | ||
52742 | // The two endpoint of the link have to exist | ||
52743 | find mayExist(problem, interpretation, source); | ||
52744 | find mayExist(problem, interpretation, target); | ||
52745 | // Type consistency | ||
52746 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
52747 | find mayInstanceOfFAMTerminator_class(problem,interpretation,target); | ||
52748 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52749 | // the upper bound of the multiplicity should be considered. | ||
52750 | numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_); | ||
52751 | check(numberOfExistingReferences < 1); | ||
52752 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
52753 | // the upper bound of the opposite reference multiplicity should be considered. | ||
52754 | numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_); | ||
52755 | check(numberOfExistingOppositeReferences < 1); | ||
52756 | // The reference is containment, then a new reference cannot be create if: | ||
52757 | // 1. Multiple parents | ||
52758 | neg find mustContains4(problem,interpretation,_,target); | ||
52759 | // 2. Circle in the containment hierarchy | ||
52760 | neg find mustTransitiveContains(source,target); | ||
52761 | } or { | ||
52762 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); | ||
52763 | } | ||
52764 | /** | ||
52765 | * Matcher for detecting tuples t where []interface reference FunctionalData(source,target) | ||
52766 | */ | ||
52767 | private pattern mustInRelationinterface_reference_FunctionalData( | ||
52768 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52769 | source: DefinedElement, target:DefinedElement) | ||
52770 | { | ||
52771 | find interpretation(problem,interpretation); | ||
52772 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52773 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData"); | ||
52774 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52775 | BinaryElementRelationLink.param1(link,source); | ||
52776 | BinaryElementRelationLink.param2(link,target); | ||
52777 | } | ||
52778 | /** | ||
52779 | * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target) | ||
52780 | */ | ||
52781 | private pattern mayInRelationinterface_reference_FunctionalData( | ||
52782 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52783 | source: DefinedElement, target:DefinedElement) | ||
52784 | { | ||
52785 | find interpretation(problem,interpretation); | ||
52786 | // The two endpoint of the link have to exist | ||
52787 | find mayExist(problem, interpretation, source); | ||
52788 | find mayExist(problem, interpretation, target); | ||
52789 | // Type consistency | ||
52790 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
52791 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
52792 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52793 | // the upper bound of the multiplicity should be considered. | ||
52794 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_); | ||
52795 | check(numberOfExistingReferences < 1); | ||
52796 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
52797 | // 1. Multiple parents | ||
52798 | neg find mustContains4(problem,interpretation,source,_); | ||
52799 | // 2. Circle in the containment hierarchy | ||
52800 | neg find mustTransitiveContains(source,target); | ||
52801 | } or { | ||
52802 | find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target); | ||
52803 | } | ||
52804 | /** | ||
52805 | * Matcher for detecting tuples t where []type attribute Function(source,target) | ||
52806 | */ | ||
52807 | private pattern mustInRelationtype_attribute_Function( | ||
52808 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52809 | source: DefinedElement, target:DefinedElement) | ||
52810 | { | ||
52811 | find interpretation(problem,interpretation); | ||
52812 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52813 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
52814 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
52815 | BinaryElementRelationLink.param1(link,source); | ||
52816 | BinaryElementRelationLink.param2(link,target); | ||
52817 | } | ||
52818 | /** | ||
52819 | * Matcher for detecting tuples t where <>type attribute Function(source,target) | ||
52820 | */ | ||
52821 | private pattern mayInRelationtype_attribute_Function( | ||
52822 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52823 | source: DefinedElement, target:DefinedElement) | ||
52824 | { | ||
52825 | find interpretation(problem,interpretation); | ||
52826 | // The two endpoint of the link have to exist | ||
52827 | find mayExist(problem, interpretation, source); | ||
52828 | find mayExist(problem, interpretation, target); | ||
52829 | // Type consistency | ||
52830 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
52831 | find mayInstanceOfFunctionType_enum(problem,interpretation,target); | ||
52832 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
52833 | // the upper bound of the multiplicity should be considered. | ||
52834 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_); | ||
52835 | check(numberOfExistingReferences < 1); | ||
52836 | } or { | ||
52837 | find mustInRelationtype_attribute_Function(problem,interpretation,source,target); | ||
52838 | } | ||
52839 | |||
52840 | ////////// | ||
52841 | // 1.3 Relation Definition Indexers | ||
52842 | ////////// | ||
52843 | |||
52844 | ////////// | ||
52845 | // 1.4 Containment Indexer | ||
52846 | ////////// | ||
52847 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
52848 | find mustContains4(_,_,source,target); | ||
52849 | } | ||
52850 | |||
52851 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
52852 | source: DefinedElement, target: DefinedElement) | ||
52853 | { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or | ||
52854 | |||
52855 | { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or | ||
52856 | |||
52857 | { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or | ||
52858 | |||
52859 | { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or | ||
52860 | |||
52861 | { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or | ||
52862 | |||
52863 | { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); } | ||
52864 | |||
52865 | private pattern mustTransitiveContains(source,target) { | ||
52866 | find mustContains2+(source,target); | ||
52867 | } | ||
52868 | |||
52869 | ////////// | ||
52870 | // 2. Invalidation Indexers | ||
52871 | ////////// | ||
52872 | // 2.1 Invalidated by WF Queries | ||
52873 | ////////// | ||
52874 | |||
52875 | ////////// | ||
52876 | // 3. Unfinishedness Indexers | ||
52877 | ////////// | ||
52878 | // 3.1 Unfinishedness Measured by Multiplicity | ||
52879 | ////////// | ||
52880 | pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
52881 | find interpretation(problem,interpretation); | ||
52882 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52883 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
52884 | find mustInstanceOfFunctionalElement_class(problem,interpretation,object); | ||
52885 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_); | ||
52886 | check(numberOfExistingReferences < 1); | ||
52887 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
52888 | } | ||
52889 | pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
52890 | find interpretation(problem,interpretation); | ||
52891 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52892 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
52893 | find mustInstanceOfInformationLink_class(problem,interpretation,object); | ||
52894 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_); | ||
52895 | check(numberOfExistingReferences < 1); | ||
52896 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
52897 | } | ||
52898 | pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
52899 | find interpretation(problem,interpretation); | ||
52900 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
52901 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
52902 | find mustInstanceOfFunction_class(problem,interpretation,object); | ||
52903 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_); | ||
52904 | check(numberOfExistingReferences < 1); | ||
52905 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
52906 | } | ||
52907 | |||
52908 | ////////// | ||
52909 | // 3.2 Unfinishedness Measured by WF Queries | ||
52910 | ////////// | ||
52911 | |||
52912 | ////////// | ||
52913 | // 4. Refinement Indexers | ||
52914 | ////////// | ||
52915 | // 4.1 Object constructors | ||
52916 | ////////// | ||
52917 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
52918 | { | ||
52919 | find interpretation(problem,interpretation); | ||
52920 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); | ||
52921 | find mustExist(problem, interpretation, root); | ||
52922 | }or{ | ||
52923 | find interpretation(problem,interpretation); | ||
52924 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); | ||
52925 | find mustExist(problem, interpretation, root); | ||
52926 | }or{ | ||
52927 | find interpretation(problem,interpretation); | ||
52928 | find mustInstanceOfInformationLink_class(problem,interpretation,root); | ||
52929 | find mustExist(problem, interpretation, root); | ||
52930 | }or{ | ||
52931 | find interpretation(problem,interpretation); | ||
52932 | find mustInstanceOfFAMTerminator_class(problem,interpretation,root); | ||
52933 | find mustExist(problem, interpretation, root); | ||
52934 | }or{ | ||
52935 | find interpretation(problem,interpretation); | ||
52936 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); | ||
52937 | find mustExist(problem, interpretation, root); | ||
52938 | }or{ | ||
52939 | find interpretation(problem,interpretation); | ||
52940 | find mustInstanceOfFunctionalElement_class(problem,interpretation,root); | ||
52941 | find mustExist(problem, interpretation, root); | ||
52942 | }or{ | ||
52943 | find interpretation(problem,interpretation); | ||
52944 | find mustInstanceOfFunctionalData_class(problem,interpretation,root); | ||
52945 | find mustExist(problem, interpretation, root); | ||
52946 | }or{ | ||
52947 | find interpretation(problem,interpretation); | ||
52948 | find mustInstanceOfFunctionalInput_class(problem,interpretation,root); | ||
52949 | find mustExist(problem, interpretation, root); | ||
52950 | }or{ | ||
52951 | find interpretation(problem,interpretation); | ||
52952 | find mustInstanceOfFunction_class(problem,interpretation,root); | ||
52953 | find mustExist(problem, interpretation, root); | ||
52954 | }or{ | ||
52955 | find interpretation(problem,interpretation); | ||
52956 | find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); | ||
52957 | find mustExist(problem, interpretation, root); | ||
52958 | }or{ | ||
52959 | find interpretation(problem,interpretation); | ||
52960 | find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); | ||
52961 | find mustExist(problem, interpretation, root); | ||
52962 | } | ||
52963 | pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
52964 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52965 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
52966 | container:DefinedElement) | ||
52967 | { | ||
52968 | find interpretation(problem,interpretation); | ||
52969 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
52970 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
52971 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
52972 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
52973 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
52974 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
52975 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
52976 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
52977 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
52978 | find mustExist(problem, interpretation, container); | ||
52979 | neg find mustExist(problem, interpretation, newObject); | ||
52980 | } | ||
52981 | pattern createObject_FunctionalOutput_class( | ||
52982 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52983 | typeInterpretation:PartialComplexTypeInterpretation) | ||
52984 | { | ||
52985 | find interpretation(problem,interpretation); | ||
52986 | neg find hasElementInContainment(problem,interpretation); | ||
52987 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
52988 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
52989 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
52990 | find mayExist(problem, interpretation, newObject); | ||
52991 | neg find mustExist(problem, interpretation, newObject); | ||
52992 | } | ||
52993 | pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( | ||
52994 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
52995 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
52996 | container:DefinedElement) | ||
52997 | { | ||
52998 | find interpretation(problem,interpretation); | ||
52999 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53000 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
53001 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
53002 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); | ||
53003 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
53004 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); | ||
53005 | find mustInstanceOfFunctionalElement_class(problem,interpretation,container); | ||
53006 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
53007 | find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); | ||
53008 | find mustExist(problem, interpretation, container); | ||
53009 | neg find mustExist(problem, interpretation, newObject); | ||
53010 | } | ||
53011 | pattern createObject_FunctionalInterface_class( | ||
53012 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53013 | typeInterpretation:PartialComplexTypeInterpretation) | ||
53014 | { | ||
53015 | find interpretation(problem,interpretation); | ||
53016 | neg find hasElementInContainment(problem,interpretation); | ||
53017 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53018 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
53019 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
53020 | find mayExist(problem, interpretation, newObject); | ||
53021 | neg find mustExist(problem, interpretation, newObject); | ||
53022 | } | ||
53023 | pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( | ||
53024 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53025 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
53026 | container:DefinedElement) | ||
53027 | { | ||
53028 | find interpretation(problem,interpretation); | ||
53029 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53030 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
53031 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
53032 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); | ||
53033 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
53034 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); | ||
53035 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); | ||
53036 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
53037 | find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); | ||
53038 | find mustExist(problem, interpretation, container); | ||
53039 | neg find mustExist(problem, interpretation, newObject); | ||
53040 | } | ||
53041 | pattern createObject_InformationLink_class( | ||
53042 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53043 | typeInterpretation:PartialComplexTypeInterpretation) | ||
53044 | { | ||
53045 | find interpretation(problem,interpretation); | ||
53046 | neg find hasElementInContainment(problem,interpretation); | ||
53047 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53048 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
53049 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
53050 | find mayExist(problem, interpretation, newObject); | ||
53051 | neg find mustExist(problem, interpretation, newObject); | ||
53052 | } | ||
53053 | pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( | ||
53054 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53055 | typeInterpretation:PartialComplexTypeInterpretation) | ||
53056 | { | ||
53057 | find interpretation(problem,interpretation); | ||
53058 | neg find hasElementInContainment(problem,interpretation); | ||
53059 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53060 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); | ||
53061 | find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); | ||
53062 | find mayExist(problem, interpretation, newObject); | ||
53063 | neg find mustExist(problem, interpretation, newObject); | ||
53064 | } | ||
53065 | pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
53066 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53067 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
53068 | container:DefinedElement) | ||
53069 | { | ||
53070 | find interpretation(problem,interpretation); | ||
53071 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53072 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
53073 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
53074 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
53075 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
53076 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
53077 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
53078 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
53079 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
53080 | find mustExist(problem, interpretation, container); | ||
53081 | neg find mustExist(problem, interpretation, newObject); | ||
53082 | } | ||
53083 | pattern createObject_FunctionalInput_class( | ||
53084 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53085 | typeInterpretation:PartialComplexTypeInterpretation) | ||
53086 | { | ||
53087 | find interpretation(problem,interpretation); | ||
53088 | neg find hasElementInContainment(problem,interpretation); | ||
53089 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53090 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
53091 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
53092 | find mayExist(problem, interpretation, newObject); | ||
53093 | neg find mustExist(problem, interpretation, newObject); | ||
53094 | } | ||
53095 | pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( | ||
53096 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53097 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
53098 | container:DefinedElement) | ||
53099 | { | ||
53100 | find interpretation(problem,interpretation); | ||
53101 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53102 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
53103 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
53104 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
53105 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); | ||
53106 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
53107 | find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); | ||
53108 | find mustExist(problem, interpretation, container); | ||
53109 | neg find mustExist(problem, interpretation, newObject); | ||
53110 | } | ||
53111 | pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( | ||
53112 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53113 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
53114 | container:DefinedElement) | ||
53115 | { | ||
53116 | find interpretation(problem,interpretation); | ||
53117 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53118 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
53119 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
53120 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); | ||
53121 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
53122 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); | ||
53123 | find mustInstanceOfFunction_class(problem,interpretation,container); | ||
53124 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
53125 | find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); | ||
53126 | find mustExist(problem, interpretation, container); | ||
53127 | neg find mustExist(problem, interpretation, newObject); | ||
53128 | } | ||
53129 | pattern createObject_Function_class( | ||
53130 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53131 | typeInterpretation:PartialComplexTypeInterpretation) | ||
53132 | { | ||
53133 | find interpretation(problem,interpretation); | ||
53134 | neg find hasElementInContainment(problem,interpretation); | ||
53135 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53136 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
53137 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
53138 | find mayExist(problem, interpretation, newObject); | ||
53139 | neg find mustExist(problem, interpretation, newObject); | ||
53140 | } | ||
53141 | pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( | ||
53142 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53143 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
53144 | container:DefinedElement) | ||
53145 | { | ||
53146 | find interpretation(problem,interpretation); | ||
53147 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53148 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
53149 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
53150 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); | ||
53151 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
53152 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); | ||
53153 | find mustInstanceOfFunctionalData_class(problem,interpretation,container); | ||
53154 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
53155 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); | ||
53156 | find mustExist(problem, interpretation, container); | ||
53157 | neg find mustExist(problem, interpretation, newObject); | ||
53158 | } | ||
53159 | pattern createObject_FAMTerminator_class( | ||
53160 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53161 | typeInterpretation:PartialComplexTypeInterpretation) | ||
53162 | { | ||
53163 | find interpretation(problem,interpretation); | ||
53164 | neg find hasElementInContainment(problem,interpretation); | ||
53165 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53166 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
53167 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
53168 | find mayExist(problem, interpretation, newObject); | ||
53169 | neg find mustExist(problem, interpretation, newObject); | ||
53170 | } | ||
53171 | |||
53172 | ////////// | ||
53173 | // 4.2 Type refinement | ||
53174 | ////////// | ||
53175 | pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53176 | find interpretation(problem,interpretation); | ||
53177 | PartialInterpretation.newElements(interpretation,element); | ||
53178 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53179 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53180 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53181 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53182 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53183 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53184 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53185 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53186 | } | ||
53187 | pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53188 | find interpretation(problem,interpretation); | ||
53189 | PartialInterpretation.newElements(interpretation,element); | ||
53190 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53191 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53192 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53193 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53194 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53195 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53196 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53197 | } | ||
53198 | pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53199 | find interpretation(problem,interpretation); | ||
53200 | PartialInterpretation.newElements(interpretation,element); | ||
53201 | find mayInstanceOfInformationLink_class(problem,interpretation,element); | ||
53202 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53203 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53204 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53205 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53206 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53207 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53208 | } | ||
53209 | pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53210 | find interpretation(problem,interpretation); | ||
53211 | PartialInterpretation.newElements(interpretation,element); | ||
53212 | find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
53213 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53214 | neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
53215 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53216 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53217 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53218 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53219 | } | ||
53220 | pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53221 | find interpretation(problem,interpretation); | ||
53222 | PartialInterpretation.newElements(interpretation,element); | ||
53223 | find mayInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53224 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53225 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53226 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53227 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53228 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53229 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53230 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53231 | } | ||
53232 | pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53233 | find interpretation(problem,interpretation); | ||
53234 | PartialInterpretation.newElements(interpretation,element); | ||
53235 | find mayInstanceOfFunction_class(problem,interpretation,element); | ||
53236 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53237 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53238 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53239 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
53240 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53241 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53242 | } | ||
53243 | pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
53244 | find interpretation(problem,interpretation); | ||
53245 | PartialInterpretation.newElements(interpretation,element); | ||
53246 | find mayInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53247 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53248 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53249 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53250 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53251 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53252 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53253 | } | ||
53254 | |||
53255 | ////////// | ||
53256 | // 4.3 Relation refinement | ||
53257 | ////////// | ||
53258 | pattern refineRelation_model_reference_FunctionalElement( | ||
53259 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53260 | relationIterpretation:PartialRelationInterpretation, | ||
53261 | from: DefinedElement, to: DefinedElement) | ||
53262 | { | ||
53263 | find interpretation(problem,interpretation); | ||
53264 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53265 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
53266 | find mustExist(problem, interpretation, from); | ||
53267 | find mustExist(problem, interpretation, to); | ||
53268 | find mustInstanceOfFunctionalElement_class(problem,interpretation,from); | ||
53269 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to); | ||
53270 | find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
53271 | neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
53272 | } | ||
53273 | pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink( | ||
53274 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53275 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
53276 | from: DefinedElement, to: DefinedElement) | ||
53277 | { | ||
53278 | find interpretation(problem,interpretation); | ||
53279 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53280 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
53281 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
53282 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink"); | ||
53283 | find mustExist(problem, interpretation, from); | ||
53284 | find mustExist(problem, interpretation, to); | ||
53285 | find mustInstanceOfFunctionalInput_class(problem,interpretation,from); | ||
53286 | find mustInstanceOfInformationLink_class(problem,interpretation,to); | ||
53287 | find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
53288 | neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
53289 | } | ||
53290 | pattern refineRelation_type_attribute_Function( | ||
53291 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53292 | relationIterpretation:PartialRelationInterpretation, | ||
53293 | from: DefinedElement, to: DefinedElement) | ||
53294 | { | ||
53295 | find interpretation(problem,interpretation); | ||
53296 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53297 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
53298 | find mustExist(problem, interpretation, from); | ||
53299 | find mustExist(problem, interpretation, to); | ||
53300 | find mustInstanceOfFunction_class(problem,interpretation,from); | ||
53301 | find mustInstanceOfFunctionType_enum(problem,interpretation,to); | ||
53302 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
53303 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
53304 | } | ||
53305 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
53306 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
53307 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
53308 | |||
53309 | ////////// | ||
53310 | // 0. Util | ||
53311 | ////////// | ||
53312 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53313 | PartialInterpretation.problem(interpretation,problem); | ||
53314 | } | ||
53315 | |||
53316 | ///////////////////////// | ||
53317 | // 0.1 Existence | ||
53318 | ///////////////////////// | ||
53319 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53320 | find interpretation(problem,interpretation); | ||
53321 | LogicProblem.elements(problem,element); | ||
53322 | } or { | ||
53323 | find interpretation(problem,interpretation); | ||
53324 | PartialInterpretation.newElements(interpretation,element); | ||
53325 | } | ||
53326 | |||
53327 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53328 | find mustExist(problem,interpretation,element); | ||
53329 | } or { | ||
53330 | find interpretation(problem,interpretation); | ||
53331 | neg find elementCloseWorld(element); | ||
53332 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53333 | } | ||
53334 | |||
53335 | private pattern elementCloseWorld(element:DefinedElement) { | ||
53336 | PartialInterpretation.openWorldElements(i,element); | ||
53337 | PartialInterpretation.maxNewElements(i,0); | ||
53338 | } or { | ||
53339 | Scope.targetTypeInterpretation(scope,interpretation); | ||
53340 | PartialTypeInterpratation.elements(interpretation,element); | ||
53341 | Scope.maxNewElements(scope,0); | ||
53342 | } | ||
53343 | |||
53344 | //////////////////////// | ||
53345 | // 0.2 Equivalence | ||
53346 | //////////////////////// | ||
53347 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
53348 | find mayExist(problem,interpretation,a); | ||
53349 | find mayExist(problem,interpretation,b); | ||
53350 | a == b; | ||
53351 | } | ||
53352 | |||
53353 | //////////////////////// | ||
53354 | // 0.3 Required Patterns by TypeIndexer | ||
53355 | //////////////////////// | ||
53356 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
53357 | find interpretation(problem,interpretation); | ||
53358 | LogicProblem.types(problem,type); | ||
53359 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
53360 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53361 | } | ||
53362 | |||
53363 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
53364 | find interpretation(problem,interpretation); | ||
53365 | LogicProblem.types(problem,type); | ||
53366 | TypeDefinition.elements(type,element); | ||
53367 | } or { | ||
53368 | find interpretation(problem,interpretation); | ||
53369 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
53370 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
53371 | } | ||
53372 | |||
53373 | private pattern isPrimitive(element: PrimitiveElement) { | ||
53374 | PrimitiveElement(element); | ||
53375 | } | ||
53376 | |||
53377 | ////////// | ||
53378 | // 1. Problem-Specific Base Indexers | ||
53379 | ////////// | ||
53380 | // 1.1 Type Indexers | ||
53381 | ////////// | ||
53382 | // 1.1.1 primitive Type Indexers | ||
53383 | ////////// | ||
53384 | |||
53385 | ////////// | ||
53386 | // 1.1.2 domain-specific Type Indexers | ||
53387 | ////////// | ||
53388 | /** | ||
53389 | * An element must be an instance of type "FunctionalElement class". | ||
53390 | */ | ||
53391 | private pattern mustInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53392 | Type.name(type,"FunctionalElement class"); | ||
53393 | find directInstanceOf(problem,interpretation,element,type); | ||
53394 | } | ||
53395 | private pattern scopeDisallowsNewFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53396 | find interpretation(problem,interpretation); | ||
53397 | PartialInterpretation.scopes(interpretation,scope); | ||
53398 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53399 | Scope.maxNewElements(scope,0); | ||
53400 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53401 | Type.name(type,"FunctionalElement class"); | ||
53402 | } | ||
53403 | |||
53404 | /** | ||
53405 | * An element may be an instance of type "FunctionalElement class". | ||
53406 | */ | ||
53407 | private pattern mayInstanceOfFunctionalElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53408 | { | ||
53409 | find interpretation(problem,interpretation); | ||
53410 | PartialInterpretation.newElements(interpretation,element); | ||
53411 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
53412 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53413 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53414 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53415 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53416 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53417 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
53418 | neg find isPrimitive(element); | ||
53419 | } or { | ||
53420 | find interpretation(problem,interpretation); | ||
53421 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53422 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
53423 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53424 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53425 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53426 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53427 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53428 | neg find scopeDisallowsNewFunctionalElement_class(problem, interpretation); | ||
53429 | neg find isPrimitive(element); | ||
53430 | } or | ||
53431 | { find mustInstanceOfFunctionalElement_class(problem,interpretation,element); } | ||
53432 | /** | ||
53433 | * An element must be an instance of type "FunctionalArchitectureModel class". | ||
53434 | */ | ||
53435 | private pattern mustInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53436 | Type.name(type,"FunctionalArchitectureModel class"); | ||
53437 | find directInstanceOf(problem,interpretation,element,type); | ||
53438 | } | ||
53439 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53440 | find interpretation(problem,interpretation); | ||
53441 | PartialInterpretation.scopes(interpretation,scope); | ||
53442 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53443 | Scope.maxNewElements(scope,0); | ||
53444 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53445 | Type.name(type,"FunctionalArchitectureModel class"); | ||
53446 | } | ||
53447 | |||
53448 | /** | ||
53449 | * An element may be an instance of type "FunctionalArchitectureModel class". | ||
53450 | */ | ||
53451 | private pattern mayInstanceOfFunctionalArchitectureModel_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53452 | { | ||
53453 | find interpretation(problem,interpretation); | ||
53454 | PartialInterpretation.newElements(interpretation,element); | ||
53455 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53456 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53457 | neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
53458 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53459 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53460 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53461 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
53462 | neg find isPrimitive(element); | ||
53463 | } or { | ||
53464 | find interpretation(problem,interpretation); | ||
53465 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53466 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53467 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53468 | neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
53469 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53470 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53471 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53472 | neg find scopeDisallowsNewFunctionalArchitectureModel_class(problem, interpretation); | ||
53473 | neg find isPrimitive(element); | ||
53474 | } or | ||
53475 | { find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); } | ||
53476 | /** | ||
53477 | * An element must be an instance of type "Function class". | ||
53478 | */ | ||
53479 | private pattern mustInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53480 | Type.name(type,"Function class"); | ||
53481 | find directInstanceOf(problem,interpretation,element,type); | ||
53482 | } | ||
53483 | private pattern scopeDisallowsNewFunction_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53484 | find interpretation(problem,interpretation); | ||
53485 | PartialInterpretation.scopes(interpretation,scope); | ||
53486 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53487 | Scope.maxNewElements(scope,0); | ||
53488 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53489 | Type.name(type,"Function class"); | ||
53490 | } | ||
53491 | |||
53492 | /** | ||
53493 | * An element may be an instance of type "Function class". | ||
53494 | */ | ||
53495 | private pattern mayInstanceOfFunction_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53496 | { | ||
53497 | find interpretation(problem,interpretation); | ||
53498 | PartialInterpretation.newElements(interpretation,element); | ||
53499 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53500 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53501 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53502 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53503 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53504 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
53505 | neg find isPrimitive(element); | ||
53506 | } or { | ||
53507 | find interpretation(problem,interpretation); | ||
53508 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53509 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53510 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53511 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53512 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53513 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53514 | neg find scopeDisallowsNewFunction_class(problem, interpretation); | ||
53515 | neg find isPrimitive(element); | ||
53516 | } or | ||
53517 | { find mustInstanceOfFunction_class(problem,interpretation,element); } | ||
53518 | /** | ||
53519 | * An element must be an instance of type "FAMTerminator class". | ||
53520 | */ | ||
53521 | private pattern mustInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53522 | Type.name(type,"FAMTerminator class"); | ||
53523 | find directInstanceOf(problem,interpretation,element,type); | ||
53524 | } | ||
53525 | private pattern scopeDisallowsNewFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53526 | find interpretation(problem,interpretation); | ||
53527 | PartialInterpretation.scopes(interpretation,scope); | ||
53528 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53529 | Scope.maxNewElements(scope,0); | ||
53530 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53531 | Type.name(type,"FAMTerminator class"); | ||
53532 | } | ||
53533 | |||
53534 | /** | ||
53535 | * An element may be an instance of type "FAMTerminator class". | ||
53536 | */ | ||
53537 | private pattern mayInstanceOfFAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53538 | { | ||
53539 | find interpretation(problem,interpretation); | ||
53540 | PartialInterpretation.newElements(interpretation,element); | ||
53541 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53542 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53543 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53544 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53545 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53546 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
53547 | neg find isPrimitive(element); | ||
53548 | } or { | ||
53549 | find interpretation(problem,interpretation); | ||
53550 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53551 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53552 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53553 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53554 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53555 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53556 | neg find scopeDisallowsNewFAMTerminator_class(problem, interpretation); | ||
53557 | neg find isPrimitive(element); | ||
53558 | } or | ||
53559 | { find mustInstanceOfFAMTerminator_class(problem,interpretation,element); } | ||
53560 | /** | ||
53561 | * An element must be an instance of type "InformationLink class". | ||
53562 | */ | ||
53563 | private pattern mustInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53564 | Type.name(type,"InformationLink class"); | ||
53565 | find directInstanceOf(problem,interpretation,element,type); | ||
53566 | } | ||
53567 | private pattern scopeDisallowsNewInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53568 | find interpretation(problem,interpretation); | ||
53569 | PartialInterpretation.scopes(interpretation,scope); | ||
53570 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53571 | Scope.maxNewElements(scope,0); | ||
53572 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53573 | Type.name(type,"InformationLink class"); | ||
53574 | } | ||
53575 | |||
53576 | /** | ||
53577 | * An element may be an instance of type "InformationLink class". | ||
53578 | */ | ||
53579 | private pattern mayInstanceOfInformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53580 | { | ||
53581 | find interpretation(problem,interpretation); | ||
53582 | PartialInterpretation.newElements(interpretation,element); | ||
53583 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53584 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53585 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53586 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53587 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53588 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
53589 | neg find isPrimitive(element); | ||
53590 | } or { | ||
53591 | find interpretation(problem,interpretation); | ||
53592 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53593 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53594 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53595 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53596 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53597 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53598 | neg find scopeDisallowsNewInformationLink_class(problem, interpretation); | ||
53599 | neg find isPrimitive(element); | ||
53600 | } or | ||
53601 | { find mustInstanceOfInformationLink_class(problem,interpretation,element); } | ||
53602 | /** | ||
53603 | * An element must be an instance of type "FunctionalInterface class". | ||
53604 | */ | ||
53605 | private pattern mustInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53606 | Type.name(type,"FunctionalInterface class"); | ||
53607 | find directInstanceOf(problem,interpretation,element,type); | ||
53608 | } | ||
53609 | private pattern scopeDisallowsNewFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53610 | find interpretation(problem,interpretation); | ||
53611 | PartialInterpretation.scopes(interpretation,scope); | ||
53612 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53613 | Scope.maxNewElements(scope,0); | ||
53614 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53615 | Type.name(type,"FunctionalInterface class"); | ||
53616 | } | ||
53617 | |||
53618 | /** | ||
53619 | * An element may be an instance of type "FunctionalInterface class". | ||
53620 | */ | ||
53621 | private pattern mayInstanceOfFunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53622 | { | ||
53623 | find interpretation(problem,interpretation); | ||
53624 | PartialInterpretation.newElements(interpretation,element); | ||
53625 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53626 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53627 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53628 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53629 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53630 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
53631 | neg find isPrimitive(element); | ||
53632 | } or { | ||
53633 | find interpretation(problem,interpretation); | ||
53634 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53635 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53636 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53637 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53638 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53639 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53640 | neg find scopeDisallowsNewFunctionalInterface_class(problem, interpretation); | ||
53641 | neg find isPrimitive(element); | ||
53642 | } or | ||
53643 | { find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); } | ||
53644 | /** | ||
53645 | * An element must be an instance of type "FunctionalInput class". | ||
53646 | */ | ||
53647 | private pattern mustInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53648 | Type.name(type,"FunctionalInput class"); | ||
53649 | find directInstanceOf(problem,interpretation,element,type); | ||
53650 | } | ||
53651 | private pattern scopeDisallowsNewFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53652 | find interpretation(problem,interpretation); | ||
53653 | PartialInterpretation.scopes(interpretation,scope); | ||
53654 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53655 | Scope.maxNewElements(scope,0); | ||
53656 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53657 | Type.name(type,"FunctionalInput class"); | ||
53658 | } | ||
53659 | |||
53660 | /** | ||
53661 | * An element may be an instance of type "FunctionalInput class". | ||
53662 | */ | ||
53663 | private pattern mayInstanceOfFunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53664 | { | ||
53665 | find interpretation(problem,interpretation); | ||
53666 | PartialInterpretation.newElements(interpretation,element); | ||
53667 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53668 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53669 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53670 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53671 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53672 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53673 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
53674 | neg find isPrimitive(element); | ||
53675 | } or { | ||
53676 | find interpretation(problem,interpretation); | ||
53677 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53678 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53679 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53680 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53681 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53682 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53683 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53684 | neg find scopeDisallowsNewFunctionalInput_class(problem, interpretation); | ||
53685 | neg find isPrimitive(element); | ||
53686 | } or | ||
53687 | { find mustInstanceOfFunctionalInput_class(problem,interpretation,element); } | ||
53688 | /** | ||
53689 | * An element must be an instance of type "FunctionalOutput class". | ||
53690 | */ | ||
53691 | private pattern mustInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53692 | Type.name(type,"FunctionalOutput class"); | ||
53693 | find directInstanceOf(problem,interpretation,element,type); | ||
53694 | } | ||
53695 | private pattern scopeDisallowsNewFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53696 | find interpretation(problem,interpretation); | ||
53697 | PartialInterpretation.scopes(interpretation,scope); | ||
53698 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53699 | Scope.maxNewElements(scope,0); | ||
53700 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53701 | Type.name(type,"FunctionalOutput class"); | ||
53702 | } | ||
53703 | |||
53704 | /** | ||
53705 | * An element may be an instance of type "FunctionalOutput class". | ||
53706 | */ | ||
53707 | private pattern mayInstanceOfFunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53708 | { | ||
53709 | find interpretation(problem,interpretation); | ||
53710 | PartialInterpretation.newElements(interpretation,element); | ||
53711 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53712 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53713 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53714 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53715 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53716 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53717 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
53718 | neg find isPrimitive(element); | ||
53719 | } or { | ||
53720 | find interpretation(problem,interpretation); | ||
53721 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53722 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53723 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53724 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53725 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53726 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53727 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53728 | neg find scopeDisallowsNewFunctionalOutput_class(problem, interpretation); | ||
53729 | neg find isPrimitive(element); | ||
53730 | } or | ||
53731 | { find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); } | ||
53732 | /** | ||
53733 | * An element must be an instance of type "FunctionalData class". | ||
53734 | */ | ||
53735 | private pattern mustInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53736 | Type.name(type,"FunctionalData class"); | ||
53737 | find directInstanceOf(problem,interpretation,element,type); | ||
53738 | } | ||
53739 | private pattern scopeDisallowsNewFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53740 | find interpretation(problem,interpretation); | ||
53741 | PartialInterpretation.scopes(interpretation,scope); | ||
53742 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53743 | Scope.maxNewElements(scope,0); | ||
53744 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53745 | Type.name(type,"FunctionalData class"); | ||
53746 | } | ||
53747 | |||
53748 | /** | ||
53749 | * An element may be an instance of type "FunctionalData class". | ||
53750 | */ | ||
53751 | private pattern mayInstanceOfFunctionalData_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53752 | { | ||
53753 | find interpretation(problem,interpretation); | ||
53754 | PartialInterpretation.newElements(interpretation,element); | ||
53755 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53756 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53757 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53758 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53759 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53760 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53761 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53762 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
53763 | neg find isPrimitive(element); | ||
53764 | } or { | ||
53765 | find interpretation(problem,interpretation); | ||
53766 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53767 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53768 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53769 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53770 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53771 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
53772 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
53773 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
53774 | neg find scopeDisallowsNewFunctionalData_class(problem, interpretation); | ||
53775 | neg find isPrimitive(element); | ||
53776 | } or | ||
53777 | { find mustInstanceOfFunctionalData_class(problem,interpretation,element); } | ||
53778 | /** | ||
53779 | * An element must be an instance of type "FunctionType enum". | ||
53780 | */ | ||
53781 | private pattern mustInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53782 | Type.name(type,"FunctionType enum"); | ||
53783 | find directInstanceOf(problem,interpretation,element,type); | ||
53784 | } | ||
53785 | private pattern scopeDisallowsNewFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53786 | find interpretation(problem,interpretation); | ||
53787 | PartialInterpretation.scopes(interpretation,scope); | ||
53788 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53789 | Scope.maxNewElements(scope,0); | ||
53790 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53791 | Type.name(type,"FunctionType enum"); | ||
53792 | } | ||
53793 | |||
53794 | /** | ||
53795 | * An element may be an instance of type "FunctionType enum". | ||
53796 | */ | ||
53797 | private pattern mayInstanceOfFunctionType_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53798 | { find mustInstanceOfFunctionType_enum(problem,interpretation,element); } | ||
53799 | /** | ||
53800 | * An element must be an instance of type "FunctionalArchitectureModel class DefinedPart". | ||
53801 | */ | ||
53802 | private pattern mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53803 | Type.name(type,"FunctionalArchitectureModel class DefinedPart"); | ||
53804 | find directInstanceOf(problem,interpretation,element,type); | ||
53805 | } | ||
53806 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53807 | find interpretation(problem,interpretation); | ||
53808 | PartialInterpretation.scopes(interpretation,scope); | ||
53809 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53810 | Scope.maxNewElements(scope,0); | ||
53811 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53812 | Type.name(type,"FunctionalArchitectureModel class DefinedPart"); | ||
53813 | } | ||
53814 | |||
53815 | /** | ||
53816 | * An element may be an instance of type "FunctionalArchitectureModel class DefinedPart". | ||
53817 | */ | ||
53818 | private pattern mayInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53819 | { find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,element); } | ||
53820 | /** | ||
53821 | * An element must be an instance of type "FunctionalArchitectureModel class UndefinedPart". | ||
53822 | */ | ||
53823 | private pattern mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
53824 | Type.name(type,"FunctionalArchitectureModel class UndefinedPart"); | ||
53825 | find directInstanceOf(problem,interpretation,element,type); | ||
53826 | } | ||
53827 | private pattern scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
53828 | find interpretation(problem,interpretation); | ||
53829 | PartialInterpretation.scopes(interpretation,scope); | ||
53830 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
53831 | Scope.maxNewElements(scope,0); | ||
53832 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
53833 | Type.name(type,"FunctionalArchitectureModel class UndefinedPart"); | ||
53834 | } | ||
53835 | |||
53836 | /** | ||
53837 | * An element may be an instance of type "FunctionalArchitectureModel class UndefinedPart". | ||
53838 | */ | ||
53839 | private pattern mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
53840 | { | ||
53841 | find interpretation(problem,interpretation); | ||
53842 | PartialInterpretation.newElements(interpretation,element); | ||
53843 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53844 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53845 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53846 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53847 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53848 | neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); | ||
53849 | neg find isPrimitive(element); | ||
53850 | } or { | ||
53851 | find interpretation(problem,interpretation); | ||
53852 | PartialInterpretation.openWorldElements(interpretation,element); | ||
53853 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
53854 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
53855 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
53856 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
53857 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
53858 | neg find scopeDisallowsNewFunctionalArchitectureModel_class_UndefinedPart(problem, interpretation); | ||
53859 | neg find isPrimitive(element); | ||
53860 | } or | ||
53861 | { find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); } | ||
53862 | |||
53863 | ////////// | ||
53864 | // 1.2 Relation Declaration Indexers | ||
53865 | ////////// | ||
53866 | /** | ||
53867 | * Matcher for detecting tuples t where []interface reference FunctionalElement(source,target) | ||
53868 | */ | ||
53869 | private pattern mustInRelationinterface_reference_FunctionalElement( | ||
53870 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53871 | source: DefinedElement, target:DefinedElement) | ||
53872 | { | ||
53873 | find interpretation(problem,interpretation); | ||
53874 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53875 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalElement"); | ||
53876 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
53877 | BinaryElementRelationLink.param1(link,source); | ||
53878 | BinaryElementRelationLink.param2(link,target); | ||
53879 | } | ||
53880 | /** | ||
53881 | * Matcher for detecting tuples t where <>interface reference FunctionalElement(source,target) | ||
53882 | */ | ||
53883 | private pattern mayInRelationinterface_reference_FunctionalElement( | ||
53884 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53885 | source: DefinedElement, target:DefinedElement) | ||
53886 | { | ||
53887 | find interpretation(problem,interpretation); | ||
53888 | // The two endpoint of the link have to exist | ||
53889 | find mayExist(problem, interpretation, source); | ||
53890 | find mayExist(problem, interpretation, target); | ||
53891 | // Type consistency | ||
53892 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
53893 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
53894 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
53895 | // the upper bound of the multiplicity should be considered. | ||
53896 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,_); | ||
53897 | check(numberOfExistingReferences < 1); | ||
53898 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
53899 | // the upper bound of the opposite reference multiplicity should be considered. | ||
53900 | numberOfExistingOppositeReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,target,_); | ||
53901 | check(numberOfExistingOppositeReferences < 1); | ||
53902 | // The reference is containment, then a new reference cannot be create if: | ||
53903 | // 1. Multiple parents | ||
53904 | neg find mustContains4(problem,interpretation,_,target); | ||
53905 | // 2. Circle in the containment hierarchy | ||
53906 | neg find mustTransitiveContains(source,target); | ||
53907 | } or { | ||
53908 | find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); | ||
53909 | } | ||
53910 | /** | ||
53911 | * Matcher for detecting tuples t where []model reference FunctionalElement(source,target) | ||
53912 | */ | ||
53913 | private pattern mustInRelationmodel_reference_FunctionalElement( | ||
53914 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53915 | source: DefinedElement, target:DefinedElement) | ||
53916 | { | ||
53917 | find interpretation(problem,interpretation); | ||
53918 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53919 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
53920 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
53921 | BinaryElementRelationLink.param1(link,source); | ||
53922 | BinaryElementRelationLink.param2(link,target); | ||
53923 | } | ||
53924 | /** | ||
53925 | * Matcher for detecting tuples t where <>model reference FunctionalElement(source,target) | ||
53926 | */ | ||
53927 | private pattern mayInRelationmodel_reference_FunctionalElement( | ||
53928 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53929 | source: DefinedElement, target:DefinedElement) | ||
53930 | { | ||
53931 | find interpretation(problem,interpretation); | ||
53932 | // The two endpoint of the link have to exist | ||
53933 | find mayExist(problem, interpretation, source); | ||
53934 | find mayExist(problem, interpretation, target); | ||
53935 | // Type consistency | ||
53936 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
53937 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,target); | ||
53938 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
53939 | // the upper bound of the multiplicity should be considered. | ||
53940 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,_); | ||
53941 | check(numberOfExistingReferences < 1); | ||
53942 | } or { | ||
53943 | find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,source,target); | ||
53944 | } | ||
53945 | /** | ||
53946 | * Matcher for detecting tuples t where []parent reference FunctionalElement(source,target) | ||
53947 | */ | ||
53948 | private pattern mustInRelationparent_reference_FunctionalElement( | ||
53949 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53950 | source: DefinedElement, target:DefinedElement) | ||
53951 | { | ||
53952 | find interpretation(problem,interpretation); | ||
53953 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53954 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parent reference FunctionalElement"); | ||
53955 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
53956 | BinaryElementRelationLink.param1(link,source); | ||
53957 | BinaryElementRelationLink.param2(link,target); | ||
53958 | } | ||
53959 | /** | ||
53960 | * Matcher for detecting tuples t where <>parent reference FunctionalElement(source,target) | ||
53961 | */ | ||
53962 | private pattern mayInRelationparent_reference_FunctionalElement( | ||
53963 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53964 | source: DefinedElement, target:DefinedElement) | ||
53965 | { | ||
53966 | find interpretation(problem,interpretation); | ||
53967 | // The two endpoint of the link have to exist | ||
53968 | find mayExist(problem, interpretation, source); | ||
53969 | find mayExist(problem, interpretation, target); | ||
53970 | // Type consistency | ||
53971 | find mayInstanceOfFunctionalElement_class(problem,interpretation,source); | ||
53972 | find mayInstanceOfFunction_class(problem,interpretation,target); | ||
53973 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
53974 | // the upper bound of the multiplicity should be considered. | ||
53975 | numberOfExistingReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,_); | ||
53976 | check(numberOfExistingReferences < 1); | ||
53977 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
53978 | // 1. Multiple parents | ||
53979 | neg find mustContains4(problem,interpretation,source,_); | ||
53980 | // 2. Circle in the containment hierarchy | ||
53981 | neg find mustTransitiveContains(source,target); | ||
53982 | } or { | ||
53983 | find mustInRelationparent_reference_FunctionalElement(problem,interpretation,source,target); | ||
53984 | } | ||
53985 | /** | ||
53986 | * Matcher for detecting tuples t where []rootElements reference FunctionalArchitectureModel(source,target) | ||
53987 | */ | ||
53988 | private pattern mustInRelationrootElements_reference_FunctionalArchitectureModel( | ||
53989 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
53990 | source: DefinedElement, target:DefinedElement) | ||
53991 | { | ||
53992 | find interpretation(problem,interpretation); | ||
53993 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
53994 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
53995 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
53996 | BinaryElementRelationLink.param1(link,source); | ||
53997 | BinaryElementRelationLink.param2(link,target); | ||
53998 | } | ||
53999 | /** | ||
54000 | * Matcher for detecting tuples t where <>rootElements reference FunctionalArchitectureModel(source,target) | ||
54001 | */ | ||
54002 | private pattern mayInRelationrootElements_reference_FunctionalArchitectureModel( | ||
54003 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54004 | source: DefinedElement, target:DefinedElement) | ||
54005 | { | ||
54006 | find interpretation(problem,interpretation); | ||
54007 | // The two endpoint of the link have to exist | ||
54008 | find mayExist(problem, interpretation, source); | ||
54009 | find mayExist(problem, interpretation, target); | ||
54010 | // Type consistency | ||
54011 | find mayInstanceOfFunctionalArchitectureModel_class(problem,interpretation,source); | ||
54012 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
54013 | // The reference is containment, then a new reference cannot be create if: | ||
54014 | // 1. Multiple parents | ||
54015 | neg find mustContains4(problem,interpretation,_,target); | ||
54016 | // 2. Circle in the containment hierarchy | ||
54017 | neg find mustTransitiveContains(source,target); | ||
54018 | } or { | ||
54019 | find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); | ||
54020 | } | ||
54021 | /** | ||
54022 | * Matcher for detecting tuples t where []subElements reference Function(source,target) | ||
54023 | */ | ||
54024 | private pattern mustInRelationsubElements_reference_Function( | ||
54025 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54026 | source: DefinedElement, target:DefinedElement) | ||
54027 | { | ||
54028 | find interpretation(problem,interpretation); | ||
54029 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54030 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"subElements reference Function"); | ||
54031 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54032 | BinaryElementRelationLink.param1(link,source); | ||
54033 | BinaryElementRelationLink.param2(link,target); | ||
54034 | } | ||
54035 | /** | ||
54036 | * Matcher for detecting tuples t where <>subElements reference Function(source,target) | ||
54037 | */ | ||
54038 | private pattern mayInRelationsubElements_reference_Function( | ||
54039 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54040 | source: DefinedElement, target:DefinedElement) | ||
54041 | { | ||
54042 | find interpretation(problem,interpretation); | ||
54043 | // The two endpoint of the link have to exist | ||
54044 | find mayExist(problem, interpretation, source); | ||
54045 | find mayExist(problem, interpretation, target); | ||
54046 | // Type consistency | ||
54047 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
54048 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
54049 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54050 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54051 | numberOfExistingOppositeReferences == count find mustInRelationparent_reference_FunctionalElement(problem,interpretation,target,_); | ||
54052 | check(numberOfExistingOppositeReferences < 1); | ||
54053 | // The reference is containment, then a new reference cannot be create if: | ||
54054 | // 1. Multiple parents | ||
54055 | neg find mustContains4(problem,interpretation,_,target); | ||
54056 | // 2. Circle in the containment hierarchy | ||
54057 | neg find mustTransitiveContains(source,target); | ||
54058 | } or { | ||
54059 | find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); | ||
54060 | } | ||
54061 | /** | ||
54062 | * Matcher for detecting tuples t where []data reference FAMTerminator(source,target) | ||
54063 | */ | ||
54064 | private pattern mustInRelationdata_reference_FAMTerminator( | ||
54065 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54066 | source: DefinedElement, target:DefinedElement) | ||
54067 | { | ||
54068 | find interpretation(problem,interpretation); | ||
54069 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54070 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FAMTerminator"); | ||
54071 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54072 | BinaryElementRelationLink.param1(link,source); | ||
54073 | BinaryElementRelationLink.param2(link,target); | ||
54074 | } | ||
54075 | /** | ||
54076 | * Matcher for detecting tuples t where <>data reference FAMTerminator(source,target) | ||
54077 | */ | ||
54078 | private pattern mayInRelationdata_reference_FAMTerminator( | ||
54079 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54080 | source: DefinedElement, target:DefinedElement) | ||
54081 | { | ||
54082 | find interpretation(problem,interpretation); | ||
54083 | // The two endpoint of the link have to exist | ||
54084 | find mayExist(problem, interpretation, source); | ||
54085 | find mayExist(problem, interpretation, target); | ||
54086 | // Type consistency | ||
54087 | find mayInstanceOfFAMTerminator_class(problem,interpretation,source); | ||
54088 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
54089 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54090 | // the upper bound of the multiplicity should be considered. | ||
54091 | numberOfExistingReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,_); | ||
54092 | check(numberOfExistingReferences < 1); | ||
54093 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54094 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54095 | numberOfExistingOppositeReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,target,_); | ||
54096 | check(numberOfExistingOppositeReferences < 1); | ||
54097 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
54098 | // 1. Multiple parents | ||
54099 | neg find mustContains4(problem,interpretation,source,_); | ||
54100 | // 2. Circle in the containment hierarchy | ||
54101 | neg find mustTransitiveContains(source,target); | ||
54102 | } or { | ||
54103 | find mustInRelationdata_reference_FAMTerminator(problem,interpretation,source,target); | ||
54104 | } | ||
54105 | /** | ||
54106 | * Matcher for detecting tuples t where []from reference InformationLink(source,target) | ||
54107 | */ | ||
54108 | private pattern mustInRelationfrom_reference_InformationLink( | ||
54109 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54110 | source: DefinedElement, target:DefinedElement) | ||
54111 | { | ||
54112 | find interpretation(problem,interpretation); | ||
54113 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54114 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"from reference InformationLink"); | ||
54115 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54116 | BinaryElementRelationLink.param1(link,source); | ||
54117 | BinaryElementRelationLink.param2(link,target); | ||
54118 | } | ||
54119 | /** | ||
54120 | * Matcher for detecting tuples t where <>from reference InformationLink(source,target) | ||
54121 | */ | ||
54122 | private pattern mayInRelationfrom_reference_InformationLink( | ||
54123 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54124 | source: DefinedElement, target:DefinedElement) | ||
54125 | { | ||
54126 | find interpretation(problem,interpretation); | ||
54127 | // The two endpoint of the link have to exist | ||
54128 | find mayExist(problem, interpretation, source); | ||
54129 | find mayExist(problem, interpretation, target); | ||
54130 | // Type consistency | ||
54131 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
54132 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,target); | ||
54133 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54134 | // the upper bound of the multiplicity should be considered. | ||
54135 | numberOfExistingReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,_); | ||
54136 | check(numberOfExistingReferences < 1); | ||
54137 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
54138 | // 1. Multiple parents | ||
54139 | neg find mustContains4(problem,interpretation,source,_); | ||
54140 | // 2. Circle in the containment hierarchy | ||
54141 | neg find mustTransitiveContains(source,target); | ||
54142 | } or { | ||
54143 | find mustInRelationfrom_reference_InformationLink(problem,interpretation,source,target); | ||
54144 | } | ||
54145 | /** | ||
54146 | * Matcher for detecting tuples t where []to reference InformationLink(source,target) | ||
54147 | */ | ||
54148 | private pattern mustInRelationto_reference_InformationLink( | ||
54149 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54150 | source: DefinedElement, target:DefinedElement) | ||
54151 | { | ||
54152 | find interpretation(problem,interpretation); | ||
54153 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54154 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
54155 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54156 | BinaryElementRelationLink.param1(link,source); | ||
54157 | BinaryElementRelationLink.param2(link,target); | ||
54158 | } | ||
54159 | /** | ||
54160 | * Matcher for detecting tuples t where <>to reference InformationLink(source,target) | ||
54161 | */ | ||
54162 | private pattern mayInRelationto_reference_InformationLink( | ||
54163 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54164 | source: DefinedElement, target:DefinedElement) | ||
54165 | { | ||
54166 | find interpretation(problem,interpretation); | ||
54167 | // The two endpoint of the link have to exist | ||
54168 | find mayExist(problem, interpretation, source); | ||
54169 | find mayExist(problem, interpretation, target); | ||
54170 | // Type consistency | ||
54171 | find mayInstanceOfInformationLink_class(problem,interpretation,source); | ||
54172 | find mayInstanceOfFunctionalInput_class(problem,interpretation,target); | ||
54173 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54174 | // the upper bound of the multiplicity should be considered. | ||
54175 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,source,_); | ||
54176 | check(numberOfExistingReferences < 1); | ||
54177 | } or { | ||
54178 | find mustInRelationto_reference_InformationLink(problem,interpretation,source,target); | ||
54179 | } | ||
54180 | /** | ||
54181 | * Matcher for detecting tuples t where []data reference FunctionalInterface(source,target) | ||
54182 | */ | ||
54183 | private pattern mustInRelationdata_reference_FunctionalInterface( | ||
54184 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54185 | source: DefinedElement, target:DefinedElement) | ||
54186 | { | ||
54187 | find interpretation(problem,interpretation); | ||
54188 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54189 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"data reference FunctionalInterface"); | ||
54190 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54191 | BinaryElementRelationLink.param1(link,source); | ||
54192 | BinaryElementRelationLink.param2(link,target); | ||
54193 | } | ||
54194 | /** | ||
54195 | * Matcher for detecting tuples t where <>data reference FunctionalInterface(source,target) | ||
54196 | */ | ||
54197 | private pattern mayInRelationdata_reference_FunctionalInterface( | ||
54198 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54199 | source: DefinedElement, target:DefinedElement) | ||
54200 | { | ||
54201 | find interpretation(problem,interpretation); | ||
54202 | // The two endpoint of the link have to exist | ||
54203 | find mayExist(problem, interpretation, source); | ||
54204 | find mayExist(problem, interpretation, target); | ||
54205 | // Type consistency | ||
54206 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
54207 | find mayInstanceOfFunctionalData_class(problem,interpretation,target); | ||
54208 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54209 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54210 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,target,_); | ||
54211 | check(numberOfExistingOppositeReferences < 1); | ||
54212 | // The reference is containment, then a new reference cannot be create if: | ||
54213 | // 1. Multiple parents | ||
54214 | neg find mustContains4(problem,interpretation,_,target); | ||
54215 | // 2. Circle in the containment hierarchy | ||
54216 | neg find mustTransitiveContains(source,target); | ||
54217 | } or { | ||
54218 | find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); | ||
54219 | } | ||
54220 | /** | ||
54221 | * Matcher for detecting tuples t where []element reference FunctionalInterface(source,target) | ||
54222 | */ | ||
54223 | private pattern mustInRelationelement_reference_FunctionalInterface( | ||
54224 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54225 | source: DefinedElement, target:DefinedElement) | ||
54226 | { | ||
54227 | find interpretation(problem,interpretation); | ||
54228 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54229 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"element reference FunctionalInterface"); | ||
54230 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54231 | BinaryElementRelationLink.param1(link,source); | ||
54232 | BinaryElementRelationLink.param2(link,target); | ||
54233 | } | ||
54234 | /** | ||
54235 | * Matcher for detecting tuples t where <>element reference FunctionalInterface(source,target) | ||
54236 | */ | ||
54237 | private pattern mayInRelationelement_reference_FunctionalInterface( | ||
54238 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54239 | source: DefinedElement, target:DefinedElement) | ||
54240 | { | ||
54241 | find interpretation(problem,interpretation); | ||
54242 | // The two endpoint of the link have to exist | ||
54243 | find mayExist(problem, interpretation, source); | ||
54244 | find mayExist(problem, interpretation, target); | ||
54245 | // Type consistency | ||
54246 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,source); | ||
54247 | find mayInstanceOfFunctionalElement_class(problem,interpretation,target); | ||
54248 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54249 | // the upper bound of the multiplicity should be considered. | ||
54250 | numberOfExistingReferences == count find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,_); | ||
54251 | check(numberOfExistingReferences < 1); | ||
54252 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54253 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54254 | numberOfExistingOppositeReferences == count find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,target,_); | ||
54255 | check(numberOfExistingOppositeReferences < 1); | ||
54256 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
54257 | // 1. Multiple parents | ||
54258 | neg find mustContains4(problem,interpretation,source,_); | ||
54259 | // 2. Circle in the containment hierarchy | ||
54260 | neg find mustTransitiveContains(source,target); | ||
54261 | } or { | ||
54262 | find mustInRelationelement_reference_FunctionalInterface(problem,interpretation,source,target); | ||
54263 | } | ||
54264 | /** | ||
54265 | * Matcher for detecting tuples t where []IncomingLinks reference FunctionalInput(source,target) | ||
54266 | */ | ||
54267 | private pattern mustInRelationIncomingLinks_reference_FunctionalInput( | ||
54268 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54269 | source: DefinedElement, target:DefinedElement) | ||
54270 | { | ||
54271 | find interpretation(problem,interpretation); | ||
54272 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54273 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
54274 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54275 | BinaryElementRelationLink.param1(link,source); | ||
54276 | BinaryElementRelationLink.param2(link,target); | ||
54277 | } | ||
54278 | /** | ||
54279 | * Matcher for detecting tuples t where <>IncomingLinks reference FunctionalInput(source,target) | ||
54280 | */ | ||
54281 | private pattern mayInRelationIncomingLinks_reference_FunctionalInput( | ||
54282 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54283 | source: DefinedElement, target:DefinedElement) | ||
54284 | { | ||
54285 | find interpretation(problem,interpretation); | ||
54286 | // The two endpoint of the link have to exist | ||
54287 | find mayExist(problem, interpretation, source); | ||
54288 | find mayExist(problem, interpretation, target); | ||
54289 | // Type consistency | ||
54290 | find mayInstanceOfFunctionalInput_class(problem,interpretation,source); | ||
54291 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
54292 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54293 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54294 | numberOfExistingOppositeReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,target,_); | ||
54295 | check(numberOfExistingOppositeReferences < 1); | ||
54296 | } or { | ||
54297 | find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,source,target); | ||
54298 | } | ||
54299 | /** | ||
54300 | * Matcher for detecting tuples t where []outgoingLinks reference FunctionalOutput(source,target) | ||
54301 | */ | ||
54302 | private pattern mustInRelationoutgoingLinks_reference_FunctionalOutput( | ||
54303 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54304 | source: DefinedElement, target:DefinedElement) | ||
54305 | { | ||
54306 | find interpretation(problem,interpretation); | ||
54307 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54308 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingLinks reference FunctionalOutput"); | ||
54309 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54310 | BinaryElementRelationLink.param1(link,source); | ||
54311 | BinaryElementRelationLink.param2(link,target); | ||
54312 | } | ||
54313 | /** | ||
54314 | * Matcher for detecting tuples t where <>outgoingLinks reference FunctionalOutput(source,target) | ||
54315 | */ | ||
54316 | private pattern mayInRelationoutgoingLinks_reference_FunctionalOutput( | ||
54317 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54318 | source: DefinedElement, target:DefinedElement) | ||
54319 | { | ||
54320 | find interpretation(problem,interpretation); | ||
54321 | // The two endpoint of the link have to exist | ||
54322 | find mayExist(problem, interpretation, source); | ||
54323 | find mayExist(problem, interpretation, target); | ||
54324 | // Type consistency | ||
54325 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,source); | ||
54326 | find mayInstanceOfInformationLink_class(problem,interpretation,target); | ||
54327 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54328 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54329 | numberOfExistingOppositeReferences == count find mustInRelationfrom_reference_InformationLink(problem,interpretation,target,_); | ||
54330 | check(numberOfExistingOppositeReferences < 1); | ||
54331 | // The reference is containment, then a new reference cannot be create if: | ||
54332 | // 1. Multiple parents | ||
54333 | neg find mustContains4(problem,interpretation,_,target); | ||
54334 | // 2. Circle in the containment hierarchy | ||
54335 | neg find mustTransitiveContains(source,target); | ||
54336 | } or { | ||
54337 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); | ||
54338 | } | ||
54339 | /** | ||
54340 | * Matcher for detecting tuples t where []terminator reference FunctionalData(source,target) | ||
54341 | */ | ||
54342 | private pattern mustInRelationterminator_reference_FunctionalData( | ||
54343 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54344 | source: DefinedElement, target:DefinedElement) | ||
54345 | { | ||
54346 | find interpretation(problem,interpretation); | ||
54347 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54348 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"terminator reference FunctionalData"); | ||
54349 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54350 | BinaryElementRelationLink.param1(link,source); | ||
54351 | BinaryElementRelationLink.param2(link,target); | ||
54352 | } | ||
54353 | /** | ||
54354 | * Matcher for detecting tuples t where <>terminator reference FunctionalData(source,target) | ||
54355 | */ | ||
54356 | private pattern mayInRelationterminator_reference_FunctionalData( | ||
54357 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54358 | source: DefinedElement, target:DefinedElement) | ||
54359 | { | ||
54360 | find interpretation(problem,interpretation); | ||
54361 | // The two endpoint of the link have to exist | ||
54362 | find mayExist(problem, interpretation, source); | ||
54363 | find mayExist(problem, interpretation, target); | ||
54364 | // Type consistency | ||
54365 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
54366 | find mayInstanceOfFAMTerminator_class(problem,interpretation,target); | ||
54367 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54368 | // the upper bound of the multiplicity should be considered. | ||
54369 | numberOfExistingReferences == count find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,_); | ||
54370 | check(numberOfExistingReferences < 1); | ||
54371 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
54372 | // the upper bound of the opposite reference multiplicity should be considered. | ||
54373 | numberOfExistingOppositeReferences == count find mustInRelationdata_reference_FAMTerminator(problem,interpretation,target,_); | ||
54374 | check(numberOfExistingOppositeReferences < 1); | ||
54375 | // The reference is containment, then a new reference cannot be create if: | ||
54376 | // 1. Multiple parents | ||
54377 | neg find mustContains4(problem,interpretation,_,target); | ||
54378 | // 2. Circle in the containment hierarchy | ||
54379 | neg find mustTransitiveContains(source,target); | ||
54380 | } or { | ||
54381 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); | ||
54382 | } | ||
54383 | /** | ||
54384 | * Matcher for detecting tuples t where []interface reference FunctionalData(source,target) | ||
54385 | */ | ||
54386 | private pattern mustInRelationinterface_reference_FunctionalData( | ||
54387 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54388 | source: DefinedElement, target:DefinedElement) | ||
54389 | { | ||
54390 | find interpretation(problem,interpretation); | ||
54391 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54392 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"interface reference FunctionalData"); | ||
54393 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54394 | BinaryElementRelationLink.param1(link,source); | ||
54395 | BinaryElementRelationLink.param2(link,target); | ||
54396 | } | ||
54397 | /** | ||
54398 | * Matcher for detecting tuples t where <>interface reference FunctionalData(source,target) | ||
54399 | */ | ||
54400 | private pattern mayInRelationinterface_reference_FunctionalData( | ||
54401 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54402 | source: DefinedElement, target:DefinedElement) | ||
54403 | { | ||
54404 | find interpretation(problem,interpretation); | ||
54405 | // The two endpoint of the link have to exist | ||
54406 | find mayExist(problem, interpretation, source); | ||
54407 | find mayExist(problem, interpretation, target); | ||
54408 | // Type consistency | ||
54409 | find mayInstanceOfFunctionalData_class(problem,interpretation,source); | ||
54410 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,target); | ||
54411 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54412 | // the upper bound of the multiplicity should be considered. | ||
54413 | numberOfExistingReferences == count find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,_); | ||
54414 | check(numberOfExistingReferences < 1); | ||
54415 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
54416 | // 1. Multiple parents | ||
54417 | neg find mustContains4(problem,interpretation,source,_); | ||
54418 | // 2. Circle in the containment hierarchy | ||
54419 | neg find mustTransitiveContains(source,target); | ||
54420 | } or { | ||
54421 | find mustInRelationinterface_reference_FunctionalData(problem,interpretation,source,target); | ||
54422 | } | ||
54423 | /** | ||
54424 | * Matcher for detecting tuples t where []type attribute Function(source,target) | ||
54425 | */ | ||
54426 | private pattern mustInRelationtype_attribute_Function( | ||
54427 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54428 | source: DefinedElement, target:DefinedElement) | ||
54429 | { | ||
54430 | find interpretation(problem,interpretation); | ||
54431 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54432 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
54433 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
54434 | BinaryElementRelationLink.param1(link,source); | ||
54435 | BinaryElementRelationLink.param2(link,target); | ||
54436 | } | ||
54437 | /** | ||
54438 | * Matcher for detecting tuples t where <>type attribute Function(source,target) | ||
54439 | */ | ||
54440 | private pattern mayInRelationtype_attribute_Function( | ||
54441 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54442 | source: DefinedElement, target:DefinedElement) | ||
54443 | { | ||
54444 | find interpretation(problem,interpretation); | ||
54445 | // The two endpoint of the link have to exist | ||
54446 | find mayExist(problem, interpretation, source); | ||
54447 | find mayExist(problem, interpretation, target); | ||
54448 | // Type consistency | ||
54449 | find mayInstanceOfFunction_class(problem,interpretation,source); | ||
54450 | find mayInstanceOfFunctionType_enum(problem,interpretation,target); | ||
54451 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
54452 | // the upper bound of the multiplicity should be considered. | ||
54453 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,source,_); | ||
54454 | check(numberOfExistingReferences < 1); | ||
54455 | } or { | ||
54456 | find mustInRelationtype_attribute_Function(problem,interpretation,source,target); | ||
54457 | } | ||
54458 | |||
54459 | ////////// | ||
54460 | // 1.3 Relation Definition Indexers | ||
54461 | ////////// | ||
54462 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation | ||
54463 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation( | ||
54464 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54465 | var_T, var_I) | ||
54466 | { | ||
54467 | find interpretation(problem,interpretation); | ||
54468 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T); | ||
54469 | find mustInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54470 | // T is exported | ||
54471 | // I is exported | ||
54472 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out); | ||
54473 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0); | ||
54474 | find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0); | ||
54475 | var_virtual0 == var_I; | ||
54476 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out); | ||
54477 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1); | ||
54478 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); | ||
54479 | var_virtual1 == var_T; | ||
54480 | }or{ | ||
54481 | find interpretation(problem,interpretation); | ||
54482 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T); | ||
54483 | find mustInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54484 | // T is exported | ||
54485 | // I is exported | ||
54486 | find mustInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54487 | find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0); | ||
54488 | find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0); | ||
54489 | var_virtual0 == var_In; | ||
54490 | find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In); | ||
54491 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1); | ||
54492 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); | ||
54493 | var_virtual1 == var_T; | ||
54494 | } | ||
54495 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation( | ||
54496 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54497 | var_T, var_I) | ||
54498 | { | ||
54499 | find interpretation(problem,interpretation); | ||
54500 | find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T); | ||
54501 | find mayInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54502 | // T is exported | ||
54503 | // I is exported | ||
54504 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out); | ||
54505 | find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0); | ||
54506 | find mayInstanceOfInformationLink_class(problem,interpretation,var_virtual0); | ||
54507 | find mayEquivalent(problem, interpretation, var_virtual0, var_I); | ||
54508 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,var_Out); | ||
54509 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1); | ||
54510 | find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); | ||
54511 | find mayEquivalent(problem, interpretation, var_virtual1, var_T); | ||
54512 | }or{ | ||
54513 | find interpretation(problem,interpretation); | ||
54514 | find mayInstanceOfFAMTerminator_class(problem,interpretation,var_T); | ||
54515 | find mayInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54516 | // T is exported | ||
54517 | // I is exported | ||
54518 | find mayInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54519 | find mayInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0); | ||
54520 | find mayInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0); | ||
54521 | find mayEquivalent(problem, interpretation, var_virtual0, var_In); | ||
54522 | find mayInstanceOfFunctionalInput_class(problem,interpretation,var_In); | ||
54523 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1); | ||
54524 | find mayInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); | ||
54525 | find mayEquivalent(problem, interpretation, var_virtual1, var_T); | ||
54526 | } | ||
54527 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation( | ||
54528 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54529 | var_T, var_I) | ||
54530 | { | ||
54531 | find interpretation(problem,interpretation); | ||
54532 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T); | ||
54533 | find mustInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54534 | // T is exported | ||
54535 | // I is exported | ||
54536 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out); | ||
54537 | find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,var_Out,var_virtual0); | ||
54538 | find mustInstanceOfInformationLink_class(problem,interpretation,var_virtual0); | ||
54539 | var_virtual0 == var_I; | ||
54540 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,var_Out); | ||
54541 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_Out,var_virtual1); | ||
54542 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); | ||
54543 | var_virtual1 == var_T; | ||
54544 | }or{ | ||
54545 | find interpretation(problem,interpretation); | ||
54546 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_T); | ||
54547 | find mustInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54548 | // T is exported | ||
54549 | // I is exported | ||
54550 | find mustInstanceOfInformationLink_class(problem,interpretation,var_I); | ||
54551 | find mustInRelationto_reference_InformationLink(problem,interpretation,var_I,var_virtual0); | ||
54552 | find mustInstanceOfFunctionalInput_class(problem,interpretation,var_virtual0); | ||
54553 | var_virtual0 == var_In; | ||
54554 | find mustInstanceOfFunctionalInput_class(problem,interpretation,var_In); | ||
54555 | find mustInRelationterminator_reference_FunctionalData(problem,interpretation,var_In,var_virtual1); | ||
54556 | find mustInstanceOfFAMTerminator_class(problem,interpretation,var_virtual1); | ||
54557 | var_virtual1 == var_T; | ||
54558 | } | ||
54559 | |||
54560 | ////////// | ||
54561 | // 1.4 Containment Indexer | ||
54562 | ////////// | ||
54563 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
54564 | find mustContains4(_,_,source,target); | ||
54565 | } | ||
54566 | |||
54567 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
54568 | source: DefinedElement, target: DefinedElement) | ||
54569 | { find mustInRelationinterface_reference_FunctionalElement(problem,interpretation,source,target); }or | ||
54570 | |||
54571 | { find mustInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,source,target); }or | ||
54572 | |||
54573 | { find mustInRelationsubElements_reference_Function(problem,interpretation,source,target); }or | ||
54574 | |||
54575 | { find mustInRelationdata_reference_FunctionalInterface(problem,interpretation,source,target); }or | ||
54576 | |||
54577 | { find mustInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,source,target); }or | ||
54578 | |||
54579 | { find mustInRelationterminator_reference_FunctionalData(problem,interpretation,source,target); } | ||
54580 | |||
54581 | private pattern mustTransitiveContains(source,target) { | ||
54582 | find mustContains2+(source,target); | ||
54583 | } | ||
54584 | |||
54585 | ////////// | ||
54586 | // 2. Invalidation Indexers | ||
54587 | ////////// | ||
54588 | // 2.1 Invalidated by WF Queries | ||
54589 | ////////// | ||
54590 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation, | ||
54591 | var_T, var_I) | ||
54592 | { | ||
54593 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I); | ||
54594 | } | ||
54595 | |||
54596 | ////////// | ||
54597 | // 3. Unfinishedness Indexers | ||
54598 | ////////// | ||
54599 | // 3.1 Unfinishedness Measured by Multiplicity | ||
54600 | ////////// | ||
54601 | pattern unfinishedLowerMultiplicity_model_reference_FunctionalElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
54602 | find interpretation(problem,interpretation); | ||
54603 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54604 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
54605 | find mustInstanceOfFunctionalElement_class(problem,interpretation,object); | ||
54606 | numberOfExistingReferences == count find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,object,_); | ||
54607 | check(numberOfExistingReferences < 1); | ||
54608 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
54609 | } | ||
54610 | pattern unfinishedLowerMultiplicity_to_reference_InformationLink(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
54611 | find interpretation(problem,interpretation); | ||
54612 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54613 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"to reference InformationLink"); | ||
54614 | find mustInstanceOfInformationLink_class(problem,interpretation,object); | ||
54615 | numberOfExistingReferences == count find mustInRelationto_reference_InformationLink(problem,interpretation,object,_); | ||
54616 | check(numberOfExistingReferences < 1); | ||
54617 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
54618 | } | ||
54619 | pattern unfinishedLowerMultiplicity_type_attribute_Function(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
54620 | find interpretation(problem,interpretation); | ||
54621 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54622 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
54623 | find mustInstanceOfFunction_class(problem,interpretation,object); | ||
54624 | numberOfExistingReferences == count find mustInRelationtype_attribute_Function(problem,interpretation,object,_); | ||
54625 | check(numberOfExistingReferences < 1); | ||
54626 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
54627 | } | ||
54628 | |||
54629 | ////////// | ||
54630 | // 3.2 Unfinishedness Measured by WF Queries | ||
54631 | ////////// | ||
54632 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem:LogicProblem, interpretation:PartialInterpretation, | ||
54633 | var_T, var_I) | ||
54634 | { | ||
54635 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_fam_queries_terminatorAndInformation(problem,interpretation,var_T,var_I); | ||
54636 | } | ||
54637 | |||
54638 | ////////// | ||
54639 | // 4. Refinement Indexers | ||
54640 | ////////// | ||
54641 | // 4.1 Object constructors | ||
54642 | ////////// | ||
54643 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
54644 | { | ||
54645 | find interpretation(problem,interpretation); | ||
54646 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,root); | ||
54647 | find mustExist(problem, interpretation, root); | ||
54648 | }or{ | ||
54649 | find interpretation(problem,interpretation); | ||
54650 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,root); | ||
54651 | find mustExist(problem, interpretation, root); | ||
54652 | }or{ | ||
54653 | find interpretation(problem,interpretation); | ||
54654 | find mustInstanceOfInformationLink_class(problem,interpretation,root); | ||
54655 | find mustExist(problem, interpretation, root); | ||
54656 | }or{ | ||
54657 | find interpretation(problem,interpretation); | ||
54658 | find mustInstanceOfFAMTerminator_class(problem,interpretation,root); | ||
54659 | find mustExist(problem, interpretation, root); | ||
54660 | }or{ | ||
54661 | find interpretation(problem,interpretation); | ||
54662 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,root); | ||
54663 | find mustExist(problem, interpretation, root); | ||
54664 | }or{ | ||
54665 | find interpretation(problem,interpretation); | ||
54666 | find mustInstanceOfFunctionalElement_class(problem,interpretation,root); | ||
54667 | find mustExist(problem, interpretation, root); | ||
54668 | }or{ | ||
54669 | find interpretation(problem,interpretation); | ||
54670 | find mustInstanceOfFunctionalData_class(problem,interpretation,root); | ||
54671 | find mustExist(problem, interpretation, root); | ||
54672 | }or{ | ||
54673 | find interpretation(problem,interpretation); | ||
54674 | find mustInstanceOfFunctionalInput_class(problem,interpretation,root); | ||
54675 | find mustExist(problem, interpretation, root); | ||
54676 | }or{ | ||
54677 | find interpretation(problem,interpretation); | ||
54678 | find mustInstanceOfFunction_class(problem,interpretation,root); | ||
54679 | find mustExist(problem, interpretation, root); | ||
54680 | }or{ | ||
54681 | find interpretation(problem,interpretation); | ||
54682 | find mustInstanceOfFunctionalArchitectureModel_class_DefinedPart(problem,interpretation,root); | ||
54683 | find mustExist(problem, interpretation, root); | ||
54684 | }or{ | ||
54685 | find interpretation(problem,interpretation); | ||
54686 | find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,root); | ||
54687 | find mustExist(problem, interpretation, root); | ||
54688 | } | ||
54689 | pattern createObject_Function_class_by_rootElements_reference_FunctionalArchitectureModel( | ||
54690 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54691 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54692 | container:DefinedElement) | ||
54693 | { | ||
54694 | find interpretation(problem,interpretation); | ||
54695 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54696 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
54697 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54698 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"rootElements reference FunctionalArchitectureModel"); | ||
54699 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,container); | ||
54700 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
54701 | find mayInRelationrootElements_reference_FunctionalArchitectureModel(problem,interpretation,container,newObject); | ||
54702 | find mustExist(problem, interpretation, container); | ||
54703 | neg find mustExist(problem, interpretation, newObject); | ||
54704 | } | ||
54705 | pattern createObject_Function_class_by_subElements_reference_Function_with_parent_reference_FunctionalElement( | ||
54706 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54707 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54708 | container:DefinedElement) | ||
54709 | { | ||
54710 | find interpretation(problem,interpretation); | ||
54711 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54712 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
54713 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54714 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"subElements reference Function"); | ||
54715 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
54716 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"parent reference FunctionalElement"); | ||
54717 | find mustInstanceOfFunction_class(problem,interpretation,container); | ||
54718 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
54719 | find mayInRelationsubElements_reference_Function(problem,interpretation,container,newObject); | ||
54720 | find mustExist(problem, interpretation, container); | ||
54721 | neg find mustExist(problem, interpretation, newObject); | ||
54722 | } | ||
54723 | pattern createObject_Function_class( | ||
54724 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54725 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54726 | { | ||
54727 | find interpretation(problem,interpretation); | ||
54728 | neg find hasElementInContainment(problem,interpretation); | ||
54729 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54730 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Function class"); | ||
54731 | find mayInstanceOfFunction_class(problem,interpretation,newObject); | ||
54732 | find mayExist(problem, interpretation, newObject); | ||
54733 | neg find mustExist(problem, interpretation, newObject); | ||
54734 | } | ||
54735 | pattern createObject_FAMTerminator_class_by_terminator_reference_FunctionalData_with_data_reference_FAMTerminator( | ||
54736 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54737 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54738 | container:DefinedElement) | ||
54739 | { | ||
54740 | find interpretation(problem,interpretation); | ||
54741 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54742 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
54743 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54744 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"terminator reference FunctionalData"); | ||
54745 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
54746 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"data reference FAMTerminator"); | ||
54747 | find mustInstanceOfFunctionalData_class(problem,interpretation,container); | ||
54748 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
54749 | find mayInRelationterminator_reference_FunctionalData(problem,interpretation,container,newObject); | ||
54750 | find mustExist(problem, interpretation, container); | ||
54751 | neg find mustExist(problem, interpretation, newObject); | ||
54752 | } | ||
54753 | pattern createObject_FAMTerminator_class( | ||
54754 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54755 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54756 | { | ||
54757 | find interpretation(problem,interpretation); | ||
54758 | neg find hasElementInContainment(problem,interpretation); | ||
54759 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54760 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FAMTerminator class"); | ||
54761 | find mayInstanceOfFAMTerminator_class(problem,interpretation,newObject); | ||
54762 | find mayExist(problem, interpretation, newObject); | ||
54763 | neg find mustExist(problem, interpretation, newObject); | ||
54764 | } | ||
54765 | pattern createObject_InformationLink_class_by_outgoingLinks_reference_FunctionalOutput_with_from_reference_InformationLink( | ||
54766 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54767 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54768 | container:DefinedElement) | ||
54769 | { | ||
54770 | find interpretation(problem,interpretation); | ||
54771 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54772 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
54773 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54774 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingLinks reference FunctionalOutput"); | ||
54775 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
54776 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"from reference InformationLink"); | ||
54777 | find mustInstanceOfFunctionalOutput_class(problem,interpretation,container); | ||
54778 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
54779 | find mayInRelationoutgoingLinks_reference_FunctionalOutput(problem,interpretation,container,newObject); | ||
54780 | find mustExist(problem, interpretation, container); | ||
54781 | neg find mustExist(problem, interpretation, newObject); | ||
54782 | } | ||
54783 | pattern createObject_InformationLink_class( | ||
54784 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54785 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54786 | { | ||
54787 | find interpretation(problem,interpretation); | ||
54788 | neg find hasElementInContainment(problem,interpretation); | ||
54789 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54790 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InformationLink class"); | ||
54791 | find mayInstanceOfInformationLink_class(problem,interpretation,newObject); | ||
54792 | find mayExist(problem, interpretation, newObject); | ||
54793 | neg find mustExist(problem, interpretation, newObject); | ||
54794 | } | ||
54795 | pattern createObject_FunctionalArchitectureModel_class_UndefinedPart( | ||
54796 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54797 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54798 | { | ||
54799 | find interpretation(problem,interpretation); | ||
54800 | neg find hasElementInContainment(problem,interpretation); | ||
54801 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54802 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalArchitectureModel class UndefinedPart"); | ||
54803 | find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,newObject); | ||
54804 | find mayExist(problem, interpretation, newObject); | ||
54805 | neg find mustExist(problem, interpretation, newObject); | ||
54806 | } | ||
54807 | pattern createObject_FunctionalInterface_class_by_interface_reference_FunctionalElement_with_element_reference_FunctionalInterface( | ||
54808 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54809 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54810 | container:DefinedElement) | ||
54811 | { | ||
54812 | find interpretation(problem,interpretation); | ||
54813 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54814 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
54815 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54816 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"interface reference FunctionalElement"); | ||
54817 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
54818 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"element reference FunctionalInterface"); | ||
54819 | find mustInstanceOfFunctionalElement_class(problem,interpretation,container); | ||
54820 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
54821 | find mayInRelationinterface_reference_FunctionalElement(problem,interpretation,container,newObject); | ||
54822 | find mustExist(problem, interpretation, container); | ||
54823 | neg find mustExist(problem, interpretation, newObject); | ||
54824 | } | ||
54825 | pattern createObject_FunctionalInterface_class( | ||
54826 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54827 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54828 | { | ||
54829 | find interpretation(problem,interpretation); | ||
54830 | neg find hasElementInContainment(problem,interpretation); | ||
54831 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54832 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInterface class"); | ||
54833 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,newObject); | ||
54834 | find mayExist(problem, interpretation, newObject); | ||
54835 | neg find mustExist(problem, interpretation, newObject); | ||
54836 | } | ||
54837 | pattern createObject_FunctionalOutput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
54838 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54839 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54840 | container:DefinedElement) | ||
54841 | { | ||
54842 | find interpretation(problem,interpretation); | ||
54843 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54844 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
54845 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54846 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
54847 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
54848 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
54849 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
54850 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
54851 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
54852 | find mustExist(problem, interpretation, container); | ||
54853 | neg find mustExist(problem, interpretation, newObject); | ||
54854 | } | ||
54855 | pattern createObject_FunctionalOutput_class( | ||
54856 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54857 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54858 | { | ||
54859 | find interpretation(problem,interpretation); | ||
54860 | neg find hasElementInContainment(problem,interpretation); | ||
54861 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54862 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalOutput class"); | ||
54863 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,newObject); | ||
54864 | find mayExist(problem, interpretation, newObject); | ||
54865 | neg find mustExist(problem, interpretation, newObject); | ||
54866 | } | ||
54867 | pattern createObject_FunctionalInput_class_by_data_reference_FunctionalInterface_with_interface_reference_FunctionalData( | ||
54868 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54869 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
54870 | container:DefinedElement) | ||
54871 | { | ||
54872 | find interpretation(problem,interpretation); | ||
54873 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54874 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
54875 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
54876 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"data reference FunctionalInterface"); | ||
54877 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
54878 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"interface reference FunctionalData"); | ||
54879 | find mustInstanceOfFunctionalInterface_class(problem,interpretation,container); | ||
54880 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
54881 | find mayInRelationdata_reference_FunctionalInterface(problem,interpretation,container,newObject); | ||
54882 | find mustExist(problem, interpretation, container); | ||
54883 | neg find mustExist(problem, interpretation, newObject); | ||
54884 | } | ||
54885 | pattern createObject_FunctionalInput_class( | ||
54886 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54887 | typeInterpretation:PartialComplexTypeInterpretation) | ||
54888 | { | ||
54889 | find interpretation(problem,interpretation); | ||
54890 | neg find hasElementInContainment(problem,interpretation); | ||
54891 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
54892 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FunctionalInput class"); | ||
54893 | find mayInstanceOfFunctionalInput_class(problem,interpretation,newObject); | ||
54894 | find mayExist(problem, interpretation, newObject); | ||
54895 | neg find mustExist(problem, interpretation, newObject); | ||
54896 | } | ||
54897 | |||
54898 | ////////// | ||
54899 | // 4.2 Type refinement | ||
54900 | ////////// | ||
54901 | pattern refineTypeTo_Function_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54902 | find interpretation(problem,interpretation); | ||
54903 | PartialInterpretation.newElements(interpretation,element); | ||
54904 | find mayInstanceOfFunction_class(problem,interpretation,element); | ||
54905 | neg find mustInstanceOfFunction_class(problem,interpretation,element); | ||
54906 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54907 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54908 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54909 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
54910 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
54911 | } | ||
54912 | pattern refineTypeTo_FAMTerminator_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54913 | find interpretation(problem,interpretation); | ||
54914 | PartialInterpretation.newElements(interpretation,element); | ||
54915 | find mayInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54916 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
54917 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54918 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54919 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54920 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
54921 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
54922 | } | ||
54923 | pattern refineTypeTo_InformationLink_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54924 | find interpretation(problem,interpretation); | ||
54925 | PartialInterpretation.newElements(interpretation,element); | ||
54926 | find mayInstanceOfInformationLink_class(problem,interpretation,element); | ||
54927 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
54928 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54929 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54930 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54931 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
54932 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
54933 | } | ||
54934 | pattern refineTypeTo_FunctionalArchitectureModel_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54935 | find interpretation(problem,interpretation); | ||
54936 | PartialInterpretation.newElements(interpretation,element); | ||
54937 | find mayInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
54938 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
54939 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54940 | neg find mustInstanceOfFunctionalArchitectureModel_class_UndefinedPart(problem,interpretation,element); | ||
54941 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54942 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54943 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
54944 | } | ||
54945 | pattern refineTypeTo_FunctionalInterface_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54946 | find interpretation(problem,interpretation); | ||
54947 | PartialInterpretation.newElements(interpretation,element); | ||
54948 | find mayInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54949 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
54950 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54951 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54952 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54953 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
54954 | neg find mustInstanceOfFunctionalData_class(problem,interpretation,element); | ||
54955 | } | ||
54956 | pattern refineTypeTo_FunctionalOutput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54957 | find interpretation(problem,interpretation); | ||
54958 | PartialInterpretation.newElements(interpretation,element); | ||
54959 | find mayInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
54960 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
54961 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54962 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54963 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54964 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
54965 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
54966 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
54967 | } | ||
54968 | pattern refineTypeTo_FunctionalInput_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
54969 | find interpretation(problem,interpretation); | ||
54970 | PartialInterpretation.newElements(interpretation,element); | ||
54971 | find mayInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
54972 | neg find mustInstanceOfFunctionalElement_class(problem,interpretation,element); | ||
54973 | neg find mustInstanceOfFAMTerminator_class(problem,interpretation,element); | ||
54974 | neg find mustInstanceOfInformationLink_class(problem,interpretation,element); | ||
54975 | neg find mustInstanceOfFunctionalInterface_class(problem,interpretation,element); | ||
54976 | neg find mustInstanceOfFunctionalOutput_class(problem,interpretation,element); | ||
54977 | neg find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,element); | ||
54978 | neg find mustInstanceOfFunctionalInput_class(problem,interpretation,element); | ||
54979 | } | ||
54980 | |||
54981 | ////////// | ||
54982 | // 4.3 Relation refinement | ||
54983 | ////////// | ||
54984 | pattern refineRelation_model_reference_FunctionalElement( | ||
54985 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
54986 | relationIterpretation:PartialRelationInterpretation, | ||
54987 | from: DefinedElement, to: DefinedElement) | ||
54988 | { | ||
54989 | find interpretation(problem,interpretation); | ||
54990 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
54991 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"model reference FunctionalElement"); | ||
54992 | find mustExist(problem, interpretation, from); | ||
54993 | find mustExist(problem, interpretation, to); | ||
54994 | find mustInstanceOfFunctionalElement_class(problem,interpretation,from); | ||
54995 | find mustInstanceOfFunctionalArchitectureModel_class(problem,interpretation,to); | ||
54996 | find mayInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
54997 | neg find mustInRelationmodel_reference_FunctionalElement(problem,interpretation,from,to); | ||
54998 | } | ||
54999 | pattern refineRelation_IncomingLinks_reference_FunctionalInput_and_to_reference_InformationLink( | ||
55000 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
55001 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
55002 | from: DefinedElement, to: DefinedElement) | ||
55003 | { | ||
55004 | find interpretation(problem,interpretation); | ||
55005 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
55006 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"IncomingLinks reference FunctionalInput"); | ||
55007 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
55008 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"to reference InformationLink"); | ||
55009 | find mustExist(problem, interpretation, from); | ||
55010 | find mustExist(problem, interpretation, to); | ||
55011 | find mustInstanceOfFunctionalInput_class(problem,interpretation,from); | ||
55012 | find mustInstanceOfInformationLink_class(problem,interpretation,to); | ||
55013 | find mayInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
55014 | neg find mustInRelationIncomingLinks_reference_FunctionalInput(problem,interpretation,from,to); | ||
55015 | } | ||
55016 | pattern refineRelation_type_attribute_Function( | ||
55017 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
55018 | relationIterpretation:PartialRelationInterpretation, | ||
55019 | from: DefinedElement, to: DefinedElement) | ||
55020 | { | ||
55021 | find interpretation(problem,interpretation); | ||
55022 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
55023 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"type attribute Function"); | ||
55024 | find mustExist(problem, interpretation, from); | ||
55025 | find mustExist(problem, interpretation, to); | ||
55026 | find mustInstanceOfFunction_class(problem,interpretation,from); | ||
55027 | find mustInstanceOfFunctionType_enum(problem,interpretation,to); | ||
55028 | find mayInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
55029 | neg find mustInRelationtype_attribute_Function(problem,interpretation,from,to); | ||
55030 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem index f221cce7..061a233a 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/generation.logicproblem | |||
@@ -1,7 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> | 2 | <language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation"> |
3 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/> | 3 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/> |
4 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class"/> | 4 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class" subtypes="//@types.10 //@types.11" isAbstract="true"/> |
5 | <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> | 5 | <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> |
6 | <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/> | 6 | <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/> |
7 | <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/> | 7 | <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/> |
@@ -10,6 +10,8 @@ | |||
10 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/> | 10 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/> |
11 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/> | 11 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/> |
12 | <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/> | 12 | <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/> |
13 | <types xsi:type="language_1:TypeDefinition" name="FunctionalArchitectureModel class DefinedPart" supertypes="//@types.1" elements="//@elements.3"/> | ||
14 | <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class UndefinedPart" supertypes="//@types.1"/> | ||
13 | <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0"> | 15 | <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0"> |
14 | <value xsi:type="language_1:Forall"> | 16 | <value xsi:type="language_1:Forall"> |
15 | <quantifiedVariables name="src"> | 17 | <quantifiedVariables name="src"> |
@@ -494,6 +496,22 @@ | |||
494 | </expression> | 496 | </expression> |
495 | </value> | 497 | </value> |
496 | </assertions> | 498 | </assertions> |
499 | <assertions name="errorpattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation" annotations="//@annotations.20"> | ||
500 | <value xsi:type="language_1:Forall"> | ||
501 | <quantifiedVariables name="p0"> | ||
502 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
503 | </quantifiedVariables> | ||
504 | <quantifiedVariables name="p1"> | ||
505 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
506 | </quantifiedVariables> | ||
507 | <expression xsi:type="language_1:Not"> | ||
508 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15"> | ||
509 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/> | ||
510 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/> | ||
511 | </operand> | ||
512 | </expression> | ||
513 | </value> | ||
514 | </assertions> | ||
497 | <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement"> | 515 | <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement"> |
498 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | 516 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> |
499 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> | 517 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> |
@@ -554,10 +572,53 @@ | |||
554 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> | 572 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> |
555 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> | 573 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> |
556 | </relations> | 574 | </relations> |
575 | <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill ecse dslreasoner standalone test fam queries terminatorAndInformation" annotations="//@annotations.19"> | ||
576 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
577 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
578 | <variables name="parameter T"> | ||
579 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/> | ||
580 | </variables> | ||
581 | <variables name="parameter I"> | ||
582 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/> | ||
583 | </variables> | ||
584 | <value xsi:type="language_1:Or"> | ||
585 | <operands xsi:type="language_1:Exists"> | ||
586 | <quantifiedVariables name="variable Out"> | ||
587 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/> | ||
588 | </quantifiedVariables> | ||
589 | <expression xsi:type="language_1:And"> | ||
590 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11"> | ||
591 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/> | ||
592 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/> | ||
593 | </operands> | ||
594 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
595 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/> | ||
596 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/> | ||
597 | </operands> | ||
598 | </expression> | ||
599 | </operands> | ||
600 | <operands xsi:type="language_1:Exists"> | ||
601 | <quantifiedVariables name="variable In"> | ||
602 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/> | ||
603 | </quantifiedVariables> | ||
604 | <expression xsi:type="language_1:And"> | ||
605 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
606 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/> | ||
607 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/> | ||
608 | </operands> | ||
609 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12"> | ||
610 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/> | ||
611 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/> | ||
612 | </operands> | ||
613 | </expression> | ||
614 | </operands> | ||
615 | </value> | ||
616 | </relations> | ||
557 | <elements name="Root literal FunctionType" definedInType="//@types.9"/> | 617 | <elements name="Root literal FunctionType" definedInType="//@types.9"/> |
558 | <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> | 618 | <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> |
559 | <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> | 619 | <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> |
560 | <containmentHierarchies typesOrderedInHierarchy="//@types.5 //@types.4 //@types.0 //@types.3 //@types.1 //@types.6 //@types.2 //@types.7 //@types.8" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/> | 620 | <elements name="o 1" definedInType="//@types.10"/> |
621 | <containmentHierarchies typesOrderedInHierarchy="//@types.7 //@types.1 //@types.4 //@types.3 //@types.5 //@types.0 //@types.8 //@types.6 //@types.2 //@types.10 //@types.11" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/> | ||
561 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/> | 622 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/> |
562 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/> | 623 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/> |
563 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/> | 624 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/> |
@@ -577,4 +638,6 @@ | |||
577 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/> | 638 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/> |
578 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/> | 639 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/> |
579 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/> | 640 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/> |
641 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"/> | ||
642 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.19" query="//@annotations.19"/> | ||
580 | </language:LogicProblem> | 643 | </language:LogicProblem> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel index 55020b90..3f2640d6 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/init.partialmodel | |||
@@ -1,5 +1,5 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="7" maxNewElements="7"> | 2 | <partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="6" maxNewElements="6"> |
3 | <problem href="generation.logicproblem#/"/> | 3 | <problem href="generation.logicproblem#/"/> |
4 | <partialrelationinterpretation> | 4 | <partialrelationinterpretation> |
5 | <interpretationOf href="generation.logicproblem#//@relations.0"/> | 5 | <interpretationOf href="generation.logicproblem#//@relations.0"/> |
@@ -86,6 +86,7 @@ | |||
86 | <interpretationOf href="generation.logicproblem#//@types.0"/> | 86 | <interpretationOf href="generation.logicproblem#//@types.0"/> |
87 | </partialtypeinterpratation> | 87 | </partialtypeinterpratation> |
88 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1"> | 88 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1"> |
89 | <elements href="generation.logicproblem#//@elements.3"/> | ||
89 | <interpretationOf href="generation.logicproblem#//@types.1"/> | 90 | <interpretationOf href="generation.logicproblem#//@types.1"/> |
90 | </partialtypeinterpratation> | 91 | </partialtypeinterpratation> |
91 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2" supertypeInterpretation="//@partialtypeinterpratation.4"> | 92 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2" supertypeInterpretation="//@partialtypeinterpratation.4"> |
@@ -109,6 +110,9 @@ | |||
109 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8"> | 110 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.8"> |
110 | <interpretationOf href="generation.logicproblem#//@types.8"/> | 111 | <interpretationOf href="generation.logicproblem#//@types.8"/> |
111 | </partialtypeinterpratation> | 112 | </partialtypeinterpratation> |
113 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.9" supertypeInterpretation="//@partialtypeinterpratation.5"> | ||
114 | <interpretationOf href="generation.logicproblem#//@types.11"/> | ||
115 | </partialtypeinterpratation> | ||
112 | <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/> | 116 | <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/> |
113 | <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> | 117 | <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> |
114 | <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> | 118 | <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> |
@@ -122,4 +126,5 @@ | |||
122 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/> | 126 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/> |
123 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/> | 127 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.11"/> |
124 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/> | 128 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.12"/> |
129 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.13"/> | ||
125 | </partialinterpretation:PartialInterpretation> | 130 | </partialinterpretation:PartialInterpretation> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt index 7029fce0..6386e508 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/log.txt | |||
@@ -1 +1 @@ | |||
Model generation startedModel generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated! \ No newline at end of file | Model generation startedModel generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Model generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finished \ No newline at end of file | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml index 3e4dddc2..b0a86a61 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.gml | |||
@@ -8342,3 +8342,3357 @@ graph | |||
8342 | ] | 8342 | ] |
8343 | ] | 8343 | ] |
8344 | ] | 8344 | ] |
8345 | graph | ||
8346 | [ | ||
8347 | node | ||
8348 | [ | ||
8349 | id 0 | ||
8350 | graphics | ||
8351 | [ | ||
8352 | w 226.60000000000002 | ||
8353 | h 40 | ||
8354 | type "rectangle" | ||
8355 | fill "#FFFFFF" | ||
8356 | fill2 "#FFFFFF" | ||
8357 | outline "#000000" | ||
8358 | ] | ||
8359 | LabelGraphics | ||
8360 | [ | ||
8361 | text "Root literal FunctionType" | ||
8362 | outline "#000000" | ||
8363 | fill "#FFFFFF" | ||
8364 | fontSize 16 | ||
8365 | fontName "Monospace" | ||
8366 | autoSizePolicy "node_width" | ||
8367 | anchor "t" | ||
8368 | borderDistance 0.0 | ||
8369 | ] | ||
8370 | LabelGraphics | ||
8371 | [ | ||
8372 | text " | ||
8373 | FunctionType enum | ||
8374 | " | ||
8375 | fontSize 14 | ||
8376 | fontName "Consolas" | ||
8377 | alignment "left" | ||
8378 | anchor "tl" | ||
8379 | borderDistance 6 | ||
8380 | ] | ||
8381 | ] | ||
8382 | |||
8383 | node | ||
8384 | [ | ||
8385 | id 1 | ||
8386 | graphics | ||
8387 | [ | ||
8388 | w 297.0 | ||
8389 | h 40 | ||
8390 | type "rectangle" | ||
8391 | fill "#FFFFFF" | ||
8392 | fill2 "#FFFFFF" | ||
8393 | outline "#000000" | ||
8394 | ] | ||
8395 | LabelGraphics | ||
8396 | [ | ||
8397 | text "Intermediate literal FunctionType" | ||
8398 | outline "#000000" | ||
8399 | fill "#FFFFFF" | ||
8400 | fontSize 16 | ||
8401 | fontName "Monospace" | ||
8402 | autoSizePolicy "node_width" | ||
8403 | anchor "t" | ||
8404 | borderDistance 0.0 | ||
8405 | ] | ||
8406 | LabelGraphics | ||
8407 | [ | ||
8408 | text " | ||
8409 | FunctionType enum | ||
8410 | " | ||
8411 | fontSize 14 | ||
8412 | fontName "Consolas" | ||
8413 | alignment "left" | ||
8414 | anchor "tl" | ||
8415 | borderDistance 6 | ||
8416 | ] | ||
8417 | ] | ||
8418 | |||
8419 | node | ||
8420 | [ | ||
8421 | id 2 | ||
8422 | graphics | ||
8423 | [ | ||
8424 | w 226.60000000000002 | ||
8425 | h 40 | ||
8426 | type "rectangle" | ||
8427 | fill "#FFFFFF" | ||
8428 | fill2 "#FFFFFF" | ||
8429 | outline "#000000" | ||
8430 | ] | ||
8431 | LabelGraphics | ||
8432 | [ | ||
8433 | text "Leaf literal FunctionType" | ||
8434 | outline "#000000" | ||
8435 | fill "#FFFFFF" | ||
8436 | fontSize 16 | ||
8437 | fontName "Monospace" | ||
8438 | autoSizePolicy "node_width" | ||
8439 | anchor "t" | ||
8440 | borderDistance 0.0 | ||
8441 | ] | ||
8442 | LabelGraphics | ||
8443 | [ | ||
8444 | text " | ||
8445 | FunctionType enum | ||
8446 | " | ||
8447 | fontSize 14 | ||
8448 | fontName "Consolas" | ||
8449 | alignment "left" | ||
8450 | anchor "tl" | ||
8451 | borderDistance 6 | ||
8452 | ] | ||
8453 | ] | ||
8454 | |||
8455 | node | ||
8456 | [ | ||
8457 | id 3 | ||
8458 | graphics | ||
8459 | [ | ||
8460 | w 41.800000000000004 | ||
8461 | h 26 | ||
8462 | type "rectangle" | ||
8463 | fill "#FFFFFF" | ||
8464 | fill2 "#FFFFFF" | ||
8465 | outline "#000000" | ||
8466 | ] | ||
8467 | LabelGraphics | ||
8468 | [ | ||
8469 | text "true" | ||
8470 | outline "#000000" | ||
8471 | fill "#FFFFFF" | ||
8472 | fontSize 16 | ||
8473 | fontName "Monospace" | ||
8474 | autoSizePolicy "node_width" | ||
8475 | anchor "t" | ||
8476 | borderDistance 0.0 | ||
8477 | ] | ||
8478 | LabelGraphics | ||
8479 | [ | ||
8480 | text " | ||
8481 | " | ||
8482 | fontSize 14 | ||
8483 | fontName "Consolas" | ||
8484 | alignment "left" | ||
8485 | anchor "tl" | ||
8486 | borderDistance 6 | ||
8487 | ] | ||
8488 | ] | ||
8489 | |||
8490 | node | ||
8491 | [ | ||
8492 | id 4 | ||
8493 | graphics | ||
8494 | [ | ||
8495 | w 50.6 | ||
8496 | h 26 | ||
8497 | type "rectangle" | ||
8498 | fill "#FFFFFF" | ||
8499 | fill2 "#FFFFFF" | ||
8500 | outline "#000000" | ||
8501 | ] | ||
8502 | LabelGraphics | ||
8503 | [ | ||
8504 | text "false" | ||
8505 | outline "#000000" | ||
8506 | fill "#FFFFFF" | ||
8507 | fontSize 16 | ||
8508 | fontName "Monospace" | ||
8509 | autoSizePolicy "node_width" | ||
8510 | anchor "t" | ||
8511 | borderDistance 0.0 | ||
8512 | ] | ||
8513 | LabelGraphics | ||
8514 | [ | ||
8515 | text " | ||
8516 | " | ||
8517 | fontSize 14 | ||
8518 | fontName "Consolas" | ||
8519 | alignment "left" | ||
8520 | anchor "tl" | ||
8521 | borderDistance 6 | ||
8522 | ] | ||
8523 | ] | ||
8524 | |||
8525 | node | ||
8526 | [ | ||
8527 | id 5 | ||
8528 | graphics | ||
8529 | [ | ||
8530 | w 207.9 | ||
8531 | h 40 | ||
8532 | type "rectangle" | ||
8533 | fill "#FFFFFF" | ||
8534 | fill2 "#FFFFFF" | ||
8535 | outline "#000000" | ||
8536 | ] | ||
8537 | LabelGraphics | ||
8538 | [ | ||
8539 | text "null" | ||
8540 | outline "#000000" | ||
8541 | fill "#FFFFFF" | ||
8542 | fontSize 16 | ||
8543 | fontName "Monospace" | ||
8544 | autoSizePolicy "node_width" | ||
8545 | anchor "t" | ||
8546 | borderDistance 0.0 | ||
8547 | ] | ||
8548 | LabelGraphics | ||
8549 | [ | ||
8550 | text " | ||
8551 | FunctionalInterface class | ||
8552 | " | ||
8553 | fontSize 14 | ||
8554 | fontName "Consolas" | ||
8555 | alignment "left" | ||
8556 | anchor "tl" | ||
8557 | borderDistance 6 | ||
8558 | ] | ||
8559 | ] | ||
8560 | |||
8561 | node | ||
8562 | [ | ||
8563 | id 6 | ||
8564 | graphics | ||
8565 | [ | ||
8566 | w 184.8 | ||
8567 | h 54 | ||
8568 | type "rectangle" | ||
8569 | fill "#FFFFFF" | ||
8570 | fill2 "#FFFFFF" | ||
8571 | outline "#000000" | ||
8572 | ] | ||
8573 | LabelGraphics | ||
8574 | [ | ||
8575 | text "null" | ||
8576 | outline "#000000" | ||
8577 | fill "#FFFFFF" | ||
8578 | fontSize 16 | ||
8579 | fontName "Monospace" | ||
8580 | autoSizePolicy "node_width" | ||
8581 | anchor "t" | ||
8582 | borderDistance 0.0 | ||
8583 | ] | ||
8584 | LabelGraphics | ||
8585 | [ | ||
8586 | text " | ||
8587 | FunctionalOutput class | ||
8588 | FunctionalData class | ||
8589 | " | ||
8590 | fontSize 14 | ||
8591 | fontName "Consolas" | ||
8592 | alignment "left" | ||
8593 | anchor "tl" | ||
8594 | borderDistance 6 | ||
8595 | ] | ||
8596 | ] | ||
8597 | |||
8598 | node | ||
8599 | [ | ||
8600 | id 7 | ||
8601 | graphics | ||
8602 | [ | ||
8603 | w 177.10000000000002 | ||
8604 | h 54 | ||
8605 | type "rectangle" | ||
8606 | fill "#FFFFFF" | ||
8607 | fill2 "#FFFFFF" | ||
8608 | outline "#000000" | ||
8609 | ] | ||
8610 | LabelGraphics | ||
8611 | [ | ||
8612 | text "null" | ||
8613 | outline "#000000" | ||
8614 | fill "#FFFFFF" | ||
8615 | fontSize 16 | ||
8616 | fontName "Monospace" | ||
8617 | autoSizePolicy "node_width" | ||
8618 | anchor "t" | ||
8619 | borderDistance 0.0 | ||
8620 | ] | ||
8621 | LabelGraphics | ||
8622 | [ | ||
8623 | text " | ||
8624 | FunctionalInput class | ||
8625 | FunctionalData class | ||
8626 | " | ||
8627 | fontSize 14 | ||
8628 | fontName "Consolas" | ||
8629 | alignment "left" | ||
8630 | anchor "tl" | ||
8631 | borderDistance 6 | ||
8632 | ] | ||
8633 | ] | ||
8634 | |||
8635 | node | ||
8636 | [ | ||
8637 | id 8 | ||
8638 | graphics | ||
8639 | [ | ||
8640 | w 161.70000000000002 | ||
8641 | h 40 | ||
8642 | type "rectangle" | ||
8643 | fill "#FFFFFF" | ||
8644 | fill2 "#FFFFFF" | ||
8645 | outline "#000000" | ||
8646 | ] | ||
8647 | LabelGraphics | ||
8648 | [ | ||
8649 | text "null" | ||
8650 | outline "#000000" | ||
8651 | fill "#FFFFFF" | ||
8652 | fontSize 16 | ||
8653 | fontName "Monospace" | ||
8654 | autoSizePolicy "node_width" | ||
8655 | anchor "t" | ||
8656 | borderDistance 0.0 | ||
8657 | ] | ||
8658 | LabelGraphics | ||
8659 | [ | ||
8660 | text " | ||
8661 | FAMTerminator class | ||
8662 | " | ||
8663 | fontSize 14 | ||
8664 | fontName "Consolas" | ||
8665 | alignment "left" | ||
8666 | anchor "tl" | ||
8667 | borderDistance 6 | ||
8668 | ] | ||
8669 | ] | ||
8670 | |||
8671 | node | ||
8672 | [ | ||
8673 | id 9 | ||
8674 | graphics | ||
8675 | [ | ||
8676 | w 184.8 | ||
8677 | h 54 | ||
8678 | type "rectangle" | ||
8679 | fill "#FFFFFF" | ||
8680 | fill2 "#FFFFFF" | ||
8681 | outline "#000000" | ||
8682 | ] | ||
8683 | LabelGraphics | ||
8684 | [ | ||
8685 | text "null" | ||
8686 | outline "#000000" | ||
8687 | fill "#FFFFFF" | ||
8688 | fontSize 16 | ||
8689 | fontName "Monospace" | ||
8690 | autoSizePolicy "node_width" | ||
8691 | anchor "t" | ||
8692 | borderDistance 0.0 | ||
8693 | ] | ||
8694 | LabelGraphics | ||
8695 | [ | ||
8696 | text " | ||
8697 | FunctionalOutput class | ||
8698 | FunctionalData class | ||
8699 | " | ||
8700 | fontSize 14 | ||
8701 | fontName "Consolas" | ||
8702 | alignment "left" | ||
8703 | anchor "tl" | ||
8704 | borderDistance 6 | ||
8705 | ] | ||
8706 | ] | ||
8707 | |||
8708 | node | ||
8709 | [ | ||
8710 | id 10 | ||
8711 | graphics | ||
8712 | [ | ||
8713 | w 184.8 | ||
8714 | h 54 | ||
8715 | type "rectangle" | ||
8716 | fill "#FFFFFF" | ||
8717 | fill2 "#FFFFFF" | ||
8718 | outline "#000000" | ||
8719 | ] | ||
8720 | LabelGraphics | ||
8721 | [ | ||
8722 | text "null" | ||
8723 | outline "#000000" | ||
8724 | fill "#FFFFFF" | ||
8725 | fontSize 16 | ||
8726 | fontName "Monospace" | ||
8727 | autoSizePolicy "node_width" | ||
8728 | anchor "t" | ||
8729 | borderDistance 0.0 | ||
8730 | ] | ||
8731 | LabelGraphics | ||
8732 | [ | ||
8733 | text " | ||
8734 | FunctionalOutput class | ||
8735 | FunctionalData class | ||
8736 | " | ||
8737 | fontSize 14 | ||
8738 | fontName "Consolas" | ||
8739 | alignment "left" | ||
8740 | anchor "tl" | ||
8741 | borderDistance 6 | ||
8742 | ] | ||
8743 | ] | ||
8744 | |||
8745 | node | ||
8746 | [ | ||
8747 | id 11 | ||
8748 | graphics | ||
8749 | [ | ||
8750 | w 161.70000000000002 | ||
8751 | h 40 | ||
8752 | type "rectangle" | ||
8753 | fill "#FFFFFF" | ||
8754 | fill2 "#FFFFFF" | ||
8755 | outline "#000000" | ||
8756 | ] | ||
8757 | LabelGraphics | ||
8758 | [ | ||
8759 | text "null" | ||
8760 | outline "#000000" | ||
8761 | fill "#FFFFFF" | ||
8762 | fontSize 16 | ||
8763 | fontName "Monospace" | ||
8764 | autoSizePolicy "node_width" | ||
8765 | anchor "t" | ||
8766 | borderDistance 0.0 | ||
8767 | ] | ||
8768 | LabelGraphics | ||
8769 | [ | ||
8770 | text " | ||
8771 | FAMTerminator class | ||
8772 | " | ||
8773 | fontSize 14 | ||
8774 | fontName "Consolas" | ||
8775 | alignment "left" | ||
8776 | anchor "tl" | ||
8777 | borderDistance 6 | ||
8778 | ] | ||
8779 | ] | ||
8780 | |||
8781 | node | ||
8782 | [ | ||
8783 | id 12 | ||
8784 | graphics | ||
8785 | [ | ||
8786 | w 112.2 | ||
8787 | h 26 | ||
8788 | type "rectangle" | ||
8789 | fill "#FFFFFF" | ||
8790 | fill2 "#FFFFFF" | ||
8791 | outline "#000000" | ||
8792 | ] | ||
8793 | LabelGraphics | ||
8794 | [ | ||
8795 | text "New Integers" | ||
8796 | outline "#000000" | ||
8797 | fill "#FFFFFF" | ||
8798 | fontSize 16 | ||
8799 | fontName "Monospace" | ||
8800 | autoSizePolicy "node_width" | ||
8801 | anchor "t" | ||
8802 | borderDistance 0.0 | ||
8803 | ] | ||
8804 | LabelGraphics | ||
8805 | [ | ||
8806 | text " | ||
8807 | " | ||
8808 | fontSize 14 | ||
8809 | fontName "Consolas" | ||
8810 | alignment "left" | ||
8811 | anchor "tl" | ||
8812 | borderDistance 6 | ||
8813 | ] | ||
8814 | ] | ||
8815 | |||
8816 | node | ||
8817 | [ | ||
8818 | id 13 | ||
8819 | graphics | ||
8820 | [ | ||
8821 | w 85.80000000000001 | ||
8822 | h 26 | ||
8823 | type "rectangle" | ||
8824 | fill "#FFFFFF" | ||
8825 | fill2 "#FFFFFF" | ||
8826 | outline "#000000" | ||
8827 | ] | ||
8828 | LabelGraphics | ||
8829 | [ | ||
8830 | text "New Reals" | ||
8831 | outline "#000000" | ||
8832 | fill "#FFFFFF" | ||
8833 | fontSize 16 | ||
8834 | fontName "Monospace" | ||
8835 | autoSizePolicy "node_width" | ||
8836 | anchor "t" | ||
8837 | borderDistance 0.0 | ||
8838 | ] | ||
8839 | LabelGraphics | ||
8840 | [ | ||
8841 | text " | ||
8842 | " | ||
8843 | fontSize 14 | ||
8844 | fontName "Consolas" | ||
8845 | alignment "left" | ||
8846 | anchor "tl" | ||
8847 | borderDistance 6 | ||
8848 | ] | ||
8849 | ] | ||
8850 | |||
8851 | node | ||
8852 | [ | ||
8853 | id 14 | ||
8854 | graphics | ||
8855 | [ | ||
8856 | w 103.4 | ||
8857 | h 26 | ||
8858 | type "rectangle" | ||
8859 | fill "#FFFFFF" | ||
8860 | fill2 "#FFFFFF" | ||
8861 | outline "#000000" | ||
8862 | ] | ||
8863 | LabelGraphics | ||
8864 | [ | ||
8865 | text "New Strings" | ||
8866 | outline "#000000" | ||
8867 | fill "#FFFFFF" | ||
8868 | fontSize 16 | ||
8869 | fontName "Monospace" | ||
8870 | autoSizePolicy "node_width" | ||
8871 | anchor "t" | ||
8872 | borderDistance 0.0 | ||
8873 | ] | ||
8874 | LabelGraphics | ||
8875 | [ | ||
8876 | text " | ||
8877 | " | ||
8878 | fontSize 14 | ||
8879 | fontName "Consolas" | ||
8880 | alignment "left" | ||
8881 | anchor "tl" | ||
8882 | borderDistance 6 | ||
8883 | ] | ||
8884 | ] | ||
8885 | |||
8886 | node | ||
8887 | [ | ||
8888 | id 15 | ||
8889 | graphics | ||
8890 | [ | ||
8891 | w 103.4 | ||
8892 | h 26 | ||
8893 | type "rectangle" | ||
8894 | fill "#FFFFFF" | ||
8895 | fill2 "#FFFFFF" | ||
8896 | outline "#000000" | ||
8897 | ] | ||
8898 | LabelGraphics | ||
8899 | [ | ||
8900 | text "New Objects" | ||
8901 | outline "#000000" | ||
8902 | fill "#FFFFFF" | ||
8903 | fontSize 16 | ||
8904 | fontName "Monospace" | ||
8905 | autoSizePolicy "node_width" | ||
8906 | anchor "t" | ||
8907 | borderDistance 0.0 | ||
8908 | ] | ||
8909 | LabelGraphics | ||
8910 | [ | ||
8911 | text " | ||
8912 | " | ||
8913 | fontSize 14 | ||
8914 | fontName "Consolas" | ||
8915 | alignment "left" | ||
8916 | anchor "tl" | ||
8917 | borderDistance 6 | ||
8918 | ] | ||
8919 | ] | ||
8920 | edge | ||
8921 | [ | ||
8922 | source 8 | ||
8923 | target 6 | ||
8924 | graphics | ||
8925 | [ | ||
8926 | fill "#000000" | ||
8927 | targetArrow "standard" | ||
8928 | ] | ||
8929 | LabelGraphics | ||
8930 | [ | ||
8931 | text "data reference FAMTerminator" | ||
8932 | fontSize 14 | ||
8933 | fontName "Consolas" | ||
8934 | configuration "AutoFlippingLabel" | ||
8935 | model "six_pos" | ||
8936 | position "thead" | ||
8937 | ] | ||
8938 | ] | ||
8939 | edge | ||
8940 | [ | ||
8941 | source 11 | ||
8942 | target 7 | ||
8943 | graphics | ||
8944 | [ | ||
8945 | fill "#000000" | ||
8946 | targetArrow "standard" | ||
8947 | ] | ||
8948 | LabelGraphics | ||
8949 | [ | ||
8950 | text "data reference FAMTerminator" | ||
8951 | fontSize 14 | ||
8952 | fontName "Consolas" | ||
8953 | configuration "AutoFlippingLabel" | ||
8954 | model "six_pos" | ||
8955 | position "thead" | ||
8956 | ] | ||
8957 | ] | ||
8958 | edge | ||
8959 | [ | ||
8960 | source 5 | ||
8961 | target 6 | ||
8962 | graphics | ||
8963 | [ | ||
8964 | fill "#000000" | ||
8965 | width 3 | ||
8966 | targetArrow "standard" | ||
8967 | ] | ||
8968 | LabelGraphics | ||
8969 | [ | ||
8970 | text "data reference FunctionalInterface" | ||
8971 | fontSize 14 | ||
8972 | fontName "Consolas" | ||
8973 | configuration "AutoFlippingLabel" | ||
8974 | model "six_pos" | ||
8975 | position "thead" | ||
8976 | ] | ||
8977 | ] | ||
8978 | edge | ||
8979 | [ | ||
8980 | source 5 | ||
8981 | target 7 | ||
8982 | graphics | ||
8983 | [ | ||
8984 | fill "#000000" | ||
8985 | width 3 | ||
8986 | targetArrow "standard" | ||
8987 | ] | ||
8988 | LabelGraphics | ||
8989 | [ | ||
8990 | text "data reference FunctionalInterface" | ||
8991 | fontSize 14 | ||
8992 | fontName "Consolas" | ||
8993 | configuration "AutoFlippingLabel" | ||
8994 | model "six_pos" | ||
8995 | position "thead" | ||
8996 | ] | ||
8997 | ] | ||
8998 | edge | ||
8999 | [ | ||
9000 | source 5 | ||
9001 | target 9 | ||
9002 | graphics | ||
9003 | [ | ||
9004 | fill "#000000" | ||
9005 | width 3 | ||
9006 | targetArrow "standard" | ||
9007 | ] | ||
9008 | LabelGraphics | ||
9009 | [ | ||
9010 | text "data reference FunctionalInterface" | ||
9011 | fontSize 14 | ||
9012 | fontName "Consolas" | ||
9013 | configuration "AutoFlippingLabel" | ||
9014 | model "six_pos" | ||
9015 | position "thead" | ||
9016 | ] | ||
9017 | ] | ||
9018 | edge | ||
9019 | [ | ||
9020 | source 5 | ||
9021 | target 10 | ||
9022 | graphics | ||
9023 | [ | ||
9024 | fill "#000000" | ||
9025 | width 3 | ||
9026 | targetArrow "standard" | ||
9027 | ] | ||
9028 | LabelGraphics | ||
9029 | [ | ||
9030 | text "data reference FunctionalInterface" | ||
9031 | fontSize 14 | ||
9032 | fontName "Consolas" | ||
9033 | configuration "AutoFlippingLabel" | ||
9034 | model "six_pos" | ||
9035 | position "thead" | ||
9036 | ] | ||
9037 | ] | ||
9038 | edge | ||
9039 | [ | ||
9040 | source 6 | ||
9041 | target 8 | ||
9042 | graphics | ||
9043 | [ | ||
9044 | fill "#000000" | ||
9045 | width 3 | ||
9046 | targetArrow "standard" | ||
9047 | ] | ||
9048 | LabelGraphics | ||
9049 | [ | ||
9050 | text "terminator reference FunctionalData" | ||
9051 | fontSize 14 | ||
9052 | fontName "Consolas" | ||
9053 | configuration "AutoFlippingLabel" | ||
9054 | model "six_pos" | ||
9055 | position "thead" | ||
9056 | ] | ||
9057 | ] | ||
9058 | edge | ||
9059 | [ | ||
9060 | source 7 | ||
9061 | target 11 | ||
9062 | graphics | ||
9063 | [ | ||
9064 | fill "#000000" | ||
9065 | width 3 | ||
9066 | targetArrow "standard" | ||
9067 | ] | ||
9068 | LabelGraphics | ||
9069 | [ | ||
9070 | text "terminator reference FunctionalData" | ||
9071 | fontSize 14 | ||
9072 | fontName "Consolas" | ||
9073 | configuration "AutoFlippingLabel" | ||
9074 | model "six_pos" | ||
9075 | position "thead" | ||
9076 | ] | ||
9077 | ] | ||
9078 | edge | ||
9079 | [ | ||
9080 | source 6 | ||
9081 | target 5 | ||
9082 | graphics | ||
9083 | [ | ||
9084 | fill "#000000" | ||
9085 | targetArrow "standard" | ||
9086 | ] | ||
9087 | LabelGraphics | ||
9088 | [ | ||
9089 | text "interface reference FunctionalData" | ||
9090 | fontSize 14 | ||
9091 | fontName "Consolas" | ||
9092 | configuration "AutoFlippingLabel" | ||
9093 | model "six_pos" | ||
9094 | position "thead" | ||
9095 | ] | ||
9096 | ] | ||
9097 | edge | ||
9098 | [ | ||
9099 | source 7 | ||
9100 | target 5 | ||
9101 | graphics | ||
9102 | [ | ||
9103 | fill "#000000" | ||
9104 | targetArrow "standard" | ||
9105 | ] | ||
9106 | LabelGraphics | ||
9107 | [ | ||
9108 | text "interface reference FunctionalData" | ||
9109 | fontSize 14 | ||
9110 | fontName "Consolas" | ||
9111 | configuration "AutoFlippingLabel" | ||
9112 | model "six_pos" | ||
9113 | position "thead" | ||
9114 | ] | ||
9115 | ] | ||
9116 | edge | ||
9117 | [ | ||
9118 | source 9 | ||
9119 | target 5 | ||
9120 | graphics | ||
9121 | [ | ||
9122 | fill "#000000" | ||
9123 | targetArrow "standard" | ||
9124 | ] | ||
9125 | LabelGraphics | ||
9126 | [ | ||
9127 | text "interface reference FunctionalData" | ||
9128 | fontSize 14 | ||
9129 | fontName "Consolas" | ||
9130 | configuration "AutoFlippingLabel" | ||
9131 | model "six_pos" | ||
9132 | position "thead" | ||
9133 | ] | ||
9134 | ] | ||
9135 | edge | ||
9136 | [ | ||
9137 | source 10 | ||
9138 | target 5 | ||
9139 | graphics | ||
9140 | [ | ||
9141 | fill "#000000" | ||
9142 | targetArrow "standard" | ||
9143 | ] | ||
9144 | LabelGraphics | ||
9145 | [ | ||
9146 | text "interface reference FunctionalData" | ||
9147 | fontSize 14 | ||
9148 | fontName "Consolas" | ||
9149 | configuration "AutoFlippingLabel" | ||
9150 | model "six_pos" | ||
9151 | position "thead" | ||
9152 | ] | ||
9153 | ] | ||
9154 | ] | ||
9155 | graph | ||
9156 | [ | ||
9157 | node | ||
9158 | [ | ||
9159 | id 0 | ||
9160 | graphics | ||
9161 | [ | ||
9162 | w 226.60000000000002 | ||
9163 | h 40 | ||
9164 | type "rectangle" | ||
9165 | fill "#FFFFFF" | ||
9166 | fill2 "#FFFFFF" | ||
9167 | outline "#000000" | ||
9168 | ] | ||
9169 | LabelGraphics | ||
9170 | [ | ||
9171 | text "Root literal FunctionType" | ||
9172 | outline "#000000" | ||
9173 | fill "#FFFFFF" | ||
9174 | fontSize 16 | ||
9175 | fontName "Monospace" | ||
9176 | autoSizePolicy "node_width" | ||
9177 | anchor "t" | ||
9178 | borderDistance 0.0 | ||
9179 | ] | ||
9180 | LabelGraphics | ||
9181 | [ | ||
9182 | text " | ||
9183 | FunctionType enum | ||
9184 | " | ||
9185 | fontSize 14 | ||
9186 | fontName "Consolas" | ||
9187 | alignment "left" | ||
9188 | anchor "tl" | ||
9189 | borderDistance 6 | ||
9190 | ] | ||
9191 | ] | ||
9192 | |||
9193 | node | ||
9194 | [ | ||
9195 | id 1 | ||
9196 | graphics | ||
9197 | [ | ||
9198 | w 297.0 | ||
9199 | h 40 | ||
9200 | type "rectangle" | ||
9201 | fill "#FFFFFF" | ||
9202 | fill2 "#FFFFFF" | ||
9203 | outline "#000000" | ||
9204 | ] | ||
9205 | LabelGraphics | ||
9206 | [ | ||
9207 | text "Intermediate literal FunctionType" | ||
9208 | outline "#000000" | ||
9209 | fill "#FFFFFF" | ||
9210 | fontSize 16 | ||
9211 | fontName "Monospace" | ||
9212 | autoSizePolicy "node_width" | ||
9213 | anchor "t" | ||
9214 | borderDistance 0.0 | ||
9215 | ] | ||
9216 | LabelGraphics | ||
9217 | [ | ||
9218 | text " | ||
9219 | FunctionType enum | ||
9220 | " | ||
9221 | fontSize 14 | ||
9222 | fontName "Consolas" | ||
9223 | alignment "left" | ||
9224 | anchor "tl" | ||
9225 | borderDistance 6 | ||
9226 | ] | ||
9227 | ] | ||
9228 | |||
9229 | node | ||
9230 | [ | ||
9231 | id 2 | ||
9232 | graphics | ||
9233 | [ | ||
9234 | w 226.60000000000002 | ||
9235 | h 40 | ||
9236 | type "rectangle" | ||
9237 | fill "#FFFFFF" | ||
9238 | fill2 "#FFFFFF" | ||
9239 | outline "#000000" | ||
9240 | ] | ||
9241 | LabelGraphics | ||
9242 | [ | ||
9243 | text "Leaf literal FunctionType" | ||
9244 | outline "#000000" | ||
9245 | fill "#FFFFFF" | ||
9246 | fontSize 16 | ||
9247 | fontName "Monospace" | ||
9248 | autoSizePolicy "node_width" | ||
9249 | anchor "t" | ||
9250 | borderDistance 0.0 | ||
9251 | ] | ||
9252 | LabelGraphics | ||
9253 | [ | ||
9254 | text " | ||
9255 | FunctionType enum | ||
9256 | " | ||
9257 | fontSize 14 | ||
9258 | fontName "Consolas" | ||
9259 | alignment "left" | ||
9260 | anchor "tl" | ||
9261 | borderDistance 6 | ||
9262 | ] | ||
9263 | ] | ||
9264 | |||
9265 | node | ||
9266 | [ | ||
9267 | id 3 | ||
9268 | graphics | ||
9269 | [ | ||
9270 | w 41.800000000000004 | ||
9271 | h 26 | ||
9272 | type "rectangle" | ||
9273 | fill "#FFFFFF" | ||
9274 | fill2 "#FFFFFF" | ||
9275 | outline "#000000" | ||
9276 | ] | ||
9277 | LabelGraphics | ||
9278 | [ | ||
9279 | text "true" | ||
9280 | outline "#000000" | ||
9281 | fill "#FFFFFF" | ||
9282 | fontSize 16 | ||
9283 | fontName "Monospace" | ||
9284 | autoSizePolicy "node_width" | ||
9285 | anchor "t" | ||
9286 | borderDistance 0.0 | ||
9287 | ] | ||
9288 | LabelGraphics | ||
9289 | [ | ||
9290 | text " | ||
9291 | " | ||
9292 | fontSize 14 | ||
9293 | fontName "Consolas" | ||
9294 | alignment "left" | ||
9295 | anchor "tl" | ||
9296 | borderDistance 6 | ||
9297 | ] | ||
9298 | ] | ||
9299 | |||
9300 | node | ||
9301 | [ | ||
9302 | id 4 | ||
9303 | graphics | ||
9304 | [ | ||
9305 | w 50.6 | ||
9306 | h 26 | ||
9307 | type "rectangle" | ||
9308 | fill "#FFFFFF" | ||
9309 | fill2 "#FFFFFF" | ||
9310 | outline "#000000" | ||
9311 | ] | ||
9312 | LabelGraphics | ||
9313 | [ | ||
9314 | text "false" | ||
9315 | outline "#000000" | ||
9316 | fill "#FFFFFF" | ||
9317 | fontSize 16 | ||
9318 | fontName "Monospace" | ||
9319 | autoSizePolicy "node_width" | ||
9320 | anchor "t" | ||
9321 | borderDistance 0.0 | ||
9322 | ] | ||
9323 | LabelGraphics | ||
9324 | [ | ||
9325 | text " | ||
9326 | " | ||
9327 | fontSize 14 | ||
9328 | fontName "Consolas" | ||
9329 | alignment "left" | ||
9330 | anchor "tl" | ||
9331 | borderDistance 6 | ||
9332 | ] | ||
9333 | ] | ||
9334 | |||
9335 | node | ||
9336 | [ | ||
9337 | id 5 | ||
9338 | graphics | ||
9339 | [ | ||
9340 | w 207.9 | ||
9341 | h 40 | ||
9342 | type "rectangle" | ||
9343 | fill "#FFFFFF" | ||
9344 | fill2 "#FFFFFF" | ||
9345 | outline "#000000" | ||
9346 | ] | ||
9347 | LabelGraphics | ||
9348 | [ | ||
9349 | text "null" | ||
9350 | outline "#000000" | ||
9351 | fill "#FFFFFF" | ||
9352 | fontSize 16 | ||
9353 | fontName "Monospace" | ||
9354 | autoSizePolicy "node_width" | ||
9355 | anchor "t" | ||
9356 | borderDistance 0.0 | ||
9357 | ] | ||
9358 | LabelGraphics | ||
9359 | [ | ||
9360 | text " | ||
9361 | FunctionalInterface class | ||
9362 | " | ||
9363 | fontSize 14 | ||
9364 | fontName "Consolas" | ||
9365 | alignment "left" | ||
9366 | anchor "tl" | ||
9367 | borderDistance 6 | ||
9368 | ] | ||
9369 | ] | ||
9370 | |||
9371 | node | ||
9372 | [ | ||
9373 | id 6 | ||
9374 | graphics | ||
9375 | [ | ||
9376 | w 177.10000000000002 | ||
9377 | h 54 | ||
9378 | type "rectangle" | ||
9379 | fill "#FFFFFF" | ||
9380 | fill2 "#FFFFFF" | ||
9381 | outline "#000000" | ||
9382 | ] | ||
9383 | LabelGraphics | ||
9384 | [ | ||
9385 | text "null" | ||
9386 | outline "#000000" | ||
9387 | fill "#FFFFFF" | ||
9388 | fontSize 16 | ||
9389 | fontName "Monospace" | ||
9390 | autoSizePolicy "node_width" | ||
9391 | anchor "t" | ||
9392 | borderDistance 0.0 | ||
9393 | ] | ||
9394 | LabelGraphics | ||
9395 | [ | ||
9396 | text " | ||
9397 | FunctionalInput class | ||
9398 | FunctionalData class | ||
9399 | " | ||
9400 | fontSize 14 | ||
9401 | fontName "Consolas" | ||
9402 | alignment "left" | ||
9403 | anchor "tl" | ||
9404 | borderDistance 6 | ||
9405 | ] | ||
9406 | ] | ||
9407 | |||
9408 | node | ||
9409 | [ | ||
9410 | id 7 | ||
9411 | graphics | ||
9412 | [ | ||
9413 | w 177.10000000000002 | ||
9414 | h 54 | ||
9415 | type "rectangle" | ||
9416 | fill "#FFFFFF" | ||
9417 | fill2 "#FFFFFF" | ||
9418 | outline "#000000" | ||
9419 | ] | ||
9420 | LabelGraphics | ||
9421 | [ | ||
9422 | text "null" | ||
9423 | outline "#000000" | ||
9424 | fill "#FFFFFF" | ||
9425 | fontSize 16 | ||
9426 | fontName "Monospace" | ||
9427 | autoSizePolicy "node_width" | ||
9428 | anchor "t" | ||
9429 | borderDistance 0.0 | ||
9430 | ] | ||
9431 | LabelGraphics | ||
9432 | [ | ||
9433 | text " | ||
9434 | FunctionalInput class | ||
9435 | FunctionalData class | ||
9436 | " | ||
9437 | fontSize 14 | ||
9438 | fontName "Consolas" | ||
9439 | alignment "left" | ||
9440 | anchor "tl" | ||
9441 | borderDistance 6 | ||
9442 | ] | ||
9443 | ] | ||
9444 | |||
9445 | node | ||
9446 | [ | ||
9447 | id 8 | ||
9448 | graphics | ||
9449 | [ | ||
9450 | w 177.10000000000002 | ||
9451 | h 54 | ||
9452 | type "rectangle" | ||
9453 | fill "#FFFFFF" | ||
9454 | fill2 "#FFFFFF" | ||
9455 | outline "#000000" | ||
9456 | ] | ||
9457 | LabelGraphics | ||
9458 | [ | ||
9459 | text "null" | ||
9460 | outline "#000000" | ||
9461 | fill "#FFFFFF" | ||
9462 | fontSize 16 | ||
9463 | fontName "Monospace" | ||
9464 | autoSizePolicy "node_width" | ||
9465 | anchor "t" | ||
9466 | borderDistance 0.0 | ||
9467 | ] | ||
9468 | LabelGraphics | ||
9469 | [ | ||
9470 | text " | ||
9471 | FunctionalInput class | ||
9472 | FunctionalData class | ||
9473 | " | ||
9474 | fontSize 14 | ||
9475 | fontName "Consolas" | ||
9476 | alignment "left" | ||
9477 | anchor "tl" | ||
9478 | borderDistance 6 | ||
9479 | ] | ||
9480 | ] | ||
9481 | |||
9482 | node | ||
9483 | [ | ||
9484 | id 9 | ||
9485 | graphics | ||
9486 | [ | ||
9487 | w 161.70000000000002 | ||
9488 | h 40 | ||
9489 | type "rectangle" | ||
9490 | fill "#FFFFFF" | ||
9491 | fill2 "#FFFFFF" | ||
9492 | outline "#000000" | ||
9493 | ] | ||
9494 | LabelGraphics | ||
9495 | [ | ||
9496 | text "null" | ||
9497 | outline "#000000" | ||
9498 | fill "#FFFFFF" | ||
9499 | fontSize 16 | ||
9500 | fontName "Monospace" | ||
9501 | autoSizePolicy "node_width" | ||
9502 | anchor "t" | ||
9503 | borderDistance 0.0 | ||
9504 | ] | ||
9505 | LabelGraphics | ||
9506 | [ | ||
9507 | text " | ||
9508 | FAMTerminator class | ||
9509 | " | ||
9510 | fontSize 14 | ||
9511 | fontName "Consolas" | ||
9512 | alignment "left" | ||
9513 | anchor "tl" | ||
9514 | borderDistance 6 | ||
9515 | ] | ||
9516 | ] | ||
9517 | |||
9518 | node | ||
9519 | [ | ||
9520 | id 10 | ||
9521 | graphics | ||
9522 | [ | ||
9523 | w 161.70000000000002 | ||
9524 | h 40 | ||
9525 | type "rectangle" | ||
9526 | fill "#FFFFFF" | ||
9527 | fill2 "#FFFFFF" | ||
9528 | outline "#000000" | ||
9529 | ] | ||
9530 | LabelGraphics | ||
9531 | [ | ||
9532 | text "null" | ||
9533 | outline "#000000" | ||
9534 | fill "#FFFFFF" | ||
9535 | fontSize 16 | ||
9536 | fontName "Monospace" | ||
9537 | autoSizePolicy "node_width" | ||
9538 | anchor "t" | ||
9539 | borderDistance 0.0 | ||
9540 | ] | ||
9541 | LabelGraphics | ||
9542 | [ | ||
9543 | text " | ||
9544 | FAMTerminator class | ||
9545 | " | ||
9546 | fontSize 14 | ||
9547 | fontName "Consolas" | ||
9548 | alignment "left" | ||
9549 | anchor "tl" | ||
9550 | borderDistance 6 | ||
9551 | ] | ||
9552 | ] | ||
9553 | |||
9554 | node | ||
9555 | [ | ||
9556 | id 11 | ||
9557 | graphics | ||
9558 | [ | ||
9559 | w 184.8 | ||
9560 | h 54 | ||
9561 | type "rectangle" | ||
9562 | fill "#FFFFFF" | ||
9563 | fill2 "#FFFFFF" | ||
9564 | outline "#000000" | ||
9565 | ] | ||
9566 | LabelGraphics | ||
9567 | [ | ||
9568 | text "null" | ||
9569 | outline "#000000" | ||
9570 | fill "#FFFFFF" | ||
9571 | fontSize 16 | ||
9572 | fontName "Monospace" | ||
9573 | autoSizePolicy "node_width" | ||
9574 | anchor "t" | ||
9575 | borderDistance 0.0 | ||
9576 | ] | ||
9577 | LabelGraphics | ||
9578 | [ | ||
9579 | text " | ||
9580 | FunctionalOutput class | ||
9581 | FunctionalData class | ||
9582 | " | ||
9583 | fontSize 14 | ||
9584 | fontName "Consolas" | ||
9585 | alignment "left" | ||
9586 | anchor "tl" | ||
9587 | borderDistance 6 | ||
9588 | ] | ||
9589 | ] | ||
9590 | |||
9591 | node | ||
9592 | [ | ||
9593 | id 12 | ||
9594 | graphics | ||
9595 | [ | ||
9596 | w 112.2 | ||
9597 | h 26 | ||
9598 | type "rectangle" | ||
9599 | fill "#FFFFFF" | ||
9600 | fill2 "#FFFFFF" | ||
9601 | outline "#000000" | ||
9602 | ] | ||
9603 | LabelGraphics | ||
9604 | [ | ||
9605 | text "New Integers" | ||
9606 | outline "#000000" | ||
9607 | fill "#FFFFFF" | ||
9608 | fontSize 16 | ||
9609 | fontName "Monospace" | ||
9610 | autoSizePolicy "node_width" | ||
9611 | anchor "t" | ||
9612 | borderDistance 0.0 | ||
9613 | ] | ||
9614 | LabelGraphics | ||
9615 | [ | ||
9616 | text " | ||
9617 | " | ||
9618 | fontSize 14 | ||
9619 | fontName "Consolas" | ||
9620 | alignment "left" | ||
9621 | anchor "tl" | ||
9622 | borderDistance 6 | ||
9623 | ] | ||
9624 | ] | ||
9625 | |||
9626 | node | ||
9627 | [ | ||
9628 | id 13 | ||
9629 | graphics | ||
9630 | [ | ||
9631 | w 85.80000000000001 | ||
9632 | h 26 | ||
9633 | type "rectangle" | ||
9634 | fill "#FFFFFF" | ||
9635 | fill2 "#FFFFFF" | ||
9636 | outline "#000000" | ||
9637 | ] | ||
9638 | LabelGraphics | ||
9639 | [ | ||
9640 | text "New Reals" | ||
9641 | outline "#000000" | ||
9642 | fill "#FFFFFF" | ||
9643 | fontSize 16 | ||
9644 | fontName "Monospace" | ||
9645 | autoSizePolicy "node_width" | ||
9646 | anchor "t" | ||
9647 | borderDistance 0.0 | ||
9648 | ] | ||
9649 | LabelGraphics | ||
9650 | [ | ||
9651 | text " | ||
9652 | " | ||
9653 | fontSize 14 | ||
9654 | fontName "Consolas" | ||
9655 | alignment "left" | ||
9656 | anchor "tl" | ||
9657 | borderDistance 6 | ||
9658 | ] | ||
9659 | ] | ||
9660 | |||
9661 | node | ||
9662 | [ | ||
9663 | id 14 | ||
9664 | graphics | ||
9665 | [ | ||
9666 | w 103.4 | ||
9667 | h 26 | ||
9668 | type "rectangle" | ||
9669 | fill "#FFFFFF" | ||
9670 | fill2 "#FFFFFF" | ||
9671 | outline "#000000" | ||
9672 | ] | ||
9673 | LabelGraphics | ||
9674 | [ | ||
9675 | text "New Strings" | ||
9676 | outline "#000000" | ||
9677 | fill "#FFFFFF" | ||
9678 | fontSize 16 | ||
9679 | fontName "Monospace" | ||
9680 | autoSizePolicy "node_width" | ||
9681 | anchor "t" | ||
9682 | borderDistance 0.0 | ||
9683 | ] | ||
9684 | LabelGraphics | ||
9685 | [ | ||
9686 | text " | ||
9687 | " | ||
9688 | fontSize 14 | ||
9689 | fontName "Consolas" | ||
9690 | alignment "left" | ||
9691 | anchor "tl" | ||
9692 | borderDistance 6 | ||
9693 | ] | ||
9694 | ] | ||
9695 | |||
9696 | node | ||
9697 | [ | ||
9698 | id 15 | ||
9699 | graphics | ||
9700 | [ | ||
9701 | w 103.4 | ||
9702 | h 26 | ||
9703 | type "rectangle" | ||
9704 | fill "#FFFFFF" | ||
9705 | fill2 "#FFFFFF" | ||
9706 | outline "#000000" | ||
9707 | ] | ||
9708 | LabelGraphics | ||
9709 | [ | ||
9710 | text "New Objects" | ||
9711 | outline "#000000" | ||
9712 | fill "#FFFFFF" | ||
9713 | fontSize 16 | ||
9714 | fontName "Monospace" | ||
9715 | autoSizePolicy "node_width" | ||
9716 | anchor "t" | ||
9717 | borderDistance 0.0 | ||
9718 | ] | ||
9719 | LabelGraphics | ||
9720 | [ | ||
9721 | text " | ||
9722 | " | ||
9723 | fontSize 14 | ||
9724 | fontName "Consolas" | ||
9725 | alignment "left" | ||
9726 | anchor "tl" | ||
9727 | borderDistance 6 | ||
9728 | ] | ||
9729 | ] | ||
9730 | edge | ||
9731 | [ | ||
9732 | source 9 | ||
9733 | target 8 | ||
9734 | graphics | ||
9735 | [ | ||
9736 | fill "#000000" | ||
9737 | targetArrow "standard" | ||
9738 | ] | ||
9739 | LabelGraphics | ||
9740 | [ | ||
9741 | text "data reference FAMTerminator" | ||
9742 | fontSize 14 | ||
9743 | fontName "Consolas" | ||
9744 | configuration "AutoFlippingLabel" | ||
9745 | model "six_pos" | ||
9746 | position "thead" | ||
9747 | ] | ||
9748 | ] | ||
9749 | edge | ||
9750 | [ | ||
9751 | source 10 | ||
9752 | target 6 | ||
9753 | graphics | ||
9754 | [ | ||
9755 | fill "#000000" | ||
9756 | targetArrow "standard" | ||
9757 | ] | ||
9758 | LabelGraphics | ||
9759 | [ | ||
9760 | text "data reference FAMTerminator" | ||
9761 | fontSize 14 | ||
9762 | fontName "Consolas" | ||
9763 | configuration "AutoFlippingLabel" | ||
9764 | model "six_pos" | ||
9765 | position "thead" | ||
9766 | ] | ||
9767 | ] | ||
9768 | edge | ||
9769 | [ | ||
9770 | source 5 | ||
9771 | target 6 | ||
9772 | graphics | ||
9773 | [ | ||
9774 | fill "#000000" | ||
9775 | width 3 | ||
9776 | targetArrow "standard" | ||
9777 | ] | ||
9778 | LabelGraphics | ||
9779 | [ | ||
9780 | text "data reference FunctionalInterface" | ||
9781 | fontSize 14 | ||
9782 | fontName "Consolas" | ||
9783 | configuration "AutoFlippingLabel" | ||
9784 | model "six_pos" | ||
9785 | position "thead" | ||
9786 | ] | ||
9787 | ] | ||
9788 | edge | ||
9789 | [ | ||
9790 | source 5 | ||
9791 | target 7 | ||
9792 | graphics | ||
9793 | [ | ||
9794 | fill "#000000" | ||
9795 | width 3 | ||
9796 | targetArrow "standard" | ||
9797 | ] | ||
9798 | LabelGraphics | ||
9799 | [ | ||
9800 | text "data reference FunctionalInterface" | ||
9801 | fontSize 14 | ||
9802 | fontName "Consolas" | ||
9803 | configuration "AutoFlippingLabel" | ||
9804 | model "six_pos" | ||
9805 | position "thead" | ||
9806 | ] | ||
9807 | ] | ||
9808 | edge | ||
9809 | [ | ||
9810 | source 5 | ||
9811 | target 8 | ||
9812 | graphics | ||
9813 | [ | ||
9814 | fill "#000000" | ||
9815 | width 3 | ||
9816 | targetArrow "standard" | ||
9817 | ] | ||
9818 | LabelGraphics | ||
9819 | [ | ||
9820 | text "data reference FunctionalInterface" | ||
9821 | fontSize 14 | ||
9822 | fontName "Consolas" | ||
9823 | configuration "AutoFlippingLabel" | ||
9824 | model "six_pos" | ||
9825 | position "thead" | ||
9826 | ] | ||
9827 | ] | ||
9828 | edge | ||
9829 | [ | ||
9830 | source 5 | ||
9831 | target 11 | ||
9832 | graphics | ||
9833 | [ | ||
9834 | fill "#000000" | ||
9835 | width 3 | ||
9836 | targetArrow "standard" | ||
9837 | ] | ||
9838 | LabelGraphics | ||
9839 | [ | ||
9840 | text "data reference FunctionalInterface" | ||
9841 | fontSize 14 | ||
9842 | fontName "Consolas" | ||
9843 | configuration "AutoFlippingLabel" | ||
9844 | model "six_pos" | ||
9845 | position "thead" | ||
9846 | ] | ||
9847 | ] | ||
9848 | edge | ||
9849 | [ | ||
9850 | source 8 | ||
9851 | target 9 | ||
9852 | graphics | ||
9853 | [ | ||
9854 | fill "#000000" | ||
9855 | width 3 | ||
9856 | targetArrow "standard" | ||
9857 | ] | ||
9858 | LabelGraphics | ||
9859 | [ | ||
9860 | text "terminator reference FunctionalData" | ||
9861 | fontSize 14 | ||
9862 | fontName "Consolas" | ||
9863 | configuration "AutoFlippingLabel" | ||
9864 | model "six_pos" | ||
9865 | position "thead" | ||
9866 | ] | ||
9867 | ] | ||
9868 | edge | ||
9869 | [ | ||
9870 | source 6 | ||
9871 | target 10 | ||
9872 | graphics | ||
9873 | [ | ||
9874 | fill "#000000" | ||
9875 | width 3 | ||
9876 | targetArrow "standard" | ||
9877 | ] | ||
9878 | LabelGraphics | ||
9879 | [ | ||
9880 | text "terminator reference FunctionalData" | ||
9881 | fontSize 14 | ||
9882 | fontName "Consolas" | ||
9883 | configuration "AutoFlippingLabel" | ||
9884 | model "six_pos" | ||
9885 | position "thead" | ||
9886 | ] | ||
9887 | ] | ||
9888 | edge | ||
9889 | [ | ||
9890 | source 6 | ||
9891 | target 5 | ||
9892 | graphics | ||
9893 | [ | ||
9894 | fill "#000000" | ||
9895 | targetArrow "standard" | ||
9896 | ] | ||
9897 | LabelGraphics | ||
9898 | [ | ||
9899 | text "interface reference FunctionalData" | ||
9900 | fontSize 14 | ||
9901 | fontName "Consolas" | ||
9902 | configuration "AutoFlippingLabel" | ||
9903 | model "six_pos" | ||
9904 | position "thead" | ||
9905 | ] | ||
9906 | ] | ||
9907 | edge | ||
9908 | [ | ||
9909 | source 7 | ||
9910 | target 5 | ||
9911 | graphics | ||
9912 | [ | ||
9913 | fill "#000000" | ||
9914 | targetArrow "standard" | ||
9915 | ] | ||
9916 | LabelGraphics | ||
9917 | [ | ||
9918 | text "interface reference FunctionalData" | ||
9919 | fontSize 14 | ||
9920 | fontName "Consolas" | ||
9921 | configuration "AutoFlippingLabel" | ||
9922 | model "six_pos" | ||
9923 | position "thead" | ||
9924 | ] | ||
9925 | ] | ||
9926 | edge | ||
9927 | [ | ||
9928 | source 8 | ||
9929 | target 5 | ||
9930 | graphics | ||
9931 | [ | ||
9932 | fill "#000000" | ||
9933 | targetArrow "standard" | ||
9934 | ] | ||
9935 | LabelGraphics | ||
9936 | [ | ||
9937 | text "interface reference FunctionalData" | ||
9938 | fontSize 14 | ||
9939 | fontName "Consolas" | ||
9940 | configuration "AutoFlippingLabel" | ||
9941 | model "six_pos" | ||
9942 | position "thead" | ||
9943 | ] | ||
9944 | ] | ||
9945 | edge | ||
9946 | [ | ||
9947 | source 11 | ||
9948 | target 5 | ||
9949 | graphics | ||
9950 | [ | ||
9951 | fill "#000000" | ||
9952 | targetArrow "standard" | ||
9953 | ] | ||
9954 | LabelGraphics | ||
9955 | [ | ||
9956 | text "interface reference FunctionalData" | ||
9957 | fontSize 14 | ||
9958 | fontName "Consolas" | ||
9959 | configuration "AutoFlippingLabel" | ||
9960 | model "six_pos" | ||
9961 | position "thead" | ||
9962 | ] | ||
9963 | ] | ||
9964 | ] | ||
9965 | graph | ||
9966 | [ | ||
9967 | node | ||
9968 | [ | ||
9969 | id 0 | ||
9970 | graphics | ||
9971 | [ | ||
9972 | w 226.60000000000002 | ||
9973 | h 40 | ||
9974 | type "rectangle" | ||
9975 | fill "#FFFFFF" | ||
9976 | fill2 "#FFFFFF" | ||
9977 | outline "#000000" | ||
9978 | ] | ||
9979 | LabelGraphics | ||
9980 | [ | ||
9981 | text "Root literal FunctionType" | ||
9982 | outline "#000000" | ||
9983 | fill "#FFFFFF" | ||
9984 | fontSize 16 | ||
9985 | fontName "Monospace" | ||
9986 | autoSizePolicy "node_width" | ||
9987 | anchor "t" | ||
9988 | borderDistance 0.0 | ||
9989 | ] | ||
9990 | LabelGraphics | ||
9991 | [ | ||
9992 | text " | ||
9993 | FunctionType enum | ||
9994 | " | ||
9995 | fontSize 14 | ||
9996 | fontName "Consolas" | ||
9997 | alignment "left" | ||
9998 | anchor "tl" | ||
9999 | borderDistance 6 | ||
10000 | ] | ||
10001 | ] | ||
10002 | |||
10003 | node | ||
10004 | [ | ||
10005 | id 1 | ||
10006 | graphics | ||
10007 | [ | ||
10008 | w 297.0 | ||
10009 | h 40 | ||
10010 | type "rectangle" | ||
10011 | fill "#FFFFFF" | ||
10012 | fill2 "#FFFFFF" | ||
10013 | outline "#000000" | ||
10014 | ] | ||
10015 | LabelGraphics | ||
10016 | [ | ||
10017 | text "Intermediate literal FunctionType" | ||
10018 | outline "#000000" | ||
10019 | fill "#FFFFFF" | ||
10020 | fontSize 16 | ||
10021 | fontName "Monospace" | ||
10022 | autoSizePolicy "node_width" | ||
10023 | anchor "t" | ||
10024 | borderDistance 0.0 | ||
10025 | ] | ||
10026 | LabelGraphics | ||
10027 | [ | ||
10028 | text " | ||
10029 | FunctionType enum | ||
10030 | " | ||
10031 | fontSize 14 | ||
10032 | fontName "Consolas" | ||
10033 | alignment "left" | ||
10034 | anchor "tl" | ||
10035 | borderDistance 6 | ||
10036 | ] | ||
10037 | ] | ||
10038 | |||
10039 | node | ||
10040 | [ | ||
10041 | id 2 | ||
10042 | graphics | ||
10043 | [ | ||
10044 | w 226.60000000000002 | ||
10045 | h 40 | ||
10046 | type "rectangle" | ||
10047 | fill "#FFFFFF" | ||
10048 | fill2 "#FFFFFF" | ||
10049 | outline "#000000" | ||
10050 | ] | ||
10051 | LabelGraphics | ||
10052 | [ | ||
10053 | text "Leaf literal FunctionType" | ||
10054 | outline "#000000" | ||
10055 | fill "#FFFFFF" | ||
10056 | fontSize 16 | ||
10057 | fontName "Monospace" | ||
10058 | autoSizePolicy "node_width" | ||
10059 | anchor "t" | ||
10060 | borderDistance 0.0 | ||
10061 | ] | ||
10062 | LabelGraphics | ||
10063 | [ | ||
10064 | text " | ||
10065 | FunctionType enum | ||
10066 | " | ||
10067 | fontSize 14 | ||
10068 | fontName "Consolas" | ||
10069 | alignment "left" | ||
10070 | anchor "tl" | ||
10071 | borderDistance 6 | ||
10072 | ] | ||
10073 | ] | ||
10074 | |||
10075 | node | ||
10076 | [ | ||
10077 | id 3 | ||
10078 | graphics | ||
10079 | [ | ||
10080 | w 361.90000000000003 | ||
10081 | h 54 | ||
10082 | type "rectangle" | ||
10083 | fill "#FFFFFF" | ||
10084 | fill2 "#FFFFFF" | ||
10085 | outline "#000000" | ||
10086 | ] | ||
10087 | LabelGraphics | ||
10088 | [ | ||
10089 | text "o 1" | ||
10090 | outline "#000000" | ||
10091 | fill "#FFFFFF" | ||
10092 | fontSize 16 | ||
10093 | fontName "Monospace" | ||
10094 | autoSizePolicy "node_width" | ||
10095 | anchor "t" | ||
10096 | borderDistance 0.0 | ||
10097 | ] | ||
10098 | LabelGraphics | ||
10099 | [ | ||
10100 | text " | ||
10101 | FunctionalArchitectureModel class DefinedPart | ||
10102 | FunctionalArchitectureModel class | ||
10103 | " | ||
10104 | fontSize 14 | ||
10105 | fontName "Consolas" | ||
10106 | alignment "left" | ||
10107 | anchor "tl" | ||
10108 | borderDistance 6 | ||
10109 | ] | ||
10110 | ] | ||
10111 | |||
10112 | node | ||
10113 | [ | ||
10114 | id 4 | ||
10115 | graphics | ||
10116 | [ | ||
10117 | w 41.800000000000004 | ||
10118 | h 26 | ||
10119 | type "rectangle" | ||
10120 | fill "#FFFFFF" | ||
10121 | fill2 "#FFFFFF" | ||
10122 | outline "#000000" | ||
10123 | ] | ||
10124 | LabelGraphics | ||
10125 | [ | ||
10126 | text "true" | ||
10127 | outline "#000000" | ||
10128 | fill "#FFFFFF" | ||
10129 | fontSize 16 | ||
10130 | fontName "Monospace" | ||
10131 | autoSizePolicy "node_width" | ||
10132 | anchor "t" | ||
10133 | borderDistance 0.0 | ||
10134 | ] | ||
10135 | LabelGraphics | ||
10136 | [ | ||
10137 | text " | ||
10138 | " | ||
10139 | fontSize 14 | ||
10140 | fontName "Consolas" | ||
10141 | alignment "left" | ||
10142 | anchor "tl" | ||
10143 | borderDistance 6 | ||
10144 | ] | ||
10145 | ] | ||
10146 | |||
10147 | node | ||
10148 | [ | ||
10149 | id 5 | ||
10150 | graphics | ||
10151 | [ | ||
10152 | w 50.6 | ||
10153 | h 26 | ||
10154 | type "rectangle" | ||
10155 | fill "#FFFFFF" | ||
10156 | fill2 "#FFFFFF" | ||
10157 | outline "#000000" | ||
10158 | ] | ||
10159 | LabelGraphics | ||
10160 | [ | ||
10161 | text "false" | ||
10162 | outline "#000000" | ||
10163 | fill "#FFFFFF" | ||
10164 | fontSize 16 | ||
10165 | fontName "Monospace" | ||
10166 | autoSizePolicy "node_width" | ||
10167 | anchor "t" | ||
10168 | borderDistance 0.0 | ||
10169 | ] | ||
10170 | LabelGraphics | ||
10171 | [ | ||
10172 | text " | ||
10173 | " | ||
10174 | fontSize 14 | ||
10175 | fontName "Consolas" | ||
10176 | alignment "left" | ||
10177 | anchor "tl" | ||
10178 | borderDistance 6 | ||
10179 | ] | ||
10180 | ] | ||
10181 | |||
10182 | node | ||
10183 | [ | ||
10184 | id 6 | ||
10185 | graphics | ||
10186 | [ | ||
10187 | w 192.50000000000003 | ||
10188 | h 54 | ||
10189 | type "rectangle" | ||
10190 | fill "#FFFFFF" | ||
10191 | fill2 "#FFFFFF" | ||
10192 | outline "#000000" | ||
10193 | ] | ||
10194 | LabelGraphics | ||
10195 | [ | ||
10196 | text "null" | ||
10197 | outline "#000000" | ||
10198 | fill "#FFFFFF" | ||
10199 | fontSize 16 | ||
10200 | fontName "Monospace" | ||
10201 | autoSizePolicy "node_width" | ||
10202 | anchor "t" | ||
10203 | borderDistance 0.0 | ||
10204 | ] | ||
10205 | LabelGraphics | ||
10206 | [ | ||
10207 | text " | ||
10208 | FunctionalElement class | ||
10209 | Function class | ||
10210 | " | ||
10211 | fontSize 14 | ||
10212 | fontName "Consolas" | ||
10213 | alignment "left" | ||
10214 | anchor "tl" | ||
10215 | borderDistance 6 | ||
10216 | ] | ||
10217 | ] | ||
10218 | |||
10219 | node | ||
10220 | [ | ||
10221 | id 7 | ||
10222 | graphics | ||
10223 | [ | ||
10224 | w 207.9 | ||
10225 | h 40 | ||
10226 | type "rectangle" | ||
10227 | fill "#FFFFFF" | ||
10228 | fill2 "#FFFFFF" | ||
10229 | outline "#000000" | ||
10230 | ] | ||
10231 | LabelGraphics | ||
10232 | [ | ||
10233 | text "null" | ||
10234 | outline "#000000" | ||
10235 | fill "#FFFFFF" | ||
10236 | fontSize 16 | ||
10237 | fontName "Monospace" | ||
10238 | autoSizePolicy "node_width" | ||
10239 | anchor "t" | ||
10240 | borderDistance 0.0 | ||
10241 | ] | ||
10242 | LabelGraphics | ||
10243 | [ | ||
10244 | text " | ||
10245 | FunctionalInterface class | ||
10246 | " | ||
10247 | fontSize 14 | ||
10248 | fontName "Consolas" | ||
10249 | alignment "left" | ||
10250 | anchor "tl" | ||
10251 | borderDistance 6 | ||
10252 | ] | ||
10253 | ] | ||
10254 | |||
10255 | node | ||
10256 | [ | ||
10257 | id 8 | ||
10258 | graphics | ||
10259 | [ | ||
10260 | w 184.8 | ||
10261 | h 54 | ||
10262 | type "rectangle" | ||
10263 | fill "#FFFFFF" | ||
10264 | fill2 "#FFFFFF" | ||
10265 | outline "#000000" | ||
10266 | ] | ||
10267 | LabelGraphics | ||
10268 | [ | ||
10269 | text "null" | ||
10270 | outline "#000000" | ||
10271 | fill "#FFFFFF" | ||
10272 | fontSize 16 | ||
10273 | fontName "Monospace" | ||
10274 | autoSizePolicy "node_width" | ||
10275 | anchor "t" | ||
10276 | borderDistance 0.0 | ||
10277 | ] | ||
10278 | LabelGraphics | ||
10279 | [ | ||
10280 | text " | ||
10281 | FunctionalOutput class | ||
10282 | FunctionalData class | ||
10283 | " | ||
10284 | fontSize 14 | ||
10285 | fontName "Consolas" | ||
10286 | alignment "left" | ||
10287 | anchor "tl" | ||
10288 | borderDistance 6 | ||
10289 | ] | ||
10290 | ] | ||
10291 | |||
10292 | node | ||
10293 | [ | ||
10294 | id 9 | ||
10295 | graphics | ||
10296 | [ | ||
10297 | w 177.10000000000002 | ||
10298 | h 40 | ||
10299 | type "rectangle" | ||
10300 | fill "#FFFFFF" | ||
10301 | fill2 "#FFFFFF" | ||
10302 | outline "#000000" | ||
10303 | ] | ||
10304 | LabelGraphics | ||
10305 | [ | ||
10306 | text "null" | ||
10307 | outline "#000000" | ||
10308 | fill "#FFFFFF" | ||
10309 | fontSize 16 | ||
10310 | fontName "Monospace" | ||
10311 | autoSizePolicy "node_width" | ||
10312 | anchor "t" | ||
10313 | borderDistance 0.0 | ||
10314 | ] | ||
10315 | LabelGraphics | ||
10316 | [ | ||
10317 | text " | ||
10318 | InformationLink class | ||
10319 | " | ||
10320 | fontSize 14 | ||
10321 | fontName "Consolas" | ||
10322 | alignment "left" | ||
10323 | anchor "tl" | ||
10324 | borderDistance 6 | ||
10325 | ] | ||
10326 | ] | ||
10327 | |||
10328 | node | ||
10329 | [ | ||
10330 | id 10 | ||
10331 | graphics | ||
10332 | [ | ||
10333 | w 177.10000000000002 | ||
10334 | h 54 | ||
10335 | type "rectangle" | ||
10336 | fill "#FFFFFF" | ||
10337 | fill2 "#FFFFFF" | ||
10338 | outline "#000000" | ||
10339 | ] | ||
10340 | LabelGraphics | ||
10341 | [ | ||
10342 | text "null" | ||
10343 | outline "#000000" | ||
10344 | fill "#FFFFFF" | ||
10345 | fontSize 16 | ||
10346 | fontName "Monospace" | ||
10347 | autoSizePolicy "node_width" | ||
10348 | anchor "t" | ||
10349 | borderDistance 0.0 | ||
10350 | ] | ||
10351 | LabelGraphics | ||
10352 | [ | ||
10353 | text " | ||
10354 | FunctionalInput class | ||
10355 | FunctionalData class | ||
10356 | " | ||
10357 | fontSize 14 | ||
10358 | fontName "Consolas" | ||
10359 | alignment "left" | ||
10360 | anchor "tl" | ||
10361 | borderDistance 6 | ||
10362 | ] | ||
10363 | ] | ||
10364 | |||
10365 | node | ||
10366 | [ | ||
10367 | id 11 | ||
10368 | graphics | ||
10369 | [ | ||
10370 | w 177.10000000000002 | ||
10371 | h 40 | ||
10372 | type "rectangle" | ||
10373 | fill "#FFFFFF" | ||
10374 | fill2 "#FFFFFF" | ||
10375 | outline "#000000" | ||
10376 | ] | ||
10377 | LabelGraphics | ||
10378 | [ | ||
10379 | text "null" | ||
10380 | outline "#000000" | ||
10381 | fill "#FFFFFF" | ||
10382 | fontSize 16 | ||
10383 | fontName "Monospace" | ||
10384 | autoSizePolicy "node_width" | ||
10385 | anchor "t" | ||
10386 | borderDistance 0.0 | ||
10387 | ] | ||
10388 | LabelGraphics | ||
10389 | [ | ||
10390 | text " | ||
10391 | InformationLink class | ||
10392 | " | ||
10393 | fontSize 14 | ||
10394 | fontName "Consolas" | ||
10395 | alignment "left" | ||
10396 | anchor "tl" | ||
10397 | borderDistance 6 | ||
10398 | ] | ||
10399 | ] | ||
10400 | |||
10401 | node | ||
10402 | [ | ||
10403 | id 12 | ||
10404 | graphics | ||
10405 | [ | ||
10406 | w 112.2 | ||
10407 | h 26 | ||
10408 | type "rectangle" | ||
10409 | fill "#FFFFFF" | ||
10410 | fill2 "#FFFFFF" | ||
10411 | outline "#000000" | ||
10412 | ] | ||
10413 | LabelGraphics | ||
10414 | [ | ||
10415 | text "New Integers" | ||
10416 | outline "#000000" | ||
10417 | fill "#FFFFFF" | ||
10418 | fontSize 16 | ||
10419 | fontName "Monospace" | ||
10420 | autoSizePolicy "node_width" | ||
10421 | anchor "t" | ||
10422 | borderDistance 0.0 | ||
10423 | ] | ||
10424 | LabelGraphics | ||
10425 | [ | ||
10426 | text " | ||
10427 | " | ||
10428 | fontSize 14 | ||
10429 | fontName "Consolas" | ||
10430 | alignment "left" | ||
10431 | anchor "tl" | ||
10432 | borderDistance 6 | ||
10433 | ] | ||
10434 | ] | ||
10435 | |||
10436 | node | ||
10437 | [ | ||
10438 | id 13 | ||
10439 | graphics | ||
10440 | [ | ||
10441 | w 85.80000000000001 | ||
10442 | h 26 | ||
10443 | type "rectangle" | ||
10444 | fill "#FFFFFF" | ||
10445 | fill2 "#FFFFFF" | ||
10446 | outline "#000000" | ||
10447 | ] | ||
10448 | LabelGraphics | ||
10449 | [ | ||
10450 | text "New Reals" | ||
10451 | outline "#000000" | ||
10452 | fill "#FFFFFF" | ||
10453 | fontSize 16 | ||
10454 | fontName "Monospace" | ||
10455 | autoSizePolicy "node_width" | ||
10456 | anchor "t" | ||
10457 | borderDistance 0.0 | ||
10458 | ] | ||
10459 | LabelGraphics | ||
10460 | [ | ||
10461 | text " | ||
10462 | " | ||
10463 | fontSize 14 | ||
10464 | fontName "Consolas" | ||
10465 | alignment "left" | ||
10466 | anchor "tl" | ||
10467 | borderDistance 6 | ||
10468 | ] | ||
10469 | ] | ||
10470 | |||
10471 | node | ||
10472 | [ | ||
10473 | id 14 | ||
10474 | graphics | ||
10475 | [ | ||
10476 | w 103.4 | ||
10477 | h 26 | ||
10478 | type "rectangle" | ||
10479 | fill "#FFFFFF" | ||
10480 | fill2 "#FFFFFF" | ||
10481 | outline "#000000" | ||
10482 | ] | ||
10483 | LabelGraphics | ||
10484 | [ | ||
10485 | text "New Strings" | ||
10486 | outline "#000000" | ||
10487 | fill "#FFFFFF" | ||
10488 | fontSize 16 | ||
10489 | fontName "Monospace" | ||
10490 | autoSizePolicy "node_width" | ||
10491 | anchor "t" | ||
10492 | borderDistance 0.0 | ||
10493 | ] | ||
10494 | LabelGraphics | ||
10495 | [ | ||
10496 | text " | ||
10497 | " | ||
10498 | fontSize 14 | ||
10499 | fontName "Consolas" | ||
10500 | alignment "left" | ||
10501 | anchor "tl" | ||
10502 | borderDistance 6 | ||
10503 | ] | ||
10504 | ] | ||
10505 | |||
10506 | node | ||
10507 | [ | ||
10508 | id 15 | ||
10509 | graphics | ||
10510 | [ | ||
10511 | w 103.4 | ||
10512 | h 26 | ||
10513 | type "rectangle" | ||
10514 | fill "#FFFFFF" | ||
10515 | fill2 "#FFFFFF" | ||
10516 | outline "#000000" | ||
10517 | ] | ||
10518 | LabelGraphics | ||
10519 | [ | ||
10520 | text "New Objects" | ||
10521 | outline "#000000" | ||
10522 | fill "#FFFFFF" | ||
10523 | fontSize 16 | ||
10524 | fontName "Monospace" | ||
10525 | autoSizePolicy "node_width" | ||
10526 | anchor "t" | ||
10527 | borderDistance 0.0 | ||
10528 | ] | ||
10529 | LabelGraphics | ||
10530 | [ | ||
10531 | text " | ||
10532 | " | ||
10533 | fontSize 14 | ||
10534 | fontName "Consolas" | ||
10535 | alignment "left" | ||
10536 | anchor "tl" | ||
10537 | borderDistance 6 | ||
10538 | ] | ||
10539 | ] | ||
10540 | edge | ||
10541 | [ | ||
10542 | source 6 | ||
10543 | target 7 | ||
10544 | graphics | ||
10545 | [ | ||
10546 | fill "#000000" | ||
10547 | width 3 | ||
10548 | targetArrow "standard" | ||
10549 | ] | ||
10550 | LabelGraphics | ||
10551 | [ | ||
10552 | text "interface reference FunctionalElement" | ||
10553 | fontSize 14 | ||
10554 | fontName "Consolas" | ||
10555 | configuration "AutoFlippingLabel" | ||
10556 | model "six_pos" | ||
10557 | position "thead" | ||
10558 | ] | ||
10559 | ] | ||
10560 | edge | ||
10561 | [ | ||
10562 | source 6 | ||
10563 | target 3 | ||
10564 | graphics | ||
10565 | [ | ||
10566 | fill "#000000" | ||
10567 | targetArrow "standard" | ||
10568 | ] | ||
10569 | LabelGraphics | ||
10570 | [ | ||
10571 | text "model reference FunctionalElement" | ||
10572 | fontSize 14 | ||
10573 | fontName "Consolas" | ||
10574 | configuration "AutoFlippingLabel" | ||
10575 | model "six_pos" | ||
10576 | position "thead" | ||
10577 | ] | ||
10578 | ] | ||
10579 | edge | ||
10580 | [ | ||
10581 | source 3 | ||
10582 | target 6 | ||
10583 | graphics | ||
10584 | [ | ||
10585 | fill "#000000" | ||
10586 | width 3 | ||
10587 | targetArrow "standard" | ||
10588 | ] | ||
10589 | LabelGraphics | ||
10590 | [ | ||
10591 | text "rootElements reference FunctionalArchitectureModel" | ||
10592 | fontSize 14 | ||
10593 | fontName "Consolas" | ||
10594 | configuration "AutoFlippingLabel" | ||
10595 | model "six_pos" | ||
10596 | position "thead" | ||
10597 | ] | ||
10598 | ] | ||
10599 | edge | ||
10600 | [ | ||
10601 | source 9 | ||
10602 | target 8 | ||
10603 | graphics | ||
10604 | [ | ||
10605 | fill "#000000" | ||
10606 | targetArrow "standard" | ||
10607 | ] | ||
10608 | LabelGraphics | ||
10609 | [ | ||
10610 | text "from reference InformationLink" | ||
10611 | fontSize 14 | ||
10612 | fontName "Consolas" | ||
10613 | configuration "AutoFlippingLabel" | ||
10614 | model "six_pos" | ||
10615 | position "thead" | ||
10616 | ] | ||
10617 | ] | ||
10618 | edge | ||
10619 | [ | ||
10620 | source 11 | ||
10621 | target 8 | ||
10622 | graphics | ||
10623 | [ | ||
10624 | fill "#000000" | ||
10625 | targetArrow "standard" | ||
10626 | ] | ||
10627 | LabelGraphics | ||
10628 | [ | ||
10629 | text "from reference InformationLink" | ||
10630 | fontSize 14 | ||
10631 | fontName "Consolas" | ||
10632 | configuration "AutoFlippingLabel" | ||
10633 | model "six_pos" | ||
10634 | position "thead" | ||
10635 | ] | ||
10636 | ] | ||
10637 | edge | ||
10638 | [ | ||
10639 | source 9 | ||
10640 | target 10 | ||
10641 | graphics | ||
10642 | [ | ||
10643 | fill "#000000" | ||
10644 | targetArrow "standard" | ||
10645 | ] | ||
10646 | LabelGraphics | ||
10647 | [ | ||
10648 | text "to reference InformationLink" | ||
10649 | fontSize 14 | ||
10650 | fontName "Consolas" | ||
10651 | configuration "AutoFlippingLabel" | ||
10652 | model "six_pos" | ||
10653 | position "thead" | ||
10654 | ] | ||
10655 | ] | ||
10656 | edge | ||
10657 | [ | ||
10658 | source 11 | ||
10659 | target 10 | ||
10660 | graphics | ||
10661 | [ | ||
10662 | fill "#000000" | ||
10663 | targetArrow "standard" | ||
10664 | ] | ||
10665 | LabelGraphics | ||
10666 | [ | ||
10667 | text "to reference InformationLink" | ||
10668 | fontSize 14 | ||
10669 | fontName "Consolas" | ||
10670 | configuration "AutoFlippingLabel" | ||
10671 | model "six_pos" | ||
10672 | position "thead" | ||
10673 | ] | ||
10674 | ] | ||
10675 | edge | ||
10676 | [ | ||
10677 | source 7 | ||
10678 | target 8 | ||
10679 | graphics | ||
10680 | [ | ||
10681 | fill "#000000" | ||
10682 | width 3 | ||
10683 | targetArrow "standard" | ||
10684 | ] | ||
10685 | LabelGraphics | ||
10686 | [ | ||
10687 | text "data reference FunctionalInterface" | ||
10688 | fontSize 14 | ||
10689 | fontName "Consolas" | ||
10690 | configuration "AutoFlippingLabel" | ||
10691 | model "six_pos" | ||
10692 | position "thead" | ||
10693 | ] | ||
10694 | ] | ||
10695 | edge | ||
10696 | [ | ||
10697 | source 7 | ||
10698 | target 10 | ||
10699 | graphics | ||
10700 | [ | ||
10701 | fill "#000000" | ||
10702 | width 3 | ||
10703 | targetArrow "standard" | ||
10704 | ] | ||
10705 | LabelGraphics | ||
10706 | [ | ||
10707 | text "data reference FunctionalInterface" | ||
10708 | fontSize 14 | ||
10709 | fontName "Consolas" | ||
10710 | configuration "AutoFlippingLabel" | ||
10711 | model "six_pos" | ||
10712 | position "thead" | ||
10713 | ] | ||
10714 | ] | ||
10715 | edge | ||
10716 | [ | ||
10717 | source 7 | ||
10718 | target 6 | ||
10719 | graphics | ||
10720 | [ | ||
10721 | fill "#000000" | ||
10722 | targetArrow "standard" | ||
10723 | ] | ||
10724 | LabelGraphics | ||
10725 | [ | ||
10726 | text "element reference FunctionalInterface" | ||
10727 | fontSize 14 | ||
10728 | fontName "Consolas" | ||
10729 | configuration "AutoFlippingLabel" | ||
10730 | model "six_pos" | ||
10731 | position "thead" | ||
10732 | ] | ||
10733 | ] | ||
10734 | edge | ||
10735 | [ | ||
10736 | source 10 | ||
10737 | target 9 | ||
10738 | graphics | ||
10739 | [ | ||
10740 | fill "#000000" | ||
10741 | targetArrow "standard" | ||
10742 | ] | ||
10743 | LabelGraphics | ||
10744 | [ | ||
10745 | text "IncomingLinks reference FunctionalInput" | ||
10746 | fontSize 14 | ||
10747 | fontName "Consolas" | ||
10748 | configuration "AutoFlippingLabel" | ||
10749 | model "six_pos" | ||
10750 | position "thead" | ||
10751 | ] | ||
10752 | ] | ||
10753 | edge | ||
10754 | [ | ||
10755 | source 10 | ||
10756 | target 11 | ||
10757 | graphics | ||
10758 | [ | ||
10759 | fill "#000000" | ||
10760 | targetArrow "standard" | ||
10761 | ] | ||
10762 | LabelGraphics | ||
10763 | [ | ||
10764 | text "IncomingLinks reference FunctionalInput" | ||
10765 | fontSize 14 | ||
10766 | fontName "Consolas" | ||
10767 | configuration "AutoFlippingLabel" | ||
10768 | model "six_pos" | ||
10769 | position "thead" | ||
10770 | ] | ||
10771 | ] | ||
10772 | edge | ||
10773 | [ | ||
10774 | source 8 | ||
10775 | target 9 | ||
10776 | graphics | ||
10777 | [ | ||
10778 | fill "#000000" | ||
10779 | width 3 | ||
10780 | targetArrow "standard" | ||
10781 | ] | ||
10782 | LabelGraphics | ||
10783 | [ | ||
10784 | text "outgoingLinks reference FunctionalOutput" | ||
10785 | fontSize 14 | ||
10786 | fontName "Consolas" | ||
10787 | configuration "AutoFlippingLabel" | ||
10788 | model "six_pos" | ||
10789 | position "thead" | ||
10790 | ] | ||
10791 | ] | ||
10792 | edge | ||
10793 | [ | ||
10794 | source 8 | ||
10795 | target 11 | ||
10796 | graphics | ||
10797 | [ | ||
10798 | fill "#000000" | ||
10799 | width 3 | ||
10800 | targetArrow "standard" | ||
10801 | ] | ||
10802 | LabelGraphics | ||
10803 | [ | ||
10804 | text "outgoingLinks reference FunctionalOutput" | ||
10805 | fontSize 14 | ||
10806 | fontName "Consolas" | ||
10807 | configuration "AutoFlippingLabel" | ||
10808 | model "six_pos" | ||
10809 | position "thead" | ||
10810 | ] | ||
10811 | ] | ||
10812 | edge | ||
10813 | [ | ||
10814 | source 8 | ||
10815 | target 7 | ||
10816 | graphics | ||
10817 | [ | ||
10818 | fill "#000000" | ||
10819 | targetArrow "standard" | ||
10820 | ] | ||
10821 | LabelGraphics | ||
10822 | [ | ||
10823 | text "interface reference FunctionalData" | ||
10824 | fontSize 14 | ||
10825 | fontName "Consolas" | ||
10826 | configuration "AutoFlippingLabel" | ||
10827 | model "six_pos" | ||
10828 | position "thead" | ||
10829 | ] | ||
10830 | ] | ||
10831 | edge | ||
10832 | [ | ||
10833 | source 10 | ||
10834 | target 7 | ||
10835 | graphics | ||
10836 | [ | ||
10837 | fill "#000000" | ||
10838 | targetArrow "standard" | ||
10839 | ] | ||
10840 | LabelGraphics | ||
10841 | [ | ||
10842 | text "interface reference FunctionalData" | ||
10843 | fontSize 14 | ||
10844 | fontName "Consolas" | ||
10845 | configuration "AutoFlippingLabel" | ||
10846 | model "six_pos" | ||
10847 | position "thead" | ||
10848 | ] | ||
10849 | ] | ||
10850 | edge | ||
10851 | [ | ||
10852 | source 6 | ||
10853 | target 0 | ||
10854 | graphics | ||
10855 | [ | ||
10856 | fill "#000000" | ||
10857 | targetArrow "standard" | ||
10858 | ] | ||
10859 | LabelGraphics | ||
10860 | [ | ||
10861 | text "type attribute Function" | ||
10862 | fontSize 14 | ||
10863 | fontName "Consolas" | ||
10864 | configuration "AutoFlippingLabel" | ||
10865 | model "six_pos" | ||
10866 | position "thead" | ||
10867 | ] | ||
10868 | ] | ||
10869 | ] | ||
10870 | graph | ||
10871 | [ | ||
10872 | node | ||
10873 | [ | ||
10874 | id 0 | ||
10875 | graphics | ||
10876 | [ | ||
10877 | w 226.60000000000002 | ||
10878 | h 40 | ||
10879 | type "rectangle" | ||
10880 | fill "#FFFFFF" | ||
10881 | fill2 "#FFFFFF" | ||
10882 | outline "#000000" | ||
10883 | ] | ||
10884 | LabelGraphics | ||
10885 | [ | ||
10886 | text "Root literal FunctionType" | ||
10887 | outline "#000000" | ||
10888 | fill "#FFFFFF" | ||
10889 | fontSize 16 | ||
10890 | fontName "Monospace" | ||
10891 | autoSizePolicy "node_width" | ||
10892 | anchor "t" | ||
10893 | borderDistance 0.0 | ||
10894 | ] | ||
10895 | LabelGraphics | ||
10896 | [ | ||
10897 | text " | ||
10898 | FunctionType enum | ||
10899 | " | ||
10900 | fontSize 14 | ||
10901 | fontName "Consolas" | ||
10902 | alignment "left" | ||
10903 | anchor "tl" | ||
10904 | borderDistance 6 | ||
10905 | ] | ||
10906 | ] | ||
10907 | |||
10908 | node | ||
10909 | [ | ||
10910 | id 1 | ||
10911 | graphics | ||
10912 | [ | ||
10913 | w 297.0 | ||
10914 | h 40 | ||
10915 | type "rectangle" | ||
10916 | fill "#FFFFFF" | ||
10917 | fill2 "#FFFFFF" | ||
10918 | outline "#000000" | ||
10919 | ] | ||
10920 | LabelGraphics | ||
10921 | [ | ||
10922 | text "Intermediate literal FunctionType" | ||
10923 | outline "#000000" | ||
10924 | fill "#FFFFFF" | ||
10925 | fontSize 16 | ||
10926 | fontName "Monospace" | ||
10927 | autoSizePolicy "node_width" | ||
10928 | anchor "t" | ||
10929 | borderDistance 0.0 | ||
10930 | ] | ||
10931 | LabelGraphics | ||
10932 | [ | ||
10933 | text " | ||
10934 | FunctionType enum | ||
10935 | " | ||
10936 | fontSize 14 | ||
10937 | fontName "Consolas" | ||
10938 | alignment "left" | ||
10939 | anchor "tl" | ||
10940 | borderDistance 6 | ||
10941 | ] | ||
10942 | ] | ||
10943 | |||
10944 | node | ||
10945 | [ | ||
10946 | id 2 | ||
10947 | graphics | ||
10948 | [ | ||
10949 | w 226.60000000000002 | ||
10950 | h 40 | ||
10951 | type "rectangle" | ||
10952 | fill "#FFFFFF" | ||
10953 | fill2 "#FFFFFF" | ||
10954 | outline "#000000" | ||
10955 | ] | ||
10956 | LabelGraphics | ||
10957 | [ | ||
10958 | text "Leaf literal FunctionType" | ||
10959 | outline "#000000" | ||
10960 | fill "#FFFFFF" | ||
10961 | fontSize 16 | ||
10962 | fontName "Monospace" | ||
10963 | autoSizePolicy "node_width" | ||
10964 | anchor "t" | ||
10965 | borderDistance 0.0 | ||
10966 | ] | ||
10967 | LabelGraphics | ||
10968 | [ | ||
10969 | text " | ||
10970 | FunctionType enum | ||
10971 | " | ||
10972 | fontSize 14 | ||
10973 | fontName "Consolas" | ||
10974 | alignment "left" | ||
10975 | anchor "tl" | ||
10976 | borderDistance 6 | ||
10977 | ] | ||
10978 | ] | ||
10979 | |||
10980 | node | ||
10981 | [ | ||
10982 | id 3 | ||
10983 | graphics | ||
10984 | [ | ||
10985 | w 361.90000000000003 | ||
10986 | h 54 | ||
10987 | type "rectangle" | ||
10988 | fill "#FFFFFF" | ||
10989 | fill2 "#FFFFFF" | ||
10990 | outline "#000000" | ||
10991 | ] | ||
10992 | LabelGraphics | ||
10993 | [ | ||
10994 | text "o 1" | ||
10995 | outline "#000000" | ||
10996 | fill "#FFFFFF" | ||
10997 | fontSize 16 | ||
10998 | fontName "Monospace" | ||
10999 | autoSizePolicy "node_width" | ||
11000 | anchor "t" | ||
11001 | borderDistance 0.0 | ||
11002 | ] | ||
11003 | LabelGraphics | ||
11004 | [ | ||
11005 | text " | ||
11006 | FunctionalArchitectureModel class DefinedPart | ||
11007 | FunctionalArchitectureModel class | ||
11008 | " | ||
11009 | fontSize 14 | ||
11010 | fontName "Consolas" | ||
11011 | alignment "left" | ||
11012 | anchor "tl" | ||
11013 | borderDistance 6 | ||
11014 | ] | ||
11015 | ] | ||
11016 | |||
11017 | node | ||
11018 | [ | ||
11019 | id 4 | ||
11020 | graphics | ||
11021 | [ | ||
11022 | w 41.800000000000004 | ||
11023 | h 26 | ||
11024 | type "rectangle" | ||
11025 | fill "#FFFFFF" | ||
11026 | fill2 "#FFFFFF" | ||
11027 | outline "#000000" | ||
11028 | ] | ||
11029 | LabelGraphics | ||
11030 | [ | ||
11031 | text "true" | ||
11032 | outline "#000000" | ||
11033 | fill "#FFFFFF" | ||
11034 | fontSize 16 | ||
11035 | fontName "Monospace" | ||
11036 | autoSizePolicy "node_width" | ||
11037 | anchor "t" | ||
11038 | borderDistance 0.0 | ||
11039 | ] | ||
11040 | LabelGraphics | ||
11041 | [ | ||
11042 | text " | ||
11043 | " | ||
11044 | fontSize 14 | ||
11045 | fontName "Consolas" | ||
11046 | alignment "left" | ||
11047 | anchor "tl" | ||
11048 | borderDistance 6 | ||
11049 | ] | ||
11050 | ] | ||
11051 | |||
11052 | node | ||
11053 | [ | ||
11054 | id 5 | ||
11055 | graphics | ||
11056 | [ | ||
11057 | w 50.6 | ||
11058 | h 26 | ||
11059 | type "rectangle" | ||
11060 | fill "#FFFFFF" | ||
11061 | fill2 "#FFFFFF" | ||
11062 | outline "#000000" | ||
11063 | ] | ||
11064 | LabelGraphics | ||
11065 | [ | ||
11066 | text "false" | ||
11067 | outline "#000000" | ||
11068 | fill "#FFFFFF" | ||
11069 | fontSize 16 | ||
11070 | fontName "Monospace" | ||
11071 | autoSizePolicy "node_width" | ||
11072 | anchor "t" | ||
11073 | borderDistance 0.0 | ||
11074 | ] | ||
11075 | LabelGraphics | ||
11076 | [ | ||
11077 | text " | ||
11078 | " | ||
11079 | fontSize 14 | ||
11080 | fontName "Consolas" | ||
11081 | alignment "left" | ||
11082 | anchor "tl" | ||
11083 | borderDistance 6 | ||
11084 | ] | ||
11085 | ] | ||
11086 | |||
11087 | node | ||
11088 | [ | ||
11089 | id 6 | ||
11090 | graphics | ||
11091 | [ | ||
11092 | w 192.50000000000003 | ||
11093 | h 54 | ||
11094 | type "rectangle" | ||
11095 | fill "#FFFFFF" | ||
11096 | fill2 "#FFFFFF" | ||
11097 | outline "#000000" | ||
11098 | ] | ||
11099 | LabelGraphics | ||
11100 | [ | ||
11101 | text "null" | ||
11102 | outline "#000000" | ||
11103 | fill "#FFFFFF" | ||
11104 | fontSize 16 | ||
11105 | fontName "Monospace" | ||
11106 | autoSizePolicy "node_width" | ||
11107 | anchor "t" | ||
11108 | borderDistance 0.0 | ||
11109 | ] | ||
11110 | LabelGraphics | ||
11111 | [ | ||
11112 | text " | ||
11113 | FunctionalElement class | ||
11114 | Function class | ||
11115 | " | ||
11116 | fontSize 14 | ||
11117 | fontName "Consolas" | ||
11118 | alignment "left" | ||
11119 | anchor "tl" | ||
11120 | borderDistance 6 | ||
11121 | ] | ||
11122 | ] | ||
11123 | |||
11124 | node | ||
11125 | [ | ||
11126 | id 7 | ||
11127 | graphics | ||
11128 | [ | ||
11129 | w 207.9 | ||
11130 | h 40 | ||
11131 | type "rectangle" | ||
11132 | fill "#FFFFFF" | ||
11133 | fill2 "#FFFFFF" | ||
11134 | outline "#000000" | ||
11135 | ] | ||
11136 | LabelGraphics | ||
11137 | [ | ||
11138 | text "null" | ||
11139 | outline "#000000" | ||
11140 | fill "#FFFFFF" | ||
11141 | fontSize 16 | ||
11142 | fontName "Monospace" | ||
11143 | autoSizePolicy "node_width" | ||
11144 | anchor "t" | ||
11145 | borderDistance 0.0 | ||
11146 | ] | ||
11147 | LabelGraphics | ||
11148 | [ | ||
11149 | text " | ||
11150 | FunctionalInterface class | ||
11151 | " | ||
11152 | fontSize 14 | ||
11153 | fontName "Consolas" | ||
11154 | alignment "left" | ||
11155 | anchor "tl" | ||
11156 | borderDistance 6 | ||
11157 | ] | ||
11158 | ] | ||
11159 | |||
11160 | node | ||
11161 | [ | ||
11162 | id 8 | ||
11163 | graphics | ||
11164 | [ | ||
11165 | w 184.8 | ||
11166 | h 54 | ||
11167 | type "rectangle" | ||
11168 | fill "#FFFFFF" | ||
11169 | fill2 "#FFFFFF" | ||
11170 | outline "#000000" | ||
11171 | ] | ||
11172 | LabelGraphics | ||
11173 | [ | ||
11174 | text "null" | ||
11175 | outline "#000000" | ||
11176 | fill "#FFFFFF" | ||
11177 | fontSize 16 | ||
11178 | fontName "Monospace" | ||
11179 | autoSizePolicy "node_width" | ||
11180 | anchor "t" | ||
11181 | borderDistance 0.0 | ||
11182 | ] | ||
11183 | LabelGraphics | ||
11184 | [ | ||
11185 | text " | ||
11186 | FunctionalOutput class | ||
11187 | FunctionalData class | ||
11188 | " | ||
11189 | fontSize 14 | ||
11190 | fontName "Consolas" | ||
11191 | alignment "left" | ||
11192 | anchor "tl" | ||
11193 | borderDistance 6 | ||
11194 | ] | ||
11195 | ] | ||
11196 | |||
11197 | node | ||
11198 | [ | ||
11199 | id 9 | ||
11200 | graphics | ||
11201 | [ | ||
11202 | w 161.70000000000002 | ||
11203 | h 40 | ||
11204 | type "rectangle" | ||
11205 | fill "#FFFFFF" | ||
11206 | fill2 "#FFFFFF" | ||
11207 | outline "#000000" | ||
11208 | ] | ||
11209 | LabelGraphics | ||
11210 | [ | ||
11211 | text "null" | ||
11212 | outline "#000000" | ||
11213 | fill "#FFFFFF" | ||
11214 | fontSize 16 | ||
11215 | fontName "Monospace" | ||
11216 | autoSizePolicy "node_width" | ||
11217 | anchor "t" | ||
11218 | borderDistance 0.0 | ||
11219 | ] | ||
11220 | LabelGraphics | ||
11221 | [ | ||
11222 | text " | ||
11223 | FAMTerminator class | ||
11224 | " | ||
11225 | fontSize 14 | ||
11226 | fontName "Consolas" | ||
11227 | alignment "left" | ||
11228 | anchor "tl" | ||
11229 | borderDistance 6 | ||
11230 | ] | ||
11231 | ] | ||
11232 | |||
11233 | node | ||
11234 | [ | ||
11235 | id 10 | ||
11236 | graphics | ||
11237 | [ | ||
11238 | w 184.8 | ||
11239 | h 54 | ||
11240 | type "rectangle" | ||
11241 | fill "#FFFFFF" | ||
11242 | fill2 "#FFFFFF" | ||
11243 | outline "#000000" | ||
11244 | ] | ||
11245 | LabelGraphics | ||
11246 | [ | ||
11247 | text "null" | ||
11248 | outline "#000000" | ||
11249 | fill "#FFFFFF" | ||
11250 | fontSize 16 | ||
11251 | fontName "Monospace" | ||
11252 | autoSizePolicy "node_width" | ||
11253 | anchor "t" | ||
11254 | borderDistance 0.0 | ||
11255 | ] | ||
11256 | LabelGraphics | ||
11257 | [ | ||
11258 | text " | ||
11259 | FunctionalOutput class | ||
11260 | FunctionalData class | ||
11261 | " | ||
11262 | fontSize 14 | ||
11263 | fontName "Consolas" | ||
11264 | alignment "left" | ||
11265 | anchor "tl" | ||
11266 | borderDistance 6 | ||
11267 | ] | ||
11268 | ] | ||
11269 | |||
11270 | node | ||
11271 | [ | ||
11272 | id 11 | ||
11273 | graphics | ||
11274 | [ | ||
11275 | w 161.70000000000002 | ||
11276 | h 40 | ||
11277 | type "rectangle" | ||
11278 | fill "#FFFFFF" | ||
11279 | fill2 "#FFFFFF" | ||
11280 | outline "#000000" | ||
11281 | ] | ||
11282 | LabelGraphics | ||
11283 | [ | ||
11284 | text "null" | ||
11285 | outline "#000000" | ||
11286 | fill "#FFFFFF" | ||
11287 | fontSize 16 | ||
11288 | fontName "Monospace" | ||
11289 | autoSizePolicy "node_width" | ||
11290 | anchor "t" | ||
11291 | borderDistance 0.0 | ||
11292 | ] | ||
11293 | LabelGraphics | ||
11294 | [ | ||
11295 | text " | ||
11296 | FAMTerminator class | ||
11297 | " | ||
11298 | fontSize 14 | ||
11299 | fontName "Consolas" | ||
11300 | alignment "left" | ||
11301 | anchor "tl" | ||
11302 | borderDistance 6 | ||
11303 | ] | ||
11304 | ] | ||
11305 | |||
11306 | node | ||
11307 | [ | ||
11308 | id 12 | ||
11309 | graphics | ||
11310 | [ | ||
11311 | w 112.2 | ||
11312 | h 26 | ||
11313 | type "rectangle" | ||
11314 | fill "#FFFFFF" | ||
11315 | fill2 "#FFFFFF" | ||
11316 | outline "#000000" | ||
11317 | ] | ||
11318 | LabelGraphics | ||
11319 | [ | ||
11320 | text "New Integers" | ||
11321 | outline "#000000" | ||
11322 | fill "#FFFFFF" | ||
11323 | fontSize 16 | ||
11324 | fontName "Monospace" | ||
11325 | autoSizePolicy "node_width" | ||
11326 | anchor "t" | ||
11327 | borderDistance 0.0 | ||
11328 | ] | ||
11329 | LabelGraphics | ||
11330 | [ | ||
11331 | text " | ||
11332 | " | ||
11333 | fontSize 14 | ||
11334 | fontName "Consolas" | ||
11335 | alignment "left" | ||
11336 | anchor "tl" | ||
11337 | borderDistance 6 | ||
11338 | ] | ||
11339 | ] | ||
11340 | |||
11341 | node | ||
11342 | [ | ||
11343 | id 13 | ||
11344 | graphics | ||
11345 | [ | ||
11346 | w 85.80000000000001 | ||
11347 | h 26 | ||
11348 | type "rectangle" | ||
11349 | fill "#FFFFFF" | ||
11350 | fill2 "#FFFFFF" | ||
11351 | outline "#000000" | ||
11352 | ] | ||
11353 | LabelGraphics | ||
11354 | [ | ||
11355 | text "New Reals" | ||
11356 | outline "#000000" | ||
11357 | fill "#FFFFFF" | ||
11358 | fontSize 16 | ||
11359 | fontName "Monospace" | ||
11360 | autoSizePolicy "node_width" | ||
11361 | anchor "t" | ||
11362 | borderDistance 0.0 | ||
11363 | ] | ||
11364 | LabelGraphics | ||
11365 | [ | ||
11366 | text " | ||
11367 | " | ||
11368 | fontSize 14 | ||
11369 | fontName "Consolas" | ||
11370 | alignment "left" | ||
11371 | anchor "tl" | ||
11372 | borderDistance 6 | ||
11373 | ] | ||
11374 | ] | ||
11375 | |||
11376 | node | ||
11377 | [ | ||
11378 | id 14 | ||
11379 | graphics | ||
11380 | [ | ||
11381 | w 103.4 | ||
11382 | h 26 | ||
11383 | type "rectangle" | ||
11384 | fill "#FFFFFF" | ||
11385 | fill2 "#FFFFFF" | ||
11386 | outline "#000000" | ||
11387 | ] | ||
11388 | LabelGraphics | ||
11389 | [ | ||
11390 | text "New Strings" | ||
11391 | outline "#000000" | ||
11392 | fill "#FFFFFF" | ||
11393 | fontSize 16 | ||
11394 | fontName "Monospace" | ||
11395 | autoSizePolicy "node_width" | ||
11396 | anchor "t" | ||
11397 | borderDistance 0.0 | ||
11398 | ] | ||
11399 | LabelGraphics | ||
11400 | [ | ||
11401 | text " | ||
11402 | " | ||
11403 | fontSize 14 | ||
11404 | fontName "Consolas" | ||
11405 | alignment "left" | ||
11406 | anchor "tl" | ||
11407 | borderDistance 6 | ||
11408 | ] | ||
11409 | ] | ||
11410 | |||
11411 | node | ||
11412 | [ | ||
11413 | id 15 | ||
11414 | graphics | ||
11415 | [ | ||
11416 | w 103.4 | ||
11417 | h 26 | ||
11418 | type "rectangle" | ||
11419 | fill "#FFFFFF" | ||
11420 | fill2 "#FFFFFF" | ||
11421 | outline "#000000" | ||
11422 | ] | ||
11423 | LabelGraphics | ||
11424 | [ | ||
11425 | text "New Objects" | ||
11426 | outline "#000000" | ||
11427 | fill "#FFFFFF" | ||
11428 | fontSize 16 | ||
11429 | fontName "Monospace" | ||
11430 | autoSizePolicy "node_width" | ||
11431 | anchor "t" | ||
11432 | borderDistance 0.0 | ||
11433 | ] | ||
11434 | LabelGraphics | ||
11435 | [ | ||
11436 | text " | ||
11437 | " | ||
11438 | fontSize 14 | ||
11439 | fontName "Consolas" | ||
11440 | alignment "left" | ||
11441 | anchor "tl" | ||
11442 | borderDistance 6 | ||
11443 | ] | ||
11444 | ] | ||
11445 | edge | ||
11446 | [ | ||
11447 | source 6 | ||
11448 | target 7 | ||
11449 | graphics | ||
11450 | [ | ||
11451 | fill "#000000" | ||
11452 | width 3 | ||
11453 | targetArrow "standard" | ||
11454 | ] | ||
11455 | LabelGraphics | ||
11456 | [ | ||
11457 | text "interface reference FunctionalElement" | ||
11458 | fontSize 14 | ||
11459 | fontName "Consolas" | ||
11460 | configuration "AutoFlippingLabel" | ||
11461 | model "six_pos" | ||
11462 | position "thead" | ||
11463 | ] | ||
11464 | ] | ||
11465 | edge | ||
11466 | [ | ||
11467 | source 6 | ||
11468 | target 3 | ||
11469 | graphics | ||
11470 | [ | ||
11471 | fill "#000000" | ||
11472 | targetArrow "standard" | ||
11473 | ] | ||
11474 | LabelGraphics | ||
11475 | [ | ||
11476 | text "model reference FunctionalElement" | ||
11477 | fontSize 14 | ||
11478 | fontName "Consolas" | ||
11479 | configuration "AutoFlippingLabel" | ||
11480 | model "six_pos" | ||
11481 | position "thead" | ||
11482 | ] | ||
11483 | ] | ||
11484 | edge | ||
11485 | [ | ||
11486 | source 3 | ||
11487 | target 6 | ||
11488 | graphics | ||
11489 | [ | ||
11490 | fill "#000000" | ||
11491 | width 3 | ||
11492 | targetArrow "standard" | ||
11493 | ] | ||
11494 | LabelGraphics | ||
11495 | [ | ||
11496 | text "rootElements reference FunctionalArchitectureModel" | ||
11497 | fontSize 14 | ||
11498 | fontName "Consolas" | ||
11499 | configuration "AutoFlippingLabel" | ||
11500 | model "six_pos" | ||
11501 | position "thead" | ||
11502 | ] | ||
11503 | ] | ||
11504 | edge | ||
11505 | [ | ||
11506 | source 9 | ||
11507 | target 8 | ||
11508 | graphics | ||
11509 | [ | ||
11510 | fill "#000000" | ||
11511 | targetArrow "standard" | ||
11512 | ] | ||
11513 | LabelGraphics | ||
11514 | [ | ||
11515 | text "data reference FAMTerminator" | ||
11516 | fontSize 14 | ||
11517 | fontName "Consolas" | ||
11518 | configuration "AutoFlippingLabel" | ||
11519 | model "six_pos" | ||
11520 | position "thead" | ||
11521 | ] | ||
11522 | ] | ||
11523 | edge | ||
11524 | [ | ||
11525 | source 11 | ||
11526 | target 10 | ||
11527 | graphics | ||
11528 | [ | ||
11529 | fill "#000000" | ||
11530 | targetArrow "standard" | ||
11531 | ] | ||
11532 | LabelGraphics | ||
11533 | [ | ||
11534 | text "data reference FAMTerminator" | ||
11535 | fontSize 14 | ||
11536 | fontName "Consolas" | ||
11537 | configuration "AutoFlippingLabel" | ||
11538 | model "six_pos" | ||
11539 | position "thead" | ||
11540 | ] | ||
11541 | ] | ||
11542 | edge | ||
11543 | [ | ||
11544 | source 7 | ||
11545 | target 8 | ||
11546 | graphics | ||
11547 | [ | ||
11548 | fill "#000000" | ||
11549 | width 3 | ||
11550 | targetArrow "standard" | ||
11551 | ] | ||
11552 | LabelGraphics | ||
11553 | [ | ||
11554 | text "data reference FunctionalInterface" | ||
11555 | fontSize 14 | ||
11556 | fontName "Consolas" | ||
11557 | configuration "AutoFlippingLabel" | ||
11558 | model "six_pos" | ||
11559 | position "thead" | ||
11560 | ] | ||
11561 | ] | ||
11562 | edge | ||
11563 | [ | ||
11564 | source 7 | ||
11565 | target 10 | ||
11566 | graphics | ||
11567 | [ | ||
11568 | fill "#000000" | ||
11569 | width 3 | ||
11570 | targetArrow "standard" | ||
11571 | ] | ||
11572 | LabelGraphics | ||
11573 | [ | ||
11574 | text "data reference FunctionalInterface" | ||
11575 | fontSize 14 | ||
11576 | fontName "Consolas" | ||
11577 | configuration "AutoFlippingLabel" | ||
11578 | model "six_pos" | ||
11579 | position "thead" | ||
11580 | ] | ||
11581 | ] | ||
11582 | edge | ||
11583 | [ | ||
11584 | source 7 | ||
11585 | target 6 | ||
11586 | graphics | ||
11587 | [ | ||
11588 | fill "#000000" | ||
11589 | targetArrow "standard" | ||
11590 | ] | ||
11591 | LabelGraphics | ||
11592 | [ | ||
11593 | text "element reference FunctionalInterface" | ||
11594 | fontSize 14 | ||
11595 | fontName "Consolas" | ||
11596 | configuration "AutoFlippingLabel" | ||
11597 | model "six_pos" | ||
11598 | position "thead" | ||
11599 | ] | ||
11600 | ] | ||
11601 | edge | ||
11602 | [ | ||
11603 | source 8 | ||
11604 | target 9 | ||
11605 | graphics | ||
11606 | [ | ||
11607 | fill "#000000" | ||
11608 | width 3 | ||
11609 | targetArrow "standard" | ||
11610 | ] | ||
11611 | LabelGraphics | ||
11612 | [ | ||
11613 | text "terminator reference FunctionalData" | ||
11614 | fontSize 14 | ||
11615 | fontName "Consolas" | ||
11616 | configuration "AutoFlippingLabel" | ||
11617 | model "six_pos" | ||
11618 | position "thead" | ||
11619 | ] | ||
11620 | ] | ||
11621 | edge | ||
11622 | [ | ||
11623 | source 10 | ||
11624 | target 11 | ||
11625 | graphics | ||
11626 | [ | ||
11627 | fill "#000000" | ||
11628 | width 3 | ||
11629 | targetArrow "standard" | ||
11630 | ] | ||
11631 | LabelGraphics | ||
11632 | [ | ||
11633 | text "terminator reference FunctionalData" | ||
11634 | fontSize 14 | ||
11635 | fontName "Consolas" | ||
11636 | configuration "AutoFlippingLabel" | ||
11637 | model "six_pos" | ||
11638 | position "thead" | ||
11639 | ] | ||
11640 | ] | ||
11641 | edge | ||
11642 | [ | ||
11643 | source 8 | ||
11644 | target 7 | ||
11645 | graphics | ||
11646 | [ | ||
11647 | fill "#000000" | ||
11648 | targetArrow "standard" | ||
11649 | ] | ||
11650 | LabelGraphics | ||
11651 | [ | ||
11652 | text "interface reference FunctionalData" | ||
11653 | fontSize 14 | ||
11654 | fontName "Consolas" | ||
11655 | configuration "AutoFlippingLabel" | ||
11656 | model "six_pos" | ||
11657 | position "thead" | ||
11658 | ] | ||
11659 | ] | ||
11660 | edge | ||
11661 | [ | ||
11662 | source 10 | ||
11663 | target 7 | ||
11664 | graphics | ||
11665 | [ | ||
11666 | fill "#000000" | ||
11667 | targetArrow "standard" | ||
11668 | ] | ||
11669 | LabelGraphics | ||
11670 | [ | ||
11671 | text "interface reference FunctionalData" | ||
11672 | fontSize 14 | ||
11673 | fontName "Consolas" | ||
11674 | configuration "AutoFlippingLabel" | ||
11675 | model "six_pos" | ||
11676 | position "thead" | ||
11677 | ] | ||
11678 | ] | ||
11679 | edge | ||
11680 | [ | ||
11681 | source 6 | ||
11682 | target 0 | ||
11683 | graphics | ||
11684 | [ | ||
11685 | fill "#000000" | ||
11686 | targetArrow "standard" | ||
11687 | ] | ||
11688 | LabelGraphics | ||
11689 | [ | ||
11690 | text "type attribute Function" | ||
11691 | fontSize 14 | ||
11692 | fontName "Consolas" | ||
11693 | configuration "AutoFlippingLabel" | ||
11694 | model "six_pos" | ||
11695 | position "thead" | ||
11696 | ] | ||
11697 | ] | ||
11698 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png index e33711c3..158ebb0f 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi index fa323f3d..3dcec4a4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/1.xmi | |||
@@ -1,11 +1,13 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> | 2 | <fam:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> |
3 | <data xsi:type="fam:FunctionalOutput"/> | 3 | <rootElements xsi:type="fam:Function"> |
4 | <data xsi:type="fam:FunctionalOutput"> | 4 | <interface> |
5 | <terminator/> | 5 | <data xsi:type="fam:FunctionalOutput"> |
6 | </data> | 6 | <terminator/> |
7 | <data xsi:type="fam:FunctionalInput"/> | 7 | </data> |
8 | <data xsi:type="fam:FunctionalOutput"> | 8 | <data xsi:type="fam:FunctionalOutput"> |
9 | <terminator/> | 9 | <terminator/> |
10 | </data> | 10 | </data> |
11 | </fam:FunctionalInterface> | 11 | </interface> |
12 | </rootElements> | ||
13 | </fam:FunctionalArchitectureModel> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml index 383a7f99..62441d63 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.gml | |||
@@ -8343,3 +8343,3359 @@ graph | |||
8343 | ] | 8343 | ] |
8344 | ] | 8344 | ] |
8345 | ] | 8345 | ] |
8346 | graph | ||
8347 | [ | ||
8348 | node | ||
8349 | [ | ||
8350 | id 0 | ||
8351 | graphics | ||
8352 | [ | ||
8353 | w 226.60000000000002 | ||
8354 | h 40 | ||
8355 | type "rectangle" | ||
8356 | fill "#FFFFFF" | ||
8357 | fill2 "#FFFFFF" | ||
8358 | outline "#000000" | ||
8359 | ] | ||
8360 | LabelGraphics | ||
8361 | [ | ||
8362 | text "Root literal FunctionType" | ||
8363 | outline "#000000" | ||
8364 | fill "#FFFFFF" | ||
8365 | fontSize 16 | ||
8366 | fontName "Monospace" | ||
8367 | autoSizePolicy "node_width" | ||
8368 | anchor "t" | ||
8369 | borderDistance 0.0 | ||
8370 | ] | ||
8371 | LabelGraphics | ||
8372 | [ | ||
8373 | text " | ||
8374 | FunctionType enum | ||
8375 | " | ||
8376 | fontSize 14 | ||
8377 | fontName "Consolas" | ||
8378 | alignment "left" | ||
8379 | anchor "tl" | ||
8380 | borderDistance 6 | ||
8381 | ] | ||
8382 | ] | ||
8383 | |||
8384 | node | ||
8385 | [ | ||
8386 | id 1 | ||
8387 | graphics | ||
8388 | [ | ||
8389 | w 297.0 | ||
8390 | h 40 | ||
8391 | type "rectangle" | ||
8392 | fill "#FFFFFF" | ||
8393 | fill2 "#FFFFFF" | ||
8394 | outline "#000000" | ||
8395 | ] | ||
8396 | LabelGraphics | ||
8397 | [ | ||
8398 | text "Intermediate literal FunctionType" | ||
8399 | outline "#000000" | ||
8400 | fill "#FFFFFF" | ||
8401 | fontSize 16 | ||
8402 | fontName "Monospace" | ||
8403 | autoSizePolicy "node_width" | ||
8404 | anchor "t" | ||
8405 | borderDistance 0.0 | ||
8406 | ] | ||
8407 | LabelGraphics | ||
8408 | [ | ||
8409 | text " | ||
8410 | FunctionType enum | ||
8411 | " | ||
8412 | fontSize 14 | ||
8413 | fontName "Consolas" | ||
8414 | alignment "left" | ||
8415 | anchor "tl" | ||
8416 | borderDistance 6 | ||
8417 | ] | ||
8418 | ] | ||
8419 | |||
8420 | node | ||
8421 | [ | ||
8422 | id 2 | ||
8423 | graphics | ||
8424 | [ | ||
8425 | w 226.60000000000002 | ||
8426 | h 40 | ||
8427 | type "rectangle" | ||
8428 | fill "#FFFFFF" | ||
8429 | fill2 "#FFFFFF" | ||
8430 | outline "#000000" | ||
8431 | ] | ||
8432 | LabelGraphics | ||
8433 | [ | ||
8434 | text "Leaf literal FunctionType" | ||
8435 | outline "#000000" | ||
8436 | fill "#FFFFFF" | ||
8437 | fontSize 16 | ||
8438 | fontName "Monospace" | ||
8439 | autoSizePolicy "node_width" | ||
8440 | anchor "t" | ||
8441 | borderDistance 0.0 | ||
8442 | ] | ||
8443 | LabelGraphics | ||
8444 | [ | ||
8445 | text " | ||
8446 | FunctionType enum | ||
8447 | " | ||
8448 | fontSize 14 | ||
8449 | fontName "Consolas" | ||
8450 | alignment "left" | ||
8451 | anchor "tl" | ||
8452 | borderDistance 6 | ||
8453 | ] | ||
8454 | ] | ||
8455 | |||
8456 | node | ||
8457 | [ | ||
8458 | id 3 | ||
8459 | graphics | ||
8460 | [ | ||
8461 | w 41.800000000000004 | ||
8462 | h 26 | ||
8463 | type "rectangle" | ||
8464 | fill "#FFFFFF" | ||
8465 | fill2 "#FFFFFF" | ||
8466 | outline "#000000" | ||
8467 | ] | ||
8468 | LabelGraphics | ||
8469 | [ | ||
8470 | text "true" | ||
8471 | outline "#000000" | ||
8472 | fill "#FFFFFF" | ||
8473 | fontSize 16 | ||
8474 | fontName "Monospace" | ||
8475 | autoSizePolicy "node_width" | ||
8476 | anchor "t" | ||
8477 | borderDistance 0.0 | ||
8478 | ] | ||
8479 | LabelGraphics | ||
8480 | [ | ||
8481 | text " | ||
8482 | " | ||
8483 | fontSize 14 | ||
8484 | fontName "Consolas" | ||
8485 | alignment "left" | ||
8486 | anchor "tl" | ||
8487 | borderDistance 6 | ||
8488 | ] | ||
8489 | ] | ||
8490 | |||
8491 | node | ||
8492 | [ | ||
8493 | id 4 | ||
8494 | graphics | ||
8495 | [ | ||
8496 | w 50.6 | ||
8497 | h 26 | ||
8498 | type "rectangle" | ||
8499 | fill "#FFFFFF" | ||
8500 | fill2 "#FFFFFF" | ||
8501 | outline "#000000" | ||
8502 | ] | ||
8503 | LabelGraphics | ||
8504 | [ | ||
8505 | text "false" | ||
8506 | outline "#000000" | ||
8507 | fill "#FFFFFF" | ||
8508 | fontSize 16 | ||
8509 | fontName "Monospace" | ||
8510 | autoSizePolicy "node_width" | ||
8511 | anchor "t" | ||
8512 | borderDistance 0.0 | ||
8513 | ] | ||
8514 | LabelGraphics | ||
8515 | [ | ||
8516 | text " | ||
8517 | " | ||
8518 | fontSize 14 | ||
8519 | fontName "Consolas" | ||
8520 | alignment "left" | ||
8521 | anchor "tl" | ||
8522 | borderDistance 6 | ||
8523 | ] | ||
8524 | ] | ||
8525 | |||
8526 | node | ||
8527 | [ | ||
8528 | id 5 | ||
8529 | graphics | ||
8530 | [ | ||
8531 | w 207.9 | ||
8532 | h 40 | ||
8533 | type "rectangle" | ||
8534 | fill "#FFFFFF" | ||
8535 | fill2 "#FFFFFF" | ||
8536 | outline "#000000" | ||
8537 | ] | ||
8538 | LabelGraphics | ||
8539 | [ | ||
8540 | text "null" | ||
8541 | outline "#000000" | ||
8542 | fill "#FFFFFF" | ||
8543 | fontSize 16 | ||
8544 | fontName "Monospace" | ||
8545 | autoSizePolicy "node_width" | ||
8546 | anchor "t" | ||
8547 | borderDistance 0.0 | ||
8548 | ] | ||
8549 | LabelGraphics | ||
8550 | [ | ||
8551 | text " | ||
8552 | FunctionalInterface class | ||
8553 | " | ||
8554 | fontSize 14 | ||
8555 | fontName "Consolas" | ||
8556 | alignment "left" | ||
8557 | anchor "tl" | ||
8558 | borderDistance 6 | ||
8559 | ] | ||
8560 | ] | ||
8561 | |||
8562 | node | ||
8563 | [ | ||
8564 | id 6 | ||
8565 | graphics | ||
8566 | [ | ||
8567 | w 184.8 | ||
8568 | h 54 | ||
8569 | type "rectangle" | ||
8570 | fill "#FFFFFF" | ||
8571 | fill2 "#FFFFFF" | ||
8572 | outline "#000000" | ||
8573 | ] | ||
8574 | LabelGraphics | ||
8575 | [ | ||
8576 | text "null" | ||
8577 | outline "#000000" | ||
8578 | fill "#FFFFFF" | ||
8579 | fontSize 16 | ||
8580 | fontName "Monospace" | ||
8581 | autoSizePolicy "node_width" | ||
8582 | anchor "t" | ||
8583 | borderDistance 0.0 | ||
8584 | ] | ||
8585 | LabelGraphics | ||
8586 | [ | ||
8587 | text " | ||
8588 | FunctionalOutput class | ||
8589 | FunctionalData class | ||
8590 | " | ||
8591 | fontSize 14 | ||
8592 | fontName "Consolas" | ||
8593 | alignment "left" | ||
8594 | anchor "tl" | ||
8595 | borderDistance 6 | ||
8596 | ] | ||
8597 | ] | ||
8598 | |||
8599 | node | ||
8600 | [ | ||
8601 | id 7 | ||
8602 | graphics | ||
8603 | [ | ||
8604 | w 177.10000000000002 | ||
8605 | h 54 | ||
8606 | type "rectangle" | ||
8607 | fill "#FFFFFF" | ||
8608 | fill2 "#FFFFFF" | ||
8609 | outline "#000000" | ||
8610 | ] | ||
8611 | LabelGraphics | ||
8612 | [ | ||
8613 | text "null" | ||
8614 | outline "#000000" | ||
8615 | fill "#FFFFFF" | ||
8616 | fontSize 16 | ||
8617 | fontName "Monospace" | ||
8618 | autoSizePolicy "node_width" | ||
8619 | anchor "t" | ||
8620 | borderDistance 0.0 | ||
8621 | ] | ||
8622 | LabelGraphics | ||
8623 | [ | ||
8624 | text " | ||
8625 | FunctionalInput class | ||
8626 | FunctionalData class | ||
8627 | " | ||
8628 | fontSize 14 | ||
8629 | fontName "Consolas" | ||
8630 | alignment "left" | ||
8631 | anchor "tl" | ||
8632 | borderDistance 6 | ||
8633 | ] | ||
8634 | ] | ||
8635 | |||
8636 | node | ||
8637 | [ | ||
8638 | id 8 | ||
8639 | graphics | ||
8640 | [ | ||
8641 | w 161.70000000000002 | ||
8642 | h 40 | ||
8643 | type "rectangle" | ||
8644 | fill "#FFFFFF" | ||
8645 | fill2 "#FFFFFF" | ||
8646 | outline "#000000" | ||
8647 | ] | ||
8648 | LabelGraphics | ||
8649 | [ | ||
8650 | text "null" | ||
8651 | outline "#000000" | ||
8652 | fill "#FFFFFF" | ||
8653 | fontSize 16 | ||
8654 | fontName "Monospace" | ||
8655 | autoSizePolicy "node_width" | ||
8656 | anchor "t" | ||
8657 | borderDistance 0.0 | ||
8658 | ] | ||
8659 | LabelGraphics | ||
8660 | [ | ||
8661 | text " | ||
8662 | FAMTerminator class | ||
8663 | " | ||
8664 | fontSize 14 | ||
8665 | fontName "Consolas" | ||
8666 | alignment "left" | ||
8667 | anchor "tl" | ||
8668 | borderDistance 6 | ||
8669 | ] | ||
8670 | ] | ||
8671 | |||
8672 | node | ||
8673 | [ | ||
8674 | id 9 | ||
8675 | graphics | ||
8676 | [ | ||
8677 | w 184.8 | ||
8678 | h 54 | ||
8679 | type "rectangle" | ||
8680 | fill "#FFFFFF" | ||
8681 | fill2 "#FFFFFF" | ||
8682 | outline "#000000" | ||
8683 | ] | ||
8684 | LabelGraphics | ||
8685 | [ | ||
8686 | text "null" | ||
8687 | outline "#000000" | ||
8688 | fill "#FFFFFF" | ||
8689 | fontSize 16 | ||
8690 | fontName "Monospace" | ||
8691 | autoSizePolicy "node_width" | ||
8692 | anchor "t" | ||
8693 | borderDistance 0.0 | ||
8694 | ] | ||
8695 | LabelGraphics | ||
8696 | [ | ||
8697 | text " | ||
8698 | FunctionalOutput class | ||
8699 | FunctionalData class | ||
8700 | " | ||
8701 | fontSize 14 | ||
8702 | fontName "Consolas" | ||
8703 | alignment "left" | ||
8704 | anchor "tl" | ||
8705 | borderDistance 6 | ||
8706 | ] | ||
8707 | ] | ||
8708 | |||
8709 | node | ||
8710 | [ | ||
8711 | id 10 | ||
8712 | graphics | ||
8713 | [ | ||
8714 | w 184.8 | ||
8715 | h 54 | ||
8716 | type "rectangle" | ||
8717 | fill "#FFFFFF" | ||
8718 | fill2 "#FFFFFF" | ||
8719 | outline "#000000" | ||
8720 | ] | ||
8721 | LabelGraphics | ||
8722 | [ | ||
8723 | text "null" | ||
8724 | outline "#000000" | ||
8725 | fill "#FFFFFF" | ||
8726 | fontSize 16 | ||
8727 | fontName "Monospace" | ||
8728 | autoSizePolicy "node_width" | ||
8729 | anchor "t" | ||
8730 | borderDistance 0.0 | ||
8731 | ] | ||
8732 | LabelGraphics | ||
8733 | [ | ||
8734 | text " | ||
8735 | FunctionalOutput class | ||
8736 | FunctionalData class | ||
8737 | " | ||
8738 | fontSize 14 | ||
8739 | fontName "Consolas" | ||
8740 | alignment "left" | ||
8741 | anchor "tl" | ||
8742 | borderDistance 6 | ||
8743 | ] | ||
8744 | ] | ||
8745 | |||
8746 | node | ||
8747 | [ | ||
8748 | id 11 | ||
8749 | graphics | ||
8750 | [ | ||
8751 | w 177.10000000000002 | ||
8752 | h 40 | ||
8753 | type "rectangle" | ||
8754 | fill "#FFFFFF" | ||
8755 | fill2 "#FFFFFF" | ||
8756 | outline "#000000" | ||
8757 | ] | ||
8758 | LabelGraphics | ||
8759 | [ | ||
8760 | text "null" | ||
8761 | outline "#000000" | ||
8762 | fill "#FFFFFF" | ||
8763 | fontSize 16 | ||
8764 | fontName "Monospace" | ||
8765 | autoSizePolicy "node_width" | ||
8766 | anchor "t" | ||
8767 | borderDistance 0.0 | ||
8768 | ] | ||
8769 | LabelGraphics | ||
8770 | [ | ||
8771 | text " | ||
8772 | InformationLink class | ||
8773 | " | ||
8774 | fontSize 14 | ||
8775 | fontName "Consolas" | ||
8776 | alignment "left" | ||
8777 | anchor "tl" | ||
8778 | borderDistance 6 | ||
8779 | ] | ||
8780 | ] | ||
8781 | |||
8782 | node | ||
8783 | [ | ||
8784 | id 12 | ||
8785 | graphics | ||
8786 | [ | ||
8787 | w 112.2 | ||
8788 | h 26 | ||
8789 | type "rectangle" | ||
8790 | fill "#FFFFFF" | ||
8791 | fill2 "#FFFFFF" | ||
8792 | outline "#000000" | ||
8793 | ] | ||
8794 | LabelGraphics | ||
8795 | [ | ||
8796 | text "New Integers" | ||
8797 | outline "#000000" | ||
8798 | fill "#FFFFFF" | ||
8799 | fontSize 16 | ||
8800 | fontName "Monospace" | ||
8801 | autoSizePolicy "node_width" | ||
8802 | anchor "t" | ||
8803 | borderDistance 0.0 | ||
8804 | ] | ||
8805 | LabelGraphics | ||
8806 | [ | ||
8807 | text " | ||
8808 | " | ||
8809 | fontSize 14 | ||
8810 | fontName "Consolas" | ||
8811 | alignment "left" | ||
8812 | anchor "tl" | ||
8813 | borderDistance 6 | ||
8814 | ] | ||
8815 | ] | ||
8816 | |||
8817 | node | ||
8818 | [ | ||
8819 | id 13 | ||
8820 | graphics | ||
8821 | [ | ||
8822 | w 85.80000000000001 | ||
8823 | h 26 | ||
8824 | type "rectangle" | ||
8825 | fill "#FFFFFF" | ||
8826 | fill2 "#FFFFFF" | ||
8827 | outline "#000000" | ||
8828 | ] | ||
8829 | LabelGraphics | ||
8830 | [ | ||
8831 | text "New Reals" | ||
8832 | outline "#000000" | ||
8833 | fill "#FFFFFF" | ||
8834 | fontSize 16 | ||
8835 | fontName "Monospace" | ||
8836 | autoSizePolicy "node_width" | ||
8837 | anchor "t" | ||
8838 | borderDistance 0.0 | ||
8839 | ] | ||
8840 | LabelGraphics | ||
8841 | [ | ||
8842 | text " | ||
8843 | " | ||
8844 | fontSize 14 | ||
8845 | fontName "Consolas" | ||
8846 | alignment "left" | ||
8847 | anchor "tl" | ||
8848 | borderDistance 6 | ||
8849 | ] | ||
8850 | ] | ||
8851 | |||
8852 | node | ||
8853 | [ | ||
8854 | id 14 | ||
8855 | graphics | ||
8856 | [ | ||
8857 | w 103.4 | ||
8858 | h 26 | ||
8859 | type "rectangle" | ||
8860 | fill "#FFFFFF" | ||
8861 | fill2 "#FFFFFF" | ||
8862 | outline "#000000" | ||
8863 | ] | ||
8864 | LabelGraphics | ||
8865 | [ | ||
8866 | text "New Strings" | ||
8867 | outline "#000000" | ||
8868 | fill "#FFFFFF" | ||
8869 | fontSize 16 | ||
8870 | fontName "Monospace" | ||
8871 | autoSizePolicy "node_width" | ||
8872 | anchor "t" | ||
8873 | borderDistance 0.0 | ||
8874 | ] | ||
8875 | LabelGraphics | ||
8876 | [ | ||
8877 | text " | ||
8878 | " | ||
8879 | fontSize 14 | ||
8880 | fontName "Consolas" | ||
8881 | alignment "left" | ||
8882 | anchor "tl" | ||
8883 | borderDistance 6 | ||
8884 | ] | ||
8885 | ] | ||
8886 | |||
8887 | node | ||
8888 | [ | ||
8889 | id 15 | ||
8890 | graphics | ||
8891 | [ | ||
8892 | w 103.4 | ||
8893 | h 26 | ||
8894 | type "rectangle" | ||
8895 | fill "#FFFFFF" | ||
8896 | fill2 "#FFFFFF" | ||
8897 | outline "#000000" | ||
8898 | ] | ||
8899 | LabelGraphics | ||
8900 | [ | ||
8901 | text "New Objects" | ||
8902 | outline "#000000" | ||
8903 | fill "#FFFFFF" | ||
8904 | fontSize 16 | ||
8905 | fontName "Monospace" | ||
8906 | autoSizePolicy "node_width" | ||
8907 | anchor "t" | ||
8908 | borderDistance 0.0 | ||
8909 | ] | ||
8910 | LabelGraphics | ||
8911 | [ | ||
8912 | text " | ||
8913 | " | ||
8914 | fontSize 14 | ||
8915 | fontName "Consolas" | ||
8916 | alignment "left" | ||
8917 | anchor "tl" | ||
8918 | borderDistance 6 | ||
8919 | ] | ||
8920 | ] | ||
8921 | edge | ||
8922 | [ | ||
8923 | source 8 | ||
8924 | target 6 | ||
8925 | graphics | ||
8926 | [ | ||
8927 | fill "#000000" | ||
8928 | targetArrow "standard" | ||
8929 | ] | ||
8930 | LabelGraphics | ||
8931 | [ | ||
8932 | text "data reference FAMTerminator" | ||
8933 | fontSize 14 | ||
8934 | fontName "Consolas" | ||
8935 | configuration "AutoFlippingLabel" | ||
8936 | model "six_pos" | ||
8937 | position "thead" | ||
8938 | ] | ||
8939 | ] | ||
8940 | edge | ||
8941 | [ | ||
8942 | source 11 | ||
8943 | target 10 | ||
8944 | graphics | ||
8945 | [ | ||
8946 | fill "#000000" | ||
8947 | targetArrow "standard" | ||
8948 | ] | ||
8949 | LabelGraphics | ||
8950 | [ | ||
8951 | text "from reference InformationLink" | ||
8952 | fontSize 14 | ||
8953 | fontName "Consolas" | ||
8954 | configuration "AutoFlippingLabel" | ||
8955 | model "six_pos" | ||
8956 | position "thead" | ||
8957 | ] | ||
8958 | ] | ||
8959 | edge | ||
8960 | [ | ||
8961 | source 11 | ||
8962 | target 7 | ||
8963 | graphics | ||
8964 | [ | ||
8965 | fill "#000000" | ||
8966 | targetArrow "standard" | ||
8967 | ] | ||
8968 | LabelGraphics | ||
8969 | [ | ||
8970 | text "to reference InformationLink" | ||
8971 | fontSize 14 | ||
8972 | fontName "Consolas" | ||
8973 | configuration "AutoFlippingLabel" | ||
8974 | model "six_pos" | ||
8975 | position "thead" | ||
8976 | ] | ||
8977 | ] | ||
8978 | edge | ||
8979 | [ | ||
8980 | source 5 | ||
8981 | target 6 | ||
8982 | graphics | ||
8983 | [ | ||
8984 | fill "#000000" | ||
8985 | width 3 | ||
8986 | targetArrow "standard" | ||
8987 | ] | ||
8988 | LabelGraphics | ||
8989 | [ | ||
8990 | text "data reference FunctionalInterface" | ||
8991 | fontSize 14 | ||
8992 | fontName "Consolas" | ||
8993 | configuration "AutoFlippingLabel" | ||
8994 | model "six_pos" | ||
8995 | position "thead" | ||
8996 | ] | ||
8997 | ] | ||
8998 | edge | ||
8999 | [ | ||
9000 | source 5 | ||
9001 | target 7 | ||
9002 | graphics | ||
9003 | [ | ||
9004 | fill "#000000" | ||
9005 | width 3 | ||
9006 | targetArrow "standard" | ||
9007 | ] | ||
9008 | LabelGraphics | ||
9009 | [ | ||
9010 | text "data reference FunctionalInterface" | ||
9011 | fontSize 14 | ||
9012 | fontName "Consolas" | ||
9013 | configuration "AutoFlippingLabel" | ||
9014 | model "six_pos" | ||
9015 | position "thead" | ||
9016 | ] | ||
9017 | ] | ||
9018 | edge | ||
9019 | [ | ||
9020 | source 5 | ||
9021 | target 9 | ||
9022 | graphics | ||
9023 | [ | ||
9024 | fill "#000000" | ||
9025 | width 3 | ||
9026 | targetArrow "standard" | ||
9027 | ] | ||
9028 | LabelGraphics | ||
9029 | [ | ||
9030 | text "data reference FunctionalInterface" | ||
9031 | fontSize 14 | ||
9032 | fontName "Consolas" | ||
9033 | configuration "AutoFlippingLabel" | ||
9034 | model "six_pos" | ||
9035 | position "thead" | ||
9036 | ] | ||
9037 | ] | ||
9038 | edge | ||
9039 | [ | ||
9040 | source 5 | ||
9041 | target 10 | ||
9042 | graphics | ||
9043 | [ | ||
9044 | fill "#000000" | ||
9045 | width 3 | ||
9046 | targetArrow "standard" | ||
9047 | ] | ||
9048 | LabelGraphics | ||
9049 | [ | ||
9050 | text "data reference FunctionalInterface" | ||
9051 | fontSize 14 | ||
9052 | fontName "Consolas" | ||
9053 | configuration "AutoFlippingLabel" | ||
9054 | model "six_pos" | ||
9055 | position "thead" | ||
9056 | ] | ||
9057 | ] | ||
9058 | edge | ||
9059 | [ | ||
9060 | source 7 | ||
9061 | target 11 | ||
9062 | graphics | ||
9063 | [ | ||
9064 | fill "#000000" | ||
9065 | targetArrow "standard" | ||
9066 | ] | ||
9067 | LabelGraphics | ||
9068 | [ | ||
9069 | text "IncomingLinks reference FunctionalInput" | ||
9070 | fontSize 14 | ||
9071 | fontName "Consolas" | ||
9072 | configuration "AutoFlippingLabel" | ||
9073 | model "six_pos" | ||
9074 | position "thead" | ||
9075 | ] | ||
9076 | ] | ||
9077 | edge | ||
9078 | [ | ||
9079 | source 10 | ||
9080 | target 11 | ||
9081 | graphics | ||
9082 | [ | ||
9083 | fill "#000000" | ||
9084 | width 3 | ||
9085 | targetArrow "standard" | ||
9086 | ] | ||
9087 | LabelGraphics | ||
9088 | [ | ||
9089 | text "outgoingLinks reference FunctionalOutput" | ||
9090 | fontSize 14 | ||
9091 | fontName "Consolas" | ||
9092 | configuration "AutoFlippingLabel" | ||
9093 | model "six_pos" | ||
9094 | position "thead" | ||
9095 | ] | ||
9096 | ] | ||
9097 | edge | ||
9098 | [ | ||
9099 | source 6 | ||
9100 | target 8 | ||
9101 | graphics | ||
9102 | [ | ||
9103 | fill "#000000" | ||
9104 | width 3 | ||
9105 | targetArrow "standard" | ||
9106 | ] | ||
9107 | LabelGraphics | ||
9108 | [ | ||
9109 | text "terminator reference FunctionalData" | ||
9110 | fontSize 14 | ||
9111 | fontName "Consolas" | ||
9112 | configuration "AutoFlippingLabel" | ||
9113 | model "six_pos" | ||
9114 | position "thead" | ||
9115 | ] | ||
9116 | ] | ||
9117 | edge | ||
9118 | [ | ||
9119 | source 6 | ||
9120 | target 5 | ||
9121 | graphics | ||
9122 | [ | ||
9123 | fill "#000000" | ||
9124 | targetArrow "standard" | ||
9125 | ] | ||
9126 | LabelGraphics | ||
9127 | [ | ||
9128 | text "interface reference FunctionalData" | ||
9129 | fontSize 14 | ||
9130 | fontName "Consolas" | ||
9131 | configuration "AutoFlippingLabel" | ||
9132 | model "six_pos" | ||
9133 | position "thead" | ||
9134 | ] | ||
9135 | ] | ||
9136 | edge | ||
9137 | [ | ||
9138 | source 7 | ||
9139 | target 5 | ||
9140 | graphics | ||
9141 | [ | ||
9142 | fill "#000000" | ||
9143 | targetArrow "standard" | ||
9144 | ] | ||
9145 | LabelGraphics | ||
9146 | [ | ||
9147 | text "interface reference FunctionalData" | ||
9148 | fontSize 14 | ||
9149 | fontName "Consolas" | ||
9150 | configuration "AutoFlippingLabel" | ||
9151 | model "six_pos" | ||
9152 | position "thead" | ||
9153 | ] | ||
9154 | ] | ||
9155 | edge | ||
9156 | [ | ||
9157 | source 9 | ||
9158 | target 5 | ||
9159 | graphics | ||
9160 | [ | ||
9161 | fill "#000000" | ||
9162 | targetArrow "standard" | ||
9163 | ] | ||
9164 | LabelGraphics | ||
9165 | [ | ||
9166 | text "interface reference FunctionalData" | ||
9167 | fontSize 14 | ||
9168 | fontName "Consolas" | ||
9169 | configuration "AutoFlippingLabel" | ||
9170 | model "six_pos" | ||
9171 | position "thead" | ||
9172 | ] | ||
9173 | ] | ||
9174 | edge | ||
9175 | [ | ||
9176 | source 10 | ||
9177 | target 5 | ||
9178 | graphics | ||
9179 | [ | ||
9180 | fill "#000000" | ||
9181 | targetArrow "standard" | ||
9182 | ] | ||
9183 | LabelGraphics | ||
9184 | [ | ||
9185 | text "interface reference FunctionalData" | ||
9186 | fontSize 14 | ||
9187 | fontName "Consolas" | ||
9188 | configuration "AutoFlippingLabel" | ||
9189 | model "six_pos" | ||
9190 | position "thead" | ||
9191 | ] | ||
9192 | ] | ||
9193 | ] | ||
9194 | graph | ||
9195 | [ | ||
9196 | node | ||
9197 | [ | ||
9198 | id 0 | ||
9199 | graphics | ||
9200 | [ | ||
9201 | w 226.60000000000002 | ||
9202 | h 40 | ||
9203 | type "rectangle" | ||
9204 | fill "#FFFFFF" | ||
9205 | fill2 "#FFFFFF" | ||
9206 | outline "#000000" | ||
9207 | ] | ||
9208 | LabelGraphics | ||
9209 | [ | ||
9210 | text "Root literal FunctionType" | ||
9211 | outline "#000000" | ||
9212 | fill "#FFFFFF" | ||
9213 | fontSize 16 | ||
9214 | fontName "Monospace" | ||
9215 | autoSizePolicy "node_width" | ||
9216 | anchor "t" | ||
9217 | borderDistance 0.0 | ||
9218 | ] | ||
9219 | LabelGraphics | ||
9220 | [ | ||
9221 | text " | ||
9222 | FunctionType enum | ||
9223 | " | ||
9224 | fontSize 14 | ||
9225 | fontName "Consolas" | ||
9226 | alignment "left" | ||
9227 | anchor "tl" | ||
9228 | borderDistance 6 | ||
9229 | ] | ||
9230 | ] | ||
9231 | |||
9232 | node | ||
9233 | [ | ||
9234 | id 1 | ||
9235 | graphics | ||
9236 | [ | ||
9237 | w 297.0 | ||
9238 | h 40 | ||
9239 | type "rectangle" | ||
9240 | fill "#FFFFFF" | ||
9241 | fill2 "#FFFFFF" | ||
9242 | outline "#000000" | ||
9243 | ] | ||
9244 | LabelGraphics | ||
9245 | [ | ||
9246 | text "Intermediate literal FunctionType" | ||
9247 | outline "#000000" | ||
9248 | fill "#FFFFFF" | ||
9249 | fontSize 16 | ||
9250 | fontName "Monospace" | ||
9251 | autoSizePolicy "node_width" | ||
9252 | anchor "t" | ||
9253 | borderDistance 0.0 | ||
9254 | ] | ||
9255 | LabelGraphics | ||
9256 | [ | ||
9257 | text " | ||
9258 | FunctionType enum | ||
9259 | " | ||
9260 | fontSize 14 | ||
9261 | fontName "Consolas" | ||
9262 | alignment "left" | ||
9263 | anchor "tl" | ||
9264 | borderDistance 6 | ||
9265 | ] | ||
9266 | ] | ||
9267 | |||
9268 | node | ||
9269 | [ | ||
9270 | id 2 | ||
9271 | graphics | ||
9272 | [ | ||
9273 | w 226.60000000000002 | ||
9274 | h 40 | ||
9275 | type "rectangle" | ||
9276 | fill "#FFFFFF" | ||
9277 | fill2 "#FFFFFF" | ||
9278 | outline "#000000" | ||
9279 | ] | ||
9280 | LabelGraphics | ||
9281 | [ | ||
9282 | text "Leaf literal FunctionType" | ||
9283 | outline "#000000" | ||
9284 | fill "#FFFFFF" | ||
9285 | fontSize 16 | ||
9286 | fontName "Monospace" | ||
9287 | autoSizePolicy "node_width" | ||
9288 | anchor "t" | ||
9289 | borderDistance 0.0 | ||
9290 | ] | ||
9291 | LabelGraphics | ||
9292 | [ | ||
9293 | text " | ||
9294 | FunctionType enum | ||
9295 | " | ||
9296 | fontSize 14 | ||
9297 | fontName "Consolas" | ||
9298 | alignment "left" | ||
9299 | anchor "tl" | ||
9300 | borderDistance 6 | ||
9301 | ] | ||
9302 | ] | ||
9303 | |||
9304 | node | ||
9305 | [ | ||
9306 | id 3 | ||
9307 | graphics | ||
9308 | [ | ||
9309 | w 41.800000000000004 | ||
9310 | h 26 | ||
9311 | type "rectangle" | ||
9312 | fill "#FFFFFF" | ||
9313 | fill2 "#FFFFFF" | ||
9314 | outline "#000000" | ||
9315 | ] | ||
9316 | LabelGraphics | ||
9317 | [ | ||
9318 | text "true" | ||
9319 | outline "#000000" | ||
9320 | fill "#FFFFFF" | ||
9321 | fontSize 16 | ||
9322 | fontName "Monospace" | ||
9323 | autoSizePolicy "node_width" | ||
9324 | anchor "t" | ||
9325 | borderDistance 0.0 | ||
9326 | ] | ||
9327 | LabelGraphics | ||
9328 | [ | ||
9329 | text " | ||
9330 | " | ||
9331 | fontSize 14 | ||
9332 | fontName "Consolas" | ||
9333 | alignment "left" | ||
9334 | anchor "tl" | ||
9335 | borderDistance 6 | ||
9336 | ] | ||
9337 | ] | ||
9338 | |||
9339 | node | ||
9340 | [ | ||
9341 | id 4 | ||
9342 | graphics | ||
9343 | [ | ||
9344 | w 50.6 | ||
9345 | h 26 | ||
9346 | type "rectangle" | ||
9347 | fill "#FFFFFF" | ||
9348 | fill2 "#FFFFFF" | ||
9349 | outline "#000000" | ||
9350 | ] | ||
9351 | LabelGraphics | ||
9352 | [ | ||
9353 | text "false" | ||
9354 | outline "#000000" | ||
9355 | fill "#FFFFFF" | ||
9356 | fontSize 16 | ||
9357 | fontName "Monospace" | ||
9358 | autoSizePolicy "node_width" | ||
9359 | anchor "t" | ||
9360 | borderDistance 0.0 | ||
9361 | ] | ||
9362 | LabelGraphics | ||
9363 | [ | ||
9364 | text " | ||
9365 | " | ||
9366 | fontSize 14 | ||
9367 | fontName "Consolas" | ||
9368 | alignment "left" | ||
9369 | anchor "tl" | ||
9370 | borderDistance 6 | ||
9371 | ] | ||
9372 | ] | ||
9373 | |||
9374 | node | ||
9375 | [ | ||
9376 | id 5 | ||
9377 | graphics | ||
9378 | [ | ||
9379 | w 207.9 | ||
9380 | h 40 | ||
9381 | type "rectangle" | ||
9382 | fill "#FFFFFF" | ||
9383 | fill2 "#FFFFFF" | ||
9384 | outline "#000000" | ||
9385 | ] | ||
9386 | LabelGraphics | ||
9387 | [ | ||
9388 | text "null" | ||
9389 | outline "#000000" | ||
9390 | fill "#FFFFFF" | ||
9391 | fontSize 16 | ||
9392 | fontName "Monospace" | ||
9393 | autoSizePolicy "node_width" | ||
9394 | anchor "t" | ||
9395 | borderDistance 0.0 | ||
9396 | ] | ||
9397 | LabelGraphics | ||
9398 | [ | ||
9399 | text " | ||
9400 | FunctionalInterface class | ||
9401 | " | ||
9402 | fontSize 14 | ||
9403 | fontName "Consolas" | ||
9404 | alignment "left" | ||
9405 | anchor "tl" | ||
9406 | borderDistance 6 | ||
9407 | ] | ||
9408 | ] | ||
9409 | |||
9410 | node | ||
9411 | [ | ||
9412 | id 6 | ||
9413 | graphics | ||
9414 | [ | ||
9415 | w 177.10000000000002 | ||
9416 | h 54 | ||
9417 | type "rectangle" | ||
9418 | fill "#FFFFFF" | ||
9419 | fill2 "#FFFFFF" | ||
9420 | outline "#000000" | ||
9421 | ] | ||
9422 | LabelGraphics | ||
9423 | [ | ||
9424 | text "null" | ||
9425 | outline "#000000" | ||
9426 | fill "#FFFFFF" | ||
9427 | fontSize 16 | ||
9428 | fontName "Monospace" | ||
9429 | autoSizePolicy "node_width" | ||
9430 | anchor "t" | ||
9431 | borderDistance 0.0 | ||
9432 | ] | ||
9433 | LabelGraphics | ||
9434 | [ | ||
9435 | text " | ||
9436 | FunctionalInput class | ||
9437 | FunctionalData class | ||
9438 | " | ||
9439 | fontSize 14 | ||
9440 | fontName "Consolas" | ||
9441 | alignment "left" | ||
9442 | anchor "tl" | ||
9443 | borderDistance 6 | ||
9444 | ] | ||
9445 | ] | ||
9446 | |||
9447 | node | ||
9448 | [ | ||
9449 | id 7 | ||
9450 | graphics | ||
9451 | [ | ||
9452 | w 177.10000000000002 | ||
9453 | h 54 | ||
9454 | type "rectangle" | ||
9455 | fill "#FFFFFF" | ||
9456 | fill2 "#FFFFFF" | ||
9457 | outline "#000000" | ||
9458 | ] | ||
9459 | LabelGraphics | ||
9460 | [ | ||
9461 | text "null" | ||
9462 | outline "#000000" | ||
9463 | fill "#FFFFFF" | ||
9464 | fontSize 16 | ||
9465 | fontName "Monospace" | ||
9466 | autoSizePolicy "node_width" | ||
9467 | anchor "t" | ||
9468 | borderDistance 0.0 | ||
9469 | ] | ||
9470 | LabelGraphics | ||
9471 | [ | ||
9472 | text " | ||
9473 | FunctionalInput class | ||
9474 | FunctionalData class | ||
9475 | " | ||
9476 | fontSize 14 | ||
9477 | fontName "Consolas" | ||
9478 | alignment "left" | ||
9479 | anchor "tl" | ||
9480 | borderDistance 6 | ||
9481 | ] | ||
9482 | ] | ||
9483 | |||
9484 | node | ||
9485 | [ | ||
9486 | id 8 | ||
9487 | graphics | ||
9488 | [ | ||
9489 | w 177.10000000000002 | ||
9490 | h 54 | ||
9491 | type "rectangle" | ||
9492 | fill "#FFFFFF" | ||
9493 | fill2 "#FFFFFF" | ||
9494 | outline "#000000" | ||
9495 | ] | ||
9496 | LabelGraphics | ||
9497 | [ | ||
9498 | text "null" | ||
9499 | outline "#000000" | ||
9500 | fill "#FFFFFF" | ||
9501 | fontSize 16 | ||
9502 | fontName "Monospace" | ||
9503 | autoSizePolicy "node_width" | ||
9504 | anchor "t" | ||
9505 | borderDistance 0.0 | ||
9506 | ] | ||
9507 | LabelGraphics | ||
9508 | [ | ||
9509 | text " | ||
9510 | FunctionalInput class | ||
9511 | FunctionalData class | ||
9512 | " | ||
9513 | fontSize 14 | ||
9514 | fontName "Consolas" | ||
9515 | alignment "left" | ||
9516 | anchor "tl" | ||
9517 | borderDistance 6 | ||
9518 | ] | ||
9519 | ] | ||
9520 | |||
9521 | node | ||
9522 | [ | ||
9523 | id 9 | ||
9524 | graphics | ||
9525 | [ | ||
9526 | w 161.70000000000002 | ||
9527 | h 40 | ||
9528 | type "rectangle" | ||
9529 | fill "#FFFFFF" | ||
9530 | fill2 "#FFFFFF" | ||
9531 | outline "#000000" | ||
9532 | ] | ||
9533 | LabelGraphics | ||
9534 | [ | ||
9535 | text "null" | ||
9536 | outline "#000000" | ||
9537 | fill "#FFFFFF" | ||
9538 | fontSize 16 | ||
9539 | fontName "Monospace" | ||
9540 | autoSizePolicy "node_width" | ||
9541 | anchor "t" | ||
9542 | borderDistance 0.0 | ||
9543 | ] | ||
9544 | LabelGraphics | ||
9545 | [ | ||
9546 | text " | ||
9547 | FAMTerminator class | ||
9548 | " | ||
9549 | fontSize 14 | ||
9550 | fontName "Consolas" | ||
9551 | alignment "left" | ||
9552 | anchor "tl" | ||
9553 | borderDistance 6 | ||
9554 | ] | ||
9555 | ] | ||
9556 | |||
9557 | node | ||
9558 | [ | ||
9559 | id 10 | ||
9560 | graphics | ||
9561 | [ | ||
9562 | w 161.70000000000002 | ||
9563 | h 40 | ||
9564 | type "rectangle" | ||
9565 | fill "#FFFFFF" | ||
9566 | fill2 "#FFFFFF" | ||
9567 | outline "#000000" | ||
9568 | ] | ||
9569 | LabelGraphics | ||
9570 | [ | ||
9571 | text "null" | ||
9572 | outline "#000000" | ||
9573 | fill "#FFFFFF" | ||
9574 | fontSize 16 | ||
9575 | fontName "Monospace" | ||
9576 | autoSizePolicy "node_width" | ||
9577 | anchor "t" | ||
9578 | borderDistance 0.0 | ||
9579 | ] | ||
9580 | LabelGraphics | ||
9581 | [ | ||
9582 | text " | ||
9583 | FAMTerminator class | ||
9584 | " | ||
9585 | fontSize 14 | ||
9586 | fontName "Consolas" | ||
9587 | alignment "left" | ||
9588 | anchor "tl" | ||
9589 | borderDistance 6 | ||
9590 | ] | ||
9591 | ] | ||
9592 | |||
9593 | node | ||
9594 | [ | ||
9595 | id 11 | ||
9596 | graphics | ||
9597 | [ | ||
9598 | w 177.10000000000002 | ||
9599 | h 54 | ||
9600 | type "rectangle" | ||
9601 | fill "#FFFFFF" | ||
9602 | fill2 "#FFFFFF" | ||
9603 | outline "#000000" | ||
9604 | ] | ||
9605 | LabelGraphics | ||
9606 | [ | ||
9607 | text "null" | ||
9608 | outline "#000000" | ||
9609 | fill "#FFFFFF" | ||
9610 | fontSize 16 | ||
9611 | fontName "Monospace" | ||
9612 | autoSizePolicy "node_width" | ||
9613 | anchor "t" | ||
9614 | borderDistance 0.0 | ||
9615 | ] | ||
9616 | LabelGraphics | ||
9617 | [ | ||
9618 | text " | ||
9619 | FunctionalInput class | ||
9620 | FunctionalData class | ||
9621 | " | ||
9622 | fontSize 14 | ||
9623 | fontName "Consolas" | ||
9624 | alignment "left" | ||
9625 | anchor "tl" | ||
9626 | borderDistance 6 | ||
9627 | ] | ||
9628 | ] | ||
9629 | |||
9630 | node | ||
9631 | [ | ||
9632 | id 12 | ||
9633 | graphics | ||
9634 | [ | ||
9635 | w 112.2 | ||
9636 | h 26 | ||
9637 | type "rectangle" | ||
9638 | fill "#FFFFFF" | ||
9639 | fill2 "#FFFFFF" | ||
9640 | outline "#000000" | ||
9641 | ] | ||
9642 | LabelGraphics | ||
9643 | [ | ||
9644 | text "New Integers" | ||
9645 | outline "#000000" | ||
9646 | fill "#FFFFFF" | ||
9647 | fontSize 16 | ||
9648 | fontName "Monospace" | ||
9649 | autoSizePolicy "node_width" | ||
9650 | anchor "t" | ||
9651 | borderDistance 0.0 | ||
9652 | ] | ||
9653 | LabelGraphics | ||
9654 | [ | ||
9655 | text " | ||
9656 | " | ||
9657 | fontSize 14 | ||
9658 | fontName "Consolas" | ||
9659 | alignment "left" | ||
9660 | anchor "tl" | ||
9661 | borderDistance 6 | ||
9662 | ] | ||
9663 | ] | ||
9664 | |||
9665 | node | ||
9666 | [ | ||
9667 | id 13 | ||
9668 | graphics | ||
9669 | [ | ||
9670 | w 85.80000000000001 | ||
9671 | h 26 | ||
9672 | type "rectangle" | ||
9673 | fill "#FFFFFF" | ||
9674 | fill2 "#FFFFFF" | ||
9675 | outline "#000000" | ||
9676 | ] | ||
9677 | LabelGraphics | ||
9678 | [ | ||
9679 | text "New Reals" | ||
9680 | outline "#000000" | ||
9681 | fill "#FFFFFF" | ||
9682 | fontSize 16 | ||
9683 | fontName "Monospace" | ||
9684 | autoSizePolicy "node_width" | ||
9685 | anchor "t" | ||
9686 | borderDistance 0.0 | ||
9687 | ] | ||
9688 | LabelGraphics | ||
9689 | [ | ||
9690 | text " | ||
9691 | " | ||
9692 | fontSize 14 | ||
9693 | fontName "Consolas" | ||
9694 | alignment "left" | ||
9695 | anchor "tl" | ||
9696 | borderDistance 6 | ||
9697 | ] | ||
9698 | ] | ||
9699 | |||
9700 | node | ||
9701 | [ | ||
9702 | id 14 | ||
9703 | graphics | ||
9704 | [ | ||
9705 | w 103.4 | ||
9706 | h 26 | ||
9707 | type "rectangle" | ||
9708 | fill "#FFFFFF" | ||
9709 | fill2 "#FFFFFF" | ||
9710 | outline "#000000" | ||
9711 | ] | ||
9712 | LabelGraphics | ||
9713 | [ | ||
9714 | text "New Strings" | ||
9715 | outline "#000000" | ||
9716 | fill "#FFFFFF" | ||
9717 | fontSize 16 | ||
9718 | fontName "Monospace" | ||
9719 | autoSizePolicy "node_width" | ||
9720 | anchor "t" | ||
9721 | borderDistance 0.0 | ||
9722 | ] | ||
9723 | LabelGraphics | ||
9724 | [ | ||
9725 | text " | ||
9726 | " | ||
9727 | fontSize 14 | ||
9728 | fontName "Consolas" | ||
9729 | alignment "left" | ||
9730 | anchor "tl" | ||
9731 | borderDistance 6 | ||
9732 | ] | ||
9733 | ] | ||
9734 | |||
9735 | node | ||
9736 | [ | ||
9737 | id 15 | ||
9738 | graphics | ||
9739 | [ | ||
9740 | w 103.4 | ||
9741 | h 26 | ||
9742 | type "rectangle" | ||
9743 | fill "#FFFFFF" | ||
9744 | fill2 "#FFFFFF" | ||
9745 | outline "#000000" | ||
9746 | ] | ||
9747 | LabelGraphics | ||
9748 | [ | ||
9749 | text "New Objects" | ||
9750 | outline "#000000" | ||
9751 | fill "#FFFFFF" | ||
9752 | fontSize 16 | ||
9753 | fontName "Monospace" | ||
9754 | autoSizePolicy "node_width" | ||
9755 | anchor "t" | ||
9756 | borderDistance 0.0 | ||
9757 | ] | ||
9758 | LabelGraphics | ||
9759 | [ | ||
9760 | text " | ||
9761 | " | ||
9762 | fontSize 14 | ||
9763 | fontName "Consolas" | ||
9764 | alignment "left" | ||
9765 | anchor "tl" | ||
9766 | borderDistance 6 | ||
9767 | ] | ||
9768 | ] | ||
9769 | edge | ||
9770 | [ | ||
9771 | source 9 | ||
9772 | target 8 | ||
9773 | graphics | ||
9774 | [ | ||
9775 | fill "#000000" | ||
9776 | targetArrow "standard" | ||
9777 | ] | ||
9778 | LabelGraphics | ||
9779 | [ | ||
9780 | text "data reference FAMTerminator" | ||
9781 | fontSize 14 | ||
9782 | fontName "Consolas" | ||
9783 | configuration "AutoFlippingLabel" | ||
9784 | model "six_pos" | ||
9785 | position "thead" | ||
9786 | ] | ||
9787 | ] | ||
9788 | edge | ||
9789 | [ | ||
9790 | source 10 | ||
9791 | target 6 | ||
9792 | graphics | ||
9793 | [ | ||
9794 | fill "#000000" | ||
9795 | targetArrow "standard" | ||
9796 | ] | ||
9797 | LabelGraphics | ||
9798 | [ | ||
9799 | text "data reference FAMTerminator" | ||
9800 | fontSize 14 | ||
9801 | fontName "Consolas" | ||
9802 | configuration "AutoFlippingLabel" | ||
9803 | model "six_pos" | ||
9804 | position "thead" | ||
9805 | ] | ||
9806 | ] | ||
9807 | edge | ||
9808 | [ | ||
9809 | source 5 | ||
9810 | target 6 | ||
9811 | graphics | ||
9812 | [ | ||
9813 | fill "#000000" | ||
9814 | width 3 | ||
9815 | targetArrow "standard" | ||
9816 | ] | ||
9817 | LabelGraphics | ||
9818 | [ | ||
9819 | text "data reference FunctionalInterface" | ||
9820 | fontSize 14 | ||
9821 | fontName "Consolas" | ||
9822 | configuration "AutoFlippingLabel" | ||
9823 | model "six_pos" | ||
9824 | position "thead" | ||
9825 | ] | ||
9826 | ] | ||
9827 | edge | ||
9828 | [ | ||
9829 | source 5 | ||
9830 | target 7 | ||
9831 | graphics | ||
9832 | [ | ||
9833 | fill "#000000" | ||
9834 | width 3 | ||
9835 | targetArrow "standard" | ||
9836 | ] | ||
9837 | LabelGraphics | ||
9838 | [ | ||
9839 | text "data reference FunctionalInterface" | ||
9840 | fontSize 14 | ||
9841 | fontName "Consolas" | ||
9842 | configuration "AutoFlippingLabel" | ||
9843 | model "six_pos" | ||
9844 | position "thead" | ||
9845 | ] | ||
9846 | ] | ||
9847 | edge | ||
9848 | [ | ||
9849 | source 5 | ||
9850 | target 8 | ||
9851 | graphics | ||
9852 | [ | ||
9853 | fill "#000000" | ||
9854 | width 3 | ||
9855 | targetArrow "standard" | ||
9856 | ] | ||
9857 | LabelGraphics | ||
9858 | [ | ||
9859 | text "data reference FunctionalInterface" | ||
9860 | fontSize 14 | ||
9861 | fontName "Consolas" | ||
9862 | configuration "AutoFlippingLabel" | ||
9863 | model "six_pos" | ||
9864 | position "thead" | ||
9865 | ] | ||
9866 | ] | ||
9867 | edge | ||
9868 | [ | ||
9869 | source 5 | ||
9870 | target 11 | ||
9871 | graphics | ||
9872 | [ | ||
9873 | fill "#000000" | ||
9874 | width 3 | ||
9875 | targetArrow "standard" | ||
9876 | ] | ||
9877 | LabelGraphics | ||
9878 | [ | ||
9879 | text "data reference FunctionalInterface" | ||
9880 | fontSize 14 | ||
9881 | fontName "Consolas" | ||
9882 | configuration "AutoFlippingLabel" | ||
9883 | model "six_pos" | ||
9884 | position "thead" | ||
9885 | ] | ||
9886 | ] | ||
9887 | edge | ||
9888 | [ | ||
9889 | source 8 | ||
9890 | target 9 | ||
9891 | graphics | ||
9892 | [ | ||
9893 | fill "#000000" | ||
9894 | width 3 | ||
9895 | targetArrow "standard" | ||
9896 | ] | ||
9897 | LabelGraphics | ||
9898 | [ | ||
9899 | text "terminator reference FunctionalData" | ||
9900 | fontSize 14 | ||
9901 | fontName "Consolas" | ||
9902 | configuration "AutoFlippingLabel" | ||
9903 | model "six_pos" | ||
9904 | position "thead" | ||
9905 | ] | ||
9906 | ] | ||
9907 | edge | ||
9908 | [ | ||
9909 | source 6 | ||
9910 | target 10 | ||
9911 | graphics | ||
9912 | [ | ||
9913 | fill "#000000" | ||
9914 | width 3 | ||
9915 | targetArrow "standard" | ||
9916 | ] | ||
9917 | LabelGraphics | ||
9918 | [ | ||
9919 | text "terminator reference FunctionalData" | ||
9920 | fontSize 14 | ||
9921 | fontName "Consolas" | ||
9922 | configuration "AutoFlippingLabel" | ||
9923 | model "six_pos" | ||
9924 | position "thead" | ||
9925 | ] | ||
9926 | ] | ||
9927 | edge | ||
9928 | [ | ||
9929 | source 6 | ||
9930 | target 5 | ||
9931 | graphics | ||
9932 | [ | ||
9933 | fill "#000000" | ||
9934 | targetArrow "standard" | ||
9935 | ] | ||
9936 | LabelGraphics | ||
9937 | [ | ||
9938 | text "interface reference FunctionalData" | ||
9939 | fontSize 14 | ||
9940 | fontName "Consolas" | ||
9941 | configuration "AutoFlippingLabel" | ||
9942 | model "six_pos" | ||
9943 | position "thead" | ||
9944 | ] | ||
9945 | ] | ||
9946 | edge | ||
9947 | [ | ||
9948 | source 7 | ||
9949 | target 5 | ||
9950 | graphics | ||
9951 | [ | ||
9952 | fill "#000000" | ||
9953 | targetArrow "standard" | ||
9954 | ] | ||
9955 | LabelGraphics | ||
9956 | [ | ||
9957 | text "interface reference FunctionalData" | ||
9958 | fontSize 14 | ||
9959 | fontName "Consolas" | ||
9960 | configuration "AutoFlippingLabel" | ||
9961 | model "six_pos" | ||
9962 | position "thead" | ||
9963 | ] | ||
9964 | ] | ||
9965 | edge | ||
9966 | [ | ||
9967 | source 8 | ||
9968 | target 5 | ||
9969 | graphics | ||
9970 | [ | ||
9971 | fill "#000000" | ||
9972 | targetArrow "standard" | ||
9973 | ] | ||
9974 | LabelGraphics | ||
9975 | [ | ||
9976 | text "interface reference FunctionalData" | ||
9977 | fontSize 14 | ||
9978 | fontName "Consolas" | ||
9979 | configuration "AutoFlippingLabel" | ||
9980 | model "six_pos" | ||
9981 | position "thead" | ||
9982 | ] | ||
9983 | ] | ||
9984 | edge | ||
9985 | [ | ||
9986 | source 11 | ||
9987 | target 5 | ||
9988 | graphics | ||
9989 | [ | ||
9990 | fill "#000000" | ||
9991 | targetArrow "standard" | ||
9992 | ] | ||
9993 | LabelGraphics | ||
9994 | [ | ||
9995 | text "interface reference FunctionalData" | ||
9996 | fontSize 14 | ||
9997 | fontName "Consolas" | ||
9998 | configuration "AutoFlippingLabel" | ||
9999 | model "six_pos" | ||
10000 | position "thead" | ||
10001 | ] | ||
10002 | ] | ||
10003 | ] | ||
10004 | graph | ||
10005 | [ | ||
10006 | node | ||
10007 | [ | ||
10008 | id 0 | ||
10009 | graphics | ||
10010 | [ | ||
10011 | w 226.60000000000002 | ||
10012 | h 40 | ||
10013 | type "rectangle" | ||
10014 | fill "#FFFFFF" | ||
10015 | fill2 "#FFFFFF" | ||
10016 | outline "#000000" | ||
10017 | ] | ||
10018 | LabelGraphics | ||
10019 | [ | ||
10020 | text "Root literal FunctionType" | ||
10021 | outline "#000000" | ||
10022 | fill "#FFFFFF" | ||
10023 | fontSize 16 | ||
10024 | fontName "Monospace" | ||
10025 | autoSizePolicy "node_width" | ||
10026 | anchor "t" | ||
10027 | borderDistance 0.0 | ||
10028 | ] | ||
10029 | LabelGraphics | ||
10030 | [ | ||
10031 | text " | ||
10032 | FunctionType enum | ||
10033 | " | ||
10034 | fontSize 14 | ||
10035 | fontName "Consolas" | ||
10036 | alignment "left" | ||
10037 | anchor "tl" | ||
10038 | borderDistance 6 | ||
10039 | ] | ||
10040 | ] | ||
10041 | |||
10042 | node | ||
10043 | [ | ||
10044 | id 1 | ||
10045 | graphics | ||
10046 | [ | ||
10047 | w 297.0 | ||
10048 | h 40 | ||
10049 | type "rectangle" | ||
10050 | fill "#FFFFFF" | ||
10051 | fill2 "#FFFFFF" | ||
10052 | outline "#000000" | ||
10053 | ] | ||
10054 | LabelGraphics | ||
10055 | [ | ||
10056 | text "Intermediate literal FunctionType" | ||
10057 | outline "#000000" | ||
10058 | fill "#FFFFFF" | ||
10059 | fontSize 16 | ||
10060 | fontName "Monospace" | ||
10061 | autoSizePolicy "node_width" | ||
10062 | anchor "t" | ||
10063 | borderDistance 0.0 | ||
10064 | ] | ||
10065 | LabelGraphics | ||
10066 | [ | ||
10067 | text " | ||
10068 | FunctionType enum | ||
10069 | " | ||
10070 | fontSize 14 | ||
10071 | fontName "Consolas" | ||
10072 | alignment "left" | ||
10073 | anchor "tl" | ||
10074 | borderDistance 6 | ||
10075 | ] | ||
10076 | ] | ||
10077 | |||
10078 | node | ||
10079 | [ | ||
10080 | id 2 | ||
10081 | graphics | ||
10082 | [ | ||
10083 | w 226.60000000000002 | ||
10084 | h 40 | ||
10085 | type "rectangle" | ||
10086 | fill "#FFFFFF" | ||
10087 | fill2 "#FFFFFF" | ||
10088 | outline "#000000" | ||
10089 | ] | ||
10090 | LabelGraphics | ||
10091 | [ | ||
10092 | text "Leaf literal FunctionType" | ||
10093 | outline "#000000" | ||
10094 | fill "#FFFFFF" | ||
10095 | fontSize 16 | ||
10096 | fontName "Monospace" | ||
10097 | autoSizePolicy "node_width" | ||
10098 | anchor "t" | ||
10099 | borderDistance 0.0 | ||
10100 | ] | ||
10101 | LabelGraphics | ||
10102 | [ | ||
10103 | text " | ||
10104 | FunctionType enum | ||
10105 | " | ||
10106 | fontSize 14 | ||
10107 | fontName "Consolas" | ||
10108 | alignment "left" | ||
10109 | anchor "tl" | ||
10110 | borderDistance 6 | ||
10111 | ] | ||
10112 | ] | ||
10113 | |||
10114 | node | ||
10115 | [ | ||
10116 | id 3 | ||
10117 | graphics | ||
10118 | [ | ||
10119 | w 361.90000000000003 | ||
10120 | h 54 | ||
10121 | type "rectangle" | ||
10122 | fill "#FFFFFF" | ||
10123 | fill2 "#FFFFFF" | ||
10124 | outline "#000000" | ||
10125 | ] | ||
10126 | LabelGraphics | ||
10127 | [ | ||
10128 | text "o 1" | ||
10129 | outline "#000000" | ||
10130 | fill "#FFFFFF" | ||
10131 | fontSize 16 | ||
10132 | fontName "Monospace" | ||
10133 | autoSizePolicy "node_width" | ||
10134 | anchor "t" | ||
10135 | borderDistance 0.0 | ||
10136 | ] | ||
10137 | LabelGraphics | ||
10138 | [ | ||
10139 | text " | ||
10140 | FunctionalArchitectureModel class DefinedPart | ||
10141 | FunctionalArchitectureModel class | ||
10142 | " | ||
10143 | fontSize 14 | ||
10144 | fontName "Consolas" | ||
10145 | alignment "left" | ||
10146 | anchor "tl" | ||
10147 | borderDistance 6 | ||
10148 | ] | ||
10149 | ] | ||
10150 | |||
10151 | node | ||
10152 | [ | ||
10153 | id 4 | ||
10154 | graphics | ||
10155 | [ | ||
10156 | w 41.800000000000004 | ||
10157 | h 26 | ||
10158 | type "rectangle" | ||
10159 | fill "#FFFFFF" | ||
10160 | fill2 "#FFFFFF" | ||
10161 | outline "#000000" | ||
10162 | ] | ||
10163 | LabelGraphics | ||
10164 | [ | ||
10165 | text "true" | ||
10166 | outline "#000000" | ||
10167 | fill "#FFFFFF" | ||
10168 | fontSize 16 | ||
10169 | fontName "Monospace" | ||
10170 | autoSizePolicy "node_width" | ||
10171 | anchor "t" | ||
10172 | borderDistance 0.0 | ||
10173 | ] | ||
10174 | LabelGraphics | ||
10175 | [ | ||
10176 | text " | ||
10177 | " | ||
10178 | fontSize 14 | ||
10179 | fontName "Consolas" | ||
10180 | alignment "left" | ||
10181 | anchor "tl" | ||
10182 | borderDistance 6 | ||
10183 | ] | ||
10184 | ] | ||
10185 | |||
10186 | node | ||
10187 | [ | ||
10188 | id 5 | ||
10189 | graphics | ||
10190 | [ | ||
10191 | w 50.6 | ||
10192 | h 26 | ||
10193 | type "rectangle" | ||
10194 | fill "#FFFFFF" | ||
10195 | fill2 "#FFFFFF" | ||
10196 | outline "#000000" | ||
10197 | ] | ||
10198 | LabelGraphics | ||
10199 | [ | ||
10200 | text "false" | ||
10201 | outline "#000000" | ||
10202 | fill "#FFFFFF" | ||
10203 | fontSize 16 | ||
10204 | fontName "Monospace" | ||
10205 | autoSizePolicy "node_width" | ||
10206 | anchor "t" | ||
10207 | borderDistance 0.0 | ||
10208 | ] | ||
10209 | LabelGraphics | ||
10210 | [ | ||
10211 | text " | ||
10212 | " | ||
10213 | fontSize 14 | ||
10214 | fontName "Consolas" | ||
10215 | alignment "left" | ||
10216 | anchor "tl" | ||
10217 | borderDistance 6 | ||
10218 | ] | ||
10219 | ] | ||
10220 | |||
10221 | node | ||
10222 | [ | ||
10223 | id 6 | ||
10224 | graphics | ||
10225 | [ | ||
10226 | w 192.50000000000003 | ||
10227 | h 54 | ||
10228 | type "rectangle" | ||
10229 | fill "#FFFFFF" | ||
10230 | fill2 "#FFFFFF" | ||
10231 | outline "#000000" | ||
10232 | ] | ||
10233 | LabelGraphics | ||
10234 | [ | ||
10235 | text "null" | ||
10236 | outline "#000000" | ||
10237 | fill "#FFFFFF" | ||
10238 | fontSize 16 | ||
10239 | fontName "Monospace" | ||
10240 | autoSizePolicy "node_width" | ||
10241 | anchor "t" | ||
10242 | borderDistance 0.0 | ||
10243 | ] | ||
10244 | LabelGraphics | ||
10245 | [ | ||
10246 | text " | ||
10247 | FunctionalElement class | ||
10248 | Function class | ||
10249 | " | ||
10250 | fontSize 14 | ||
10251 | fontName "Consolas" | ||
10252 | alignment "left" | ||
10253 | anchor "tl" | ||
10254 | borderDistance 6 | ||
10255 | ] | ||
10256 | ] | ||
10257 | |||
10258 | node | ||
10259 | [ | ||
10260 | id 7 | ||
10261 | graphics | ||
10262 | [ | ||
10263 | w 207.9 | ||
10264 | h 40 | ||
10265 | type "rectangle" | ||
10266 | fill "#FFFFFF" | ||
10267 | fill2 "#FFFFFF" | ||
10268 | outline "#000000" | ||
10269 | ] | ||
10270 | LabelGraphics | ||
10271 | [ | ||
10272 | text "null" | ||
10273 | outline "#000000" | ||
10274 | fill "#FFFFFF" | ||
10275 | fontSize 16 | ||
10276 | fontName "Monospace" | ||
10277 | autoSizePolicy "node_width" | ||
10278 | anchor "t" | ||
10279 | borderDistance 0.0 | ||
10280 | ] | ||
10281 | LabelGraphics | ||
10282 | [ | ||
10283 | text " | ||
10284 | FunctionalInterface class | ||
10285 | " | ||
10286 | fontSize 14 | ||
10287 | fontName "Consolas" | ||
10288 | alignment "left" | ||
10289 | anchor "tl" | ||
10290 | borderDistance 6 | ||
10291 | ] | ||
10292 | ] | ||
10293 | |||
10294 | node | ||
10295 | [ | ||
10296 | id 8 | ||
10297 | graphics | ||
10298 | [ | ||
10299 | w 184.8 | ||
10300 | h 54 | ||
10301 | type "rectangle" | ||
10302 | fill "#FFFFFF" | ||
10303 | fill2 "#FFFFFF" | ||
10304 | outline "#000000" | ||
10305 | ] | ||
10306 | LabelGraphics | ||
10307 | [ | ||
10308 | text "null" | ||
10309 | outline "#000000" | ||
10310 | fill "#FFFFFF" | ||
10311 | fontSize 16 | ||
10312 | fontName "Monospace" | ||
10313 | autoSizePolicy "node_width" | ||
10314 | anchor "t" | ||
10315 | borderDistance 0.0 | ||
10316 | ] | ||
10317 | LabelGraphics | ||
10318 | [ | ||
10319 | text " | ||
10320 | FunctionalOutput class | ||
10321 | FunctionalData class | ||
10322 | " | ||
10323 | fontSize 14 | ||
10324 | fontName "Consolas" | ||
10325 | alignment "left" | ||
10326 | anchor "tl" | ||
10327 | borderDistance 6 | ||
10328 | ] | ||
10329 | ] | ||
10330 | |||
10331 | node | ||
10332 | [ | ||
10333 | id 9 | ||
10334 | graphics | ||
10335 | [ | ||
10336 | w 177.10000000000002 | ||
10337 | h 40 | ||
10338 | type "rectangle" | ||
10339 | fill "#FFFFFF" | ||
10340 | fill2 "#FFFFFF" | ||
10341 | outline "#000000" | ||
10342 | ] | ||
10343 | LabelGraphics | ||
10344 | [ | ||
10345 | text "null" | ||
10346 | outline "#000000" | ||
10347 | fill "#FFFFFF" | ||
10348 | fontSize 16 | ||
10349 | fontName "Monospace" | ||
10350 | autoSizePolicy "node_width" | ||
10351 | anchor "t" | ||
10352 | borderDistance 0.0 | ||
10353 | ] | ||
10354 | LabelGraphics | ||
10355 | [ | ||
10356 | text " | ||
10357 | InformationLink class | ||
10358 | " | ||
10359 | fontSize 14 | ||
10360 | fontName "Consolas" | ||
10361 | alignment "left" | ||
10362 | anchor "tl" | ||
10363 | borderDistance 6 | ||
10364 | ] | ||
10365 | ] | ||
10366 | |||
10367 | node | ||
10368 | [ | ||
10369 | id 10 | ||
10370 | graphics | ||
10371 | [ | ||
10372 | w 177.10000000000002 | ||
10373 | h 54 | ||
10374 | type "rectangle" | ||
10375 | fill "#FFFFFF" | ||
10376 | fill2 "#FFFFFF" | ||
10377 | outline "#000000" | ||
10378 | ] | ||
10379 | LabelGraphics | ||
10380 | [ | ||
10381 | text "null" | ||
10382 | outline "#000000" | ||
10383 | fill "#FFFFFF" | ||
10384 | fontSize 16 | ||
10385 | fontName "Monospace" | ||
10386 | autoSizePolicy "node_width" | ||
10387 | anchor "t" | ||
10388 | borderDistance 0.0 | ||
10389 | ] | ||
10390 | LabelGraphics | ||
10391 | [ | ||
10392 | text " | ||
10393 | FunctionalInput class | ||
10394 | FunctionalData class | ||
10395 | " | ||
10396 | fontSize 14 | ||
10397 | fontName "Consolas" | ||
10398 | alignment "left" | ||
10399 | anchor "tl" | ||
10400 | borderDistance 6 | ||
10401 | ] | ||
10402 | ] | ||
10403 | |||
10404 | node | ||
10405 | [ | ||
10406 | id 11 | ||
10407 | graphics | ||
10408 | [ | ||
10409 | w 184.8 | ||
10410 | h 54 | ||
10411 | type "rectangle" | ||
10412 | fill "#FFFFFF" | ||
10413 | fill2 "#FFFFFF" | ||
10414 | outline "#000000" | ||
10415 | ] | ||
10416 | LabelGraphics | ||
10417 | [ | ||
10418 | text "null" | ||
10419 | outline "#000000" | ||
10420 | fill "#FFFFFF" | ||
10421 | fontSize 16 | ||
10422 | fontName "Monospace" | ||
10423 | autoSizePolicy "node_width" | ||
10424 | anchor "t" | ||
10425 | borderDistance 0.0 | ||
10426 | ] | ||
10427 | LabelGraphics | ||
10428 | [ | ||
10429 | text " | ||
10430 | FunctionalOutput class | ||
10431 | FunctionalData class | ||
10432 | " | ||
10433 | fontSize 14 | ||
10434 | fontName "Consolas" | ||
10435 | alignment "left" | ||
10436 | anchor "tl" | ||
10437 | borderDistance 6 | ||
10438 | ] | ||
10439 | ] | ||
10440 | |||
10441 | node | ||
10442 | [ | ||
10443 | id 12 | ||
10444 | graphics | ||
10445 | [ | ||
10446 | w 112.2 | ||
10447 | h 26 | ||
10448 | type "rectangle" | ||
10449 | fill "#FFFFFF" | ||
10450 | fill2 "#FFFFFF" | ||
10451 | outline "#000000" | ||
10452 | ] | ||
10453 | LabelGraphics | ||
10454 | [ | ||
10455 | text "New Integers" | ||
10456 | outline "#000000" | ||
10457 | fill "#FFFFFF" | ||
10458 | fontSize 16 | ||
10459 | fontName "Monospace" | ||
10460 | autoSizePolicy "node_width" | ||
10461 | anchor "t" | ||
10462 | borderDistance 0.0 | ||
10463 | ] | ||
10464 | LabelGraphics | ||
10465 | [ | ||
10466 | text " | ||
10467 | " | ||
10468 | fontSize 14 | ||
10469 | fontName "Consolas" | ||
10470 | alignment "left" | ||
10471 | anchor "tl" | ||
10472 | borderDistance 6 | ||
10473 | ] | ||
10474 | ] | ||
10475 | |||
10476 | node | ||
10477 | [ | ||
10478 | id 13 | ||
10479 | graphics | ||
10480 | [ | ||
10481 | w 85.80000000000001 | ||
10482 | h 26 | ||
10483 | type "rectangle" | ||
10484 | fill "#FFFFFF" | ||
10485 | fill2 "#FFFFFF" | ||
10486 | outline "#000000" | ||
10487 | ] | ||
10488 | LabelGraphics | ||
10489 | [ | ||
10490 | text "New Reals" | ||
10491 | outline "#000000" | ||
10492 | fill "#FFFFFF" | ||
10493 | fontSize 16 | ||
10494 | fontName "Monospace" | ||
10495 | autoSizePolicy "node_width" | ||
10496 | anchor "t" | ||
10497 | borderDistance 0.0 | ||
10498 | ] | ||
10499 | LabelGraphics | ||
10500 | [ | ||
10501 | text " | ||
10502 | " | ||
10503 | fontSize 14 | ||
10504 | fontName "Consolas" | ||
10505 | alignment "left" | ||
10506 | anchor "tl" | ||
10507 | borderDistance 6 | ||
10508 | ] | ||
10509 | ] | ||
10510 | |||
10511 | node | ||
10512 | [ | ||
10513 | id 14 | ||
10514 | graphics | ||
10515 | [ | ||
10516 | w 103.4 | ||
10517 | h 26 | ||
10518 | type "rectangle" | ||
10519 | fill "#FFFFFF" | ||
10520 | fill2 "#FFFFFF" | ||
10521 | outline "#000000" | ||
10522 | ] | ||
10523 | LabelGraphics | ||
10524 | [ | ||
10525 | text "New Strings" | ||
10526 | outline "#000000" | ||
10527 | fill "#FFFFFF" | ||
10528 | fontSize 16 | ||
10529 | fontName "Monospace" | ||
10530 | autoSizePolicy "node_width" | ||
10531 | anchor "t" | ||
10532 | borderDistance 0.0 | ||
10533 | ] | ||
10534 | LabelGraphics | ||
10535 | [ | ||
10536 | text " | ||
10537 | " | ||
10538 | fontSize 14 | ||
10539 | fontName "Consolas" | ||
10540 | alignment "left" | ||
10541 | anchor "tl" | ||
10542 | borderDistance 6 | ||
10543 | ] | ||
10544 | ] | ||
10545 | |||
10546 | node | ||
10547 | [ | ||
10548 | id 15 | ||
10549 | graphics | ||
10550 | [ | ||
10551 | w 103.4 | ||
10552 | h 26 | ||
10553 | type "rectangle" | ||
10554 | fill "#FFFFFF" | ||
10555 | fill2 "#FFFFFF" | ||
10556 | outline "#000000" | ||
10557 | ] | ||
10558 | LabelGraphics | ||
10559 | [ | ||
10560 | text "New Objects" | ||
10561 | outline "#000000" | ||
10562 | fill "#FFFFFF" | ||
10563 | fontSize 16 | ||
10564 | fontName "Monospace" | ||
10565 | autoSizePolicy "node_width" | ||
10566 | anchor "t" | ||
10567 | borderDistance 0.0 | ||
10568 | ] | ||
10569 | LabelGraphics | ||
10570 | [ | ||
10571 | text " | ||
10572 | " | ||
10573 | fontSize 14 | ||
10574 | fontName "Consolas" | ||
10575 | alignment "left" | ||
10576 | anchor "tl" | ||
10577 | borderDistance 6 | ||
10578 | ] | ||
10579 | ] | ||
10580 | edge | ||
10581 | [ | ||
10582 | source 6 | ||
10583 | target 7 | ||
10584 | graphics | ||
10585 | [ | ||
10586 | fill "#000000" | ||
10587 | width 3 | ||
10588 | targetArrow "standard" | ||
10589 | ] | ||
10590 | LabelGraphics | ||
10591 | [ | ||
10592 | text "interface reference FunctionalElement" | ||
10593 | fontSize 14 | ||
10594 | fontName "Consolas" | ||
10595 | configuration "AutoFlippingLabel" | ||
10596 | model "six_pos" | ||
10597 | position "thead" | ||
10598 | ] | ||
10599 | ] | ||
10600 | edge | ||
10601 | [ | ||
10602 | source 6 | ||
10603 | target 3 | ||
10604 | graphics | ||
10605 | [ | ||
10606 | fill "#000000" | ||
10607 | targetArrow "standard" | ||
10608 | ] | ||
10609 | LabelGraphics | ||
10610 | [ | ||
10611 | text "model reference FunctionalElement" | ||
10612 | fontSize 14 | ||
10613 | fontName "Consolas" | ||
10614 | configuration "AutoFlippingLabel" | ||
10615 | model "six_pos" | ||
10616 | position "thead" | ||
10617 | ] | ||
10618 | ] | ||
10619 | edge | ||
10620 | [ | ||
10621 | source 3 | ||
10622 | target 6 | ||
10623 | graphics | ||
10624 | [ | ||
10625 | fill "#000000" | ||
10626 | width 3 | ||
10627 | targetArrow "standard" | ||
10628 | ] | ||
10629 | LabelGraphics | ||
10630 | [ | ||
10631 | text "rootElements reference FunctionalArchitectureModel" | ||
10632 | fontSize 14 | ||
10633 | fontName "Consolas" | ||
10634 | configuration "AutoFlippingLabel" | ||
10635 | model "six_pos" | ||
10636 | position "thead" | ||
10637 | ] | ||
10638 | ] | ||
10639 | edge | ||
10640 | [ | ||
10641 | source 9 | ||
10642 | target 8 | ||
10643 | graphics | ||
10644 | [ | ||
10645 | fill "#000000" | ||
10646 | targetArrow "standard" | ||
10647 | ] | ||
10648 | LabelGraphics | ||
10649 | [ | ||
10650 | text "from reference InformationLink" | ||
10651 | fontSize 14 | ||
10652 | fontName "Consolas" | ||
10653 | configuration "AutoFlippingLabel" | ||
10654 | model "six_pos" | ||
10655 | position "thead" | ||
10656 | ] | ||
10657 | ] | ||
10658 | edge | ||
10659 | [ | ||
10660 | source 9 | ||
10661 | target 10 | ||
10662 | graphics | ||
10663 | [ | ||
10664 | fill "#000000" | ||
10665 | targetArrow "standard" | ||
10666 | ] | ||
10667 | LabelGraphics | ||
10668 | [ | ||
10669 | text "to reference InformationLink" | ||
10670 | fontSize 14 | ||
10671 | fontName "Consolas" | ||
10672 | configuration "AutoFlippingLabel" | ||
10673 | model "six_pos" | ||
10674 | position "thead" | ||
10675 | ] | ||
10676 | ] | ||
10677 | edge | ||
10678 | [ | ||
10679 | source 7 | ||
10680 | target 8 | ||
10681 | graphics | ||
10682 | [ | ||
10683 | fill "#000000" | ||
10684 | width 3 | ||
10685 | targetArrow "standard" | ||
10686 | ] | ||
10687 | LabelGraphics | ||
10688 | [ | ||
10689 | text "data reference FunctionalInterface" | ||
10690 | fontSize 14 | ||
10691 | fontName "Consolas" | ||
10692 | configuration "AutoFlippingLabel" | ||
10693 | model "six_pos" | ||
10694 | position "thead" | ||
10695 | ] | ||
10696 | ] | ||
10697 | edge | ||
10698 | [ | ||
10699 | source 7 | ||
10700 | target 10 | ||
10701 | graphics | ||
10702 | [ | ||
10703 | fill "#000000" | ||
10704 | width 3 | ||
10705 | targetArrow "standard" | ||
10706 | ] | ||
10707 | LabelGraphics | ||
10708 | [ | ||
10709 | text "data reference FunctionalInterface" | ||
10710 | fontSize 14 | ||
10711 | fontName "Consolas" | ||
10712 | configuration "AutoFlippingLabel" | ||
10713 | model "six_pos" | ||
10714 | position "thead" | ||
10715 | ] | ||
10716 | ] | ||
10717 | edge | ||
10718 | [ | ||
10719 | source 7 | ||
10720 | target 11 | ||
10721 | graphics | ||
10722 | [ | ||
10723 | fill "#000000" | ||
10724 | width 3 | ||
10725 | targetArrow "standard" | ||
10726 | ] | ||
10727 | LabelGraphics | ||
10728 | [ | ||
10729 | text "data reference FunctionalInterface" | ||
10730 | fontSize 14 | ||
10731 | fontName "Consolas" | ||
10732 | configuration "AutoFlippingLabel" | ||
10733 | model "six_pos" | ||
10734 | position "thead" | ||
10735 | ] | ||
10736 | ] | ||
10737 | edge | ||
10738 | [ | ||
10739 | source 7 | ||
10740 | target 6 | ||
10741 | graphics | ||
10742 | [ | ||
10743 | fill "#000000" | ||
10744 | targetArrow "standard" | ||
10745 | ] | ||
10746 | LabelGraphics | ||
10747 | [ | ||
10748 | text "element reference FunctionalInterface" | ||
10749 | fontSize 14 | ||
10750 | fontName "Consolas" | ||
10751 | configuration "AutoFlippingLabel" | ||
10752 | model "six_pos" | ||
10753 | position "thead" | ||
10754 | ] | ||
10755 | ] | ||
10756 | edge | ||
10757 | [ | ||
10758 | source 10 | ||
10759 | target 9 | ||
10760 | graphics | ||
10761 | [ | ||
10762 | fill "#000000" | ||
10763 | targetArrow "standard" | ||
10764 | ] | ||
10765 | LabelGraphics | ||
10766 | [ | ||
10767 | text "IncomingLinks reference FunctionalInput" | ||
10768 | fontSize 14 | ||
10769 | fontName "Consolas" | ||
10770 | configuration "AutoFlippingLabel" | ||
10771 | model "six_pos" | ||
10772 | position "thead" | ||
10773 | ] | ||
10774 | ] | ||
10775 | edge | ||
10776 | [ | ||
10777 | source 8 | ||
10778 | target 9 | ||
10779 | graphics | ||
10780 | [ | ||
10781 | fill "#000000" | ||
10782 | width 3 | ||
10783 | targetArrow "standard" | ||
10784 | ] | ||
10785 | LabelGraphics | ||
10786 | [ | ||
10787 | text "outgoingLinks reference FunctionalOutput" | ||
10788 | fontSize 14 | ||
10789 | fontName "Consolas" | ||
10790 | configuration "AutoFlippingLabel" | ||
10791 | model "six_pos" | ||
10792 | position "thead" | ||
10793 | ] | ||
10794 | ] | ||
10795 | edge | ||
10796 | [ | ||
10797 | source 8 | ||
10798 | target 7 | ||
10799 | graphics | ||
10800 | [ | ||
10801 | fill "#000000" | ||
10802 | targetArrow "standard" | ||
10803 | ] | ||
10804 | LabelGraphics | ||
10805 | [ | ||
10806 | text "interface reference FunctionalData" | ||
10807 | fontSize 14 | ||
10808 | fontName "Consolas" | ||
10809 | configuration "AutoFlippingLabel" | ||
10810 | model "six_pos" | ||
10811 | position "thead" | ||
10812 | ] | ||
10813 | ] | ||
10814 | edge | ||
10815 | [ | ||
10816 | source 10 | ||
10817 | target 7 | ||
10818 | graphics | ||
10819 | [ | ||
10820 | fill "#000000" | ||
10821 | targetArrow "standard" | ||
10822 | ] | ||
10823 | LabelGraphics | ||
10824 | [ | ||
10825 | text "interface reference FunctionalData" | ||
10826 | fontSize 14 | ||
10827 | fontName "Consolas" | ||
10828 | configuration "AutoFlippingLabel" | ||
10829 | model "six_pos" | ||
10830 | position "thead" | ||
10831 | ] | ||
10832 | ] | ||
10833 | edge | ||
10834 | [ | ||
10835 | source 11 | ||
10836 | target 7 | ||
10837 | graphics | ||
10838 | [ | ||
10839 | fill "#000000" | ||
10840 | targetArrow "standard" | ||
10841 | ] | ||
10842 | LabelGraphics | ||
10843 | [ | ||
10844 | text "interface reference FunctionalData" | ||
10845 | fontSize 14 | ||
10846 | fontName "Consolas" | ||
10847 | configuration "AutoFlippingLabel" | ||
10848 | model "six_pos" | ||
10849 | position "thead" | ||
10850 | ] | ||
10851 | ] | ||
10852 | edge | ||
10853 | [ | ||
10854 | source 6 | ||
10855 | target 0 | ||
10856 | graphics | ||
10857 | [ | ||
10858 | fill "#000000" | ||
10859 | targetArrow "standard" | ||
10860 | ] | ||
10861 | LabelGraphics | ||
10862 | [ | ||
10863 | text "type attribute Function" | ||
10864 | fontSize 14 | ||
10865 | fontName "Consolas" | ||
10866 | configuration "AutoFlippingLabel" | ||
10867 | model "six_pos" | ||
10868 | position "thead" | ||
10869 | ] | ||
10870 | ] | ||
10871 | ] | ||
10872 | graph | ||
10873 | [ | ||
10874 | node | ||
10875 | [ | ||
10876 | id 0 | ||
10877 | graphics | ||
10878 | [ | ||
10879 | w 226.60000000000002 | ||
10880 | h 40 | ||
10881 | type "rectangle" | ||
10882 | fill "#FFFFFF" | ||
10883 | fill2 "#FFFFFF" | ||
10884 | outline "#000000" | ||
10885 | ] | ||
10886 | LabelGraphics | ||
10887 | [ | ||
10888 | text "Root literal FunctionType" | ||
10889 | outline "#000000" | ||
10890 | fill "#FFFFFF" | ||
10891 | fontSize 16 | ||
10892 | fontName "Monospace" | ||
10893 | autoSizePolicy "node_width" | ||
10894 | anchor "t" | ||
10895 | borderDistance 0.0 | ||
10896 | ] | ||
10897 | LabelGraphics | ||
10898 | [ | ||
10899 | text " | ||
10900 | FunctionType enum | ||
10901 | " | ||
10902 | fontSize 14 | ||
10903 | fontName "Consolas" | ||
10904 | alignment "left" | ||
10905 | anchor "tl" | ||
10906 | borderDistance 6 | ||
10907 | ] | ||
10908 | ] | ||
10909 | |||
10910 | node | ||
10911 | [ | ||
10912 | id 1 | ||
10913 | graphics | ||
10914 | [ | ||
10915 | w 297.0 | ||
10916 | h 40 | ||
10917 | type "rectangle" | ||
10918 | fill "#FFFFFF" | ||
10919 | fill2 "#FFFFFF" | ||
10920 | outline "#000000" | ||
10921 | ] | ||
10922 | LabelGraphics | ||
10923 | [ | ||
10924 | text "Intermediate literal FunctionType" | ||
10925 | outline "#000000" | ||
10926 | fill "#FFFFFF" | ||
10927 | fontSize 16 | ||
10928 | fontName "Monospace" | ||
10929 | autoSizePolicy "node_width" | ||
10930 | anchor "t" | ||
10931 | borderDistance 0.0 | ||
10932 | ] | ||
10933 | LabelGraphics | ||
10934 | [ | ||
10935 | text " | ||
10936 | FunctionType enum | ||
10937 | " | ||
10938 | fontSize 14 | ||
10939 | fontName "Consolas" | ||
10940 | alignment "left" | ||
10941 | anchor "tl" | ||
10942 | borderDistance 6 | ||
10943 | ] | ||
10944 | ] | ||
10945 | |||
10946 | node | ||
10947 | [ | ||
10948 | id 2 | ||
10949 | graphics | ||
10950 | [ | ||
10951 | w 226.60000000000002 | ||
10952 | h 40 | ||
10953 | type "rectangle" | ||
10954 | fill "#FFFFFF" | ||
10955 | fill2 "#FFFFFF" | ||
10956 | outline "#000000" | ||
10957 | ] | ||
10958 | LabelGraphics | ||
10959 | [ | ||
10960 | text "Leaf literal FunctionType" | ||
10961 | outline "#000000" | ||
10962 | fill "#FFFFFF" | ||
10963 | fontSize 16 | ||
10964 | fontName "Monospace" | ||
10965 | autoSizePolicy "node_width" | ||
10966 | anchor "t" | ||
10967 | borderDistance 0.0 | ||
10968 | ] | ||
10969 | LabelGraphics | ||
10970 | [ | ||
10971 | text " | ||
10972 | FunctionType enum | ||
10973 | " | ||
10974 | fontSize 14 | ||
10975 | fontName "Consolas" | ||
10976 | alignment "left" | ||
10977 | anchor "tl" | ||
10978 | borderDistance 6 | ||
10979 | ] | ||
10980 | ] | ||
10981 | |||
10982 | node | ||
10983 | [ | ||
10984 | id 3 | ||
10985 | graphics | ||
10986 | [ | ||
10987 | w 361.90000000000003 | ||
10988 | h 54 | ||
10989 | type "rectangle" | ||
10990 | fill "#FFFFFF" | ||
10991 | fill2 "#FFFFFF" | ||
10992 | outline "#000000" | ||
10993 | ] | ||
10994 | LabelGraphics | ||
10995 | [ | ||
10996 | text "o 1" | ||
10997 | outline "#000000" | ||
10998 | fill "#FFFFFF" | ||
10999 | fontSize 16 | ||
11000 | fontName "Monospace" | ||
11001 | autoSizePolicy "node_width" | ||
11002 | anchor "t" | ||
11003 | borderDistance 0.0 | ||
11004 | ] | ||
11005 | LabelGraphics | ||
11006 | [ | ||
11007 | text " | ||
11008 | FunctionalArchitectureModel class DefinedPart | ||
11009 | FunctionalArchitectureModel class | ||
11010 | " | ||
11011 | fontSize 14 | ||
11012 | fontName "Consolas" | ||
11013 | alignment "left" | ||
11014 | anchor "tl" | ||
11015 | borderDistance 6 | ||
11016 | ] | ||
11017 | ] | ||
11018 | |||
11019 | node | ||
11020 | [ | ||
11021 | id 4 | ||
11022 | graphics | ||
11023 | [ | ||
11024 | w 41.800000000000004 | ||
11025 | h 26 | ||
11026 | type "rectangle" | ||
11027 | fill "#FFFFFF" | ||
11028 | fill2 "#FFFFFF" | ||
11029 | outline "#000000" | ||
11030 | ] | ||
11031 | LabelGraphics | ||
11032 | [ | ||
11033 | text "true" | ||
11034 | outline "#000000" | ||
11035 | fill "#FFFFFF" | ||
11036 | fontSize 16 | ||
11037 | fontName "Monospace" | ||
11038 | autoSizePolicy "node_width" | ||
11039 | anchor "t" | ||
11040 | borderDistance 0.0 | ||
11041 | ] | ||
11042 | LabelGraphics | ||
11043 | [ | ||
11044 | text " | ||
11045 | " | ||
11046 | fontSize 14 | ||
11047 | fontName "Consolas" | ||
11048 | alignment "left" | ||
11049 | anchor "tl" | ||
11050 | borderDistance 6 | ||
11051 | ] | ||
11052 | ] | ||
11053 | |||
11054 | node | ||
11055 | [ | ||
11056 | id 5 | ||
11057 | graphics | ||
11058 | [ | ||
11059 | w 50.6 | ||
11060 | h 26 | ||
11061 | type "rectangle" | ||
11062 | fill "#FFFFFF" | ||
11063 | fill2 "#FFFFFF" | ||
11064 | outline "#000000" | ||
11065 | ] | ||
11066 | LabelGraphics | ||
11067 | [ | ||
11068 | text "false" | ||
11069 | outline "#000000" | ||
11070 | fill "#FFFFFF" | ||
11071 | fontSize 16 | ||
11072 | fontName "Monospace" | ||
11073 | autoSizePolicy "node_width" | ||
11074 | anchor "t" | ||
11075 | borderDistance 0.0 | ||
11076 | ] | ||
11077 | LabelGraphics | ||
11078 | [ | ||
11079 | text " | ||
11080 | " | ||
11081 | fontSize 14 | ||
11082 | fontName "Consolas" | ||
11083 | alignment "left" | ||
11084 | anchor "tl" | ||
11085 | borderDistance 6 | ||
11086 | ] | ||
11087 | ] | ||
11088 | |||
11089 | node | ||
11090 | [ | ||
11091 | id 6 | ||
11092 | graphics | ||
11093 | [ | ||
11094 | w 192.50000000000003 | ||
11095 | h 54 | ||
11096 | type "rectangle" | ||
11097 | fill "#FFFFFF" | ||
11098 | fill2 "#FFFFFF" | ||
11099 | outline "#000000" | ||
11100 | ] | ||
11101 | LabelGraphics | ||
11102 | [ | ||
11103 | text "null" | ||
11104 | outline "#000000" | ||
11105 | fill "#FFFFFF" | ||
11106 | fontSize 16 | ||
11107 | fontName "Monospace" | ||
11108 | autoSizePolicy "node_width" | ||
11109 | anchor "t" | ||
11110 | borderDistance 0.0 | ||
11111 | ] | ||
11112 | LabelGraphics | ||
11113 | [ | ||
11114 | text " | ||
11115 | FunctionalElement class | ||
11116 | Function class | ||
11117 | " | ||
11118 | fontSize 14 | ||
11119 | fontName "Consolas" | ||
11120 | alignment "left" | ||
11121 | anchor "tl" | ||
11122 | borderDistance 6 | ||
11123 | ] | ||
11124 | ] | ||
11125 | |||
11126 | node | ||
11127 | [ | ||
11128 | id 7 | ||
11129 | graphics | ||
11130 | [ | ||
11131 | w 207.9 | ||
11132 | h 40 | ||
11133 | type "rectangle" | ||
11134 | fill "#FFFFFF" | ||
11135 | fill2 "#FFFFFF" | ||
11136 | outline "#000000" | ||
11137 | ] | ||
11138 | LabelGraphics | ||
11139 | [ | ||
11140 | text "null" | ||
11141 | outline "#000000" | ||
11142 | fill "#FFFFFF" | ||
11143 | fontSize 16 | ||
11144 | fontName "Monospace" | ||
11145 | autoSizePolicy "node_width" | ||
11146 | anchor "t" | ||
11147 | borderDistance 0.0 | ||
11148 | ] | ||
11149 | LabelGraphics | ||
11150 | [ | ||
11151 | text " | ||
11152 | FunctionalInterface class | ||
11153 | " | ||
11154 | fontSize 14 | ||
11155 | fontName "Consolas" | ||
11156 | alignment "left" | ||
11157 | anchor "tl" | ||
11158 | borderDistance 6 | ||
11159 | ] | ||
11160 | ] | ||
11161 | |||
11162 | node | ||
11163 | [ | ||
11164 | id 8 | ||
11165 | graphics | ||
11166 | [ | ||
11167 | w 184.8 | ||
11168 | h 54 | ||
11169 | type "rectangle" | ||
11170 | fill "#FFFFFF" | ||
11171 | fill2 "#FFFFFF" | ||
11172 | outline "#000000" | ||
11173 | ] | ||
11174 | LabelGraphics | ||
11175 | [ | ||
11176 | text "null" | ||
11177 | outline "#000000" | ||
11178 | fill "#FFFFFF" | ||
11179 | fontSize 16 | ||
11180 | fontName "Monospace" | ||
11181 | autoSizePolicy "node_width" | ||
11182 | anchor "t" | ||
11183 | borderDistance 0.0 | ||
11184 | ] | ||
11185 | LabelGraphics | ||
11186 | [ | ||
11187 | text " | ||
11188 | FunctionalOutput class | ||
11189 | FunctionalData class | ||
11190 | " | ||
11191 | fontSize 14 | ||
11192 | fontName "Consolas" | ||
11193 | alignment "left" | ||
11194 | anchor "tl" | ||
11195 | borderDistance 6 | ||
11196 | ] | ||
11197 | ] | ||
11198 | |||
11199 | node | ||
11200 | [ | ||
11201 | id 9 | ||
11202 | graphics | ||
11203 | [ | ||
11204 | w 161.70000000000002 | ||
11205 | h 40 | ||
11206 | type "rectangle" | ||
11207 | fill "#FFFFFF" | ||
11208 | fill2 "#FFFFFF" | ||
11209 | outline "#000000" | ||
11210 | ] | ||
11211 | LabelGraphics | ||
11212 | [ | ||
11213 | text "null" | ||
11214 | outline "#000000" | ||
11215 | fill "#FFFFFF" | ||
11216 | fontSize 16 | ||
11217 | fontName "Monospace" | ||
11218 | autoSizePolicy "node_width" | ||
11219 | anchor "t" | ||
11220 | borderDistance 0.0 | ||
11221 | ] | ||
11222 | LabelGraphics | ||
11223 | [ | ||
11224 | text " | ||
11225 | FAMTerminator class | ||
11226 | " | ||
11227 | fontSize 14 | ||
11228 | fontName "Consolas" | ||
11229 | alignment "left" | ||
11230 | anchor "tl" | ||
11231 | borderDistance 6 | ||
11232 | ] | ||
11233 | ] | ||
11234 | |||
11235 | node | ||
11236 | [ | ||
11237 | id 10 | ||
11238 | graphics | ||
11239 | [ | ||
11240 | w 184.8 | ||
11241 | h 54 | ||
11242 | type "rectangle" | ||
11243 | fill "#FFFFFF" | ||
11244 | fill2 "#FFFFFF" | ||
11245 | outline "#000000" | ||
11246 | ] | ||
11247 | LabelGraphics | ||
11248 | [ | ||
11249 | text "null" | ||
11250 | outline "#000000" | ||
11251 | fill "#FFFFFF" | ||
11252 | fontSize 16 | ||
11253 | fontName "Monospace" | ||
11254 | autoSizePolicy "node_width" | ||
11255 | anchor "t" | ||
11256 | borderDistance 0.0 | ||
11257 | ] | ||
11258 | LabelGraphics | ||
11259 | [ | ||
11260 | text " | ||
11261 | FunctionalOutput class | ||
11262 | FunctionalData class | ||
11263 | " | ||
11264 | fontSize 14 | ||
11265 | fontName "Consolas" | ||
11266 | alignment "left" | ||
11267 | anchor "tl" | ||
11268 | borderDistance 6 | ||
11269 | ] | ||
11270 | ] | ||
11271 | |||
11272 | node | ||
11273 | [ | ||
11274 | id 11 | ||
11275 | graphics | ||
11276 | [ | ||
11277 | w 184.8 | ||
11278 | h 54 | ||
11279 | type "rectangle" | ||
11280 | fill "#FFFFFF" | ||
11281 | fill2 "#FFFFFF" | ||
11282 | outline "#000000" | ||
11283 | ] | ||
11284 | LabelGraphics | ||
11285 | [ | ||
11286 | text "null" | ||
11287 | outline "#000000" | ||
11288 | fill "#FFFFFF" | ||
11289 | fontSize 16 | ||
11290 | fontName "Monospace" | ||
11291 | autoSizePolicy "node_width" | ||
11292 | anchor "t" | ||
11293 | borderDistance 0.0 | ||
11294 | ] | ||
11295 | LabelGraphics | ||
11296 | [ | ||
11297 | text " | ||
11298 | FunctionalOutput class | ||
11299 | FunctionalData class | ||
11300 | " | ||
11301 | fontSize 14 | ||
11302 | fontName "Consolas" | ||
11303 | alignment "left" | ||
11304 | anchor "tl" | ||
11305 | borderDistance 6 | ||
11306 | ] | ||
11307 | ] | ||
11308 | |||
11309 | node | ||
11310 | [ | ||
11311 | id 12 | ||
11312 | graphics | ||
11313 | [ | ||
11314 | w 112.2 | ||
11315 | h 26 | ||
11316 | type "rectangle" | ||
11317 | fill "#FFFFFF" | ||
11318 | fill2 "#FFFFFF" | ||
11319 | outline "#000000" | ||
11320 | ] | ||
11321 | LabelGraphics | ||
11322 | [ | ||
11323 | text "New Integers" | ||
11324 | outline "#000000" | ||
11325 | fill "#FFFFFF" | ||
11326 | fontSize 16 | ||
11327 | fontName "Monospace" | ||
11328 | autoSizePolicy "node_width" | ||
11329 | anchor "t" | ||
11330 | borderDistance 0.0 | ||
11331 | ] | ||
11332 | LabelGraphics | ||
11333 | [ | ||
11334 | text " | ||
11335 | " | ||
11336 | fontSize 14 | ||
11337 | fontName "Consolas" | ||
11338 | alignment "left" | ||
11339 | anchor "tl" | ||
11340 | borderDistance 6 | ||
11341 | ] | ||
11342 | ] | ||
11343 | |||
11344 | node | ||
11345 | [ | ||
11346 | id 13 | ||
11347 | graphics | ||
11348 | [ | ||
11349 | w 85.80000000000001 | ||
11350 | h 26 | ||
11351 | type "rectangle" | ||
11352 | fill "#FFFFFF" | ||
11353 | fill2 "#FFFFFF" | ||
11354 | outline "#000000" | ||
11355 | ] | ||
11356 | LabelGraphics | ||
11357 | [ | ||
11358 | text "New Reals" | ||
11359 | outline "#000000" | ||
11360 | fill "#FFFFFF" | ||
11361 | fontSize 16 | ||
11362 | fontName "Monospace" | ||
11363 | autoSizePolicy "node_width" | ||
11364 | anchor "t" | ||
11365 | borderDistance 0.0 | ||
11366 | ] | ||
11367 | LabelGraphics | ||
11368 | [ | ||
11369 | text " | ||
11370 | " | ||
11371 | fontSize 14 | ||
11372 | fontName "Consolas" | ||
11373 | alignment "left" | ||
11374 | anchor "tl" | ||
11375 | borderDistance 6 | ||
11376 | ] | ||
11377 | ] | ||
11378 | |||
11379 | node | ||
11380 | [ | ||
11381 | id 14 | ||
11382 | graphics | ||
11383 | [ | ||
11384 | w 103.4 | ||
11385 | h 26 | ||
11386 | type "rectangle" | ||
11387 | fill "#FFFFFF" | ||
11388 | fill2 "#FFFFFF" | ||
11389 | outline "#000000" | ||
11390 | ] | ||
11391 | LabelGraphics | ||
11392 | [ | ||
11393 | text "New Strings" | ||
11394 | outline "#000000" | ||
11395 | fill "#FFFFFF" | ||
11396 | fontSize 16 | ||
11397 | fontName "Monospace" | ||
11398 | autoSizePolicy "node_width" | ||
11399 | anchor "t" | ||
11400 | borderDistance 0.0 | ||
11401 | ] | ||
11402 | LabelGraphics | ||
11403 | [ | ||
11404 | text " | ||
11405 | " | ||
11406 | fontSize 14 | ||
11407 | fontName "Consolas" | ||
11408 | alignment "left" | ||
11409 | anchor "tl" | ||
11410 | borderDistance 6 | ||
11411 | ] | ||
11412 | ] | ||
11413 | |||
11414 | node | ||
11415 | [ | ||
11416 | id 15 | ||
11417 | graphics | ||
11418 | [ | ||
11419 | w 103.4 | ||
11420 | h 26 | ||
11421 | type "rectangle" | ||
11422 | fill "#FFFFFF" | ||
11423 | fill2 "#FFFFFF" | ||
11424 | outline "#000000" | ||
11425 | ] | ||
11426 | LabelGraphics | ||
11427 | [ | ||
11428 | text "New Objects" | ||
11429 | outline "#000000" | ||
11430 | fill "#FFFFFF" | ||
11431 | fontSize 16 | ||
11432 | fontName "Monospace" | ||
11433 | autoSizePolicy "node_width" | ||
11434 | anchor "t" | ||
11435 | borderDistance 0.0 | ||
11436 | ] | ||
11437 | LabelGraphics | ||
11438 | [ | ||
11439 | text " | ||
11440 | " | ||
11441 | fontSize 14 | ||
11442 | fontName "Consolas" | ||
11443 | alignment "left" | ||
11444 | anchor "tl" | ||
11445 | borderDistance 6 | ||
11446 | ] | ||
11447 | ] | ||
11448 | edge | ||
11449 | [ | ||
11450 | source 6 | ||
11451 | target 7 | ||
11452 | graphics | ||
11453 | [ | ||
11454 | fill "#000000" | ||
11455 | width 3 | ||
11456 | targetArrow "standard" | ||
11457 | ] | ||
11458 | LabelGraphics | ||
11459 | [ | ||
11460 | text "interface reference FunctionalElement" | ||
11461 | fontSize 14 | ||
11462 | fontName "Consolas" | ||
11463 | configuration "AutoFlippingLabel" | ||
11464 | model "six_pos" | ||
11465 | position "thead" | ||
11466 | ] | ||
11467 | ] | ||
11468 | edge | ||
11469 | [ | ||
11470 | source 6 | ||
11471 | target 3 | ||
11472 | graphics | ||
11473 | [ | ||
11474 | fill "#000000" | ||
11475 | targetArrow "standard" | ||
11476 | ] | ||
11477 | LabelGraphics | ||
11478 | [ | ||
11479 | text "model reference FunctionalElement" | ||
11480 | fontSize 14 | ||
11481 | fontName "Consolas" | ||
11482 | configuration "AutoFlippingLabel" | ||
11483 | model "six_pos" | ||
11484 | position "thead" | ||
11485 | ] | ||
11486 | ] | ||
11487 | edge | ||
11488 | [ | ||
11489 | source 3 | ||
11490 | target 6 | ||
11491 | graphics | ||
11492 | [ | ||
11493 | fill "#000000" | ||
11494 | width 3 | ||
11495 | targetArrow "standard" | ||
11496 | ] | ||
11497 | LabelGraphics | ||
11498 | [ | ||
11499 | text "rootElements reference FunctionalArchitectureModel" | ||
11500 | fontSize 14 | ||
11501 | fontName "Consolas" | ||
11502 | configuration "AutoFlippingLabel" | ||
11503 | model "six_pos" | ||
11504 | position "thead" | ||
11505 | ] | ||
11506 | ] | ||
11507 | edge | ||
11508 | [ | ||
11509 | source 9 | ||
11510 | target 8 | ||
11511 | graphics | ||
11512 | [ | ||
11513 | fill "#000000" | ||
11514 | targetArrow "standard" | ||
11515 | ] | ||
11516 | LabelGraphics | ||
11517 | [ | ||
11518 | text "data reference FAMTerminator" | ||
11519 | fontSize 14 | ||
11520 | fontName "Consolas" | ||
11521 | configuration "AutoFlippingLabel" | ||
11522 | model "six_pos" | ||
11523 | position "thead" | ||
11524 | ] | ||
11525 | ] | ||
11526 | edge | ||
11527 | [ | ||
11528 | source 7 | ||
11529 | target 8 | ||
11530 | graphics | ||
11531 | [ | ||
11532 | fill "#000000" | ||
11533 | width 3 | ||
11534 | targetArrow "standard" | ||
11535 | ] | ||
11536 | LabelGraphics | ||
11537 | [ | ||
11538 | text "data reference FunctionalInterface" | ||
11539 | fontSize 14 | ||
11540 | fontName "Consolas" | ||
11541 | configuration "AutoFlippingLabel" | ||
11542 | model "six_pos" | ||
11543 | position "thead" | ||
11544 | ] | ||
11545 | ] | ||
11546 | edge | ||
11547 | [ | ||
11548 | source 7 | ||
11549 | target 10 | ||
11550 | graphics | ||
11551 | [ | ||
11552 | fill "#000000" | ||
11553 | width 3 | ||
11554 | targetArrow "standard" | ||
11555 | ] | ||
11556 | LabelGraphics | ||
11557 | [ | ||
11558 | text "data reference FunctionalInterface" | ||
11559 | fontSize 14 | ||
11560 | fontName "Consolas" | ||
11561 | configuration "AutoFlippingLabel" | ||
11562 | model "six_pos" | ||
11563 | position "thead" | ||
11564 | ] | ||
11565 | ] | ||
11566 | edge | ||
11567 | [ | ||
11568 | source 7 | ||
11569 | target 11 | ||
11570 | graphics | ||
11571 | [ | ||
11572 | fill "#000000" | ||
11573 | width 3 | ||
11574 | targetArrow "standard" | ||
11575 | ] | ||
11576 | LabelGraphics | ||
11577 | [ | ||
11578 | text "data reference FunctionalInterface" | ||
11579 | fontSize 14 | ||
11580 | fontName "Consolas" | ||
11581 | configuration "AutoFlippingLabel" | ||
11582 | model "six_pos" | ||
11583 | position "thead" | ||
11584 | ] | ||
11585 | ] | ||
11586 | edge | ||
11587 | [ | ||
11588 | source 7 | ||
11589 | target 6 | ||
11590 | graphics | ||
11591 | [ | ||
11592 | fill "#000000" | ||
11593 | targetArrow "standard" | ||
11594 | ] | ||
11595 | LabelGraphics | ||
11596 | [ | ||
11597 | text "element reference FunctionalInterface" | ||
11598 | fontSize 14 | ||
11599 | fontName "Consolas" | ||
11600 | configuration "AutoFlippingLabel" | ||
11601 | model "six_pos" | ||
11602 | position "thead" | ||
11603 | ] | ||
11604 | ] | ||
11605 | edge | ||
11606 | [ | ||
11607 | source 8 | ||
11608 | target 9 | ||
11609 | graphics | ||
11610 | [ | ||
11611 | fill "#000000" | ||
11612 | width 3 | ||
11613 | targetArrow "standard" | ||
11614 | ] | ||
11615 | LabelGraphics | ||
11616 | [ | ||
11617 | text "terminator reference FunctionalData" | ||
11618 | fontSize 14 | ||
11619 | fontName "Consolas" | ||
11620 | configuration "AutoFlippingLabel" | ||
11621 | model "six_pos" | ||
11622 | position "thead" | ||
11623 | ] | ||
11624 | ] | ||
11625 | edge | ||
11626 | [ | ||
11627 | source 8 | ||
11628 | target 7 | ||
11629 | graphics | ||
11630 | [ | ||
11631 | fill "#000000" | ||
11632 | targetArrow "standard" | ||
11633 | ] | ||
11634 | LabelGraphics | ||
11635 | [ | ||
11636 | text "interface reference FunctionalData" | ||
11637 | fontSize 14 | ||
11638 | fontName "Consolas" | ||
11639 | configuration "AutoFlippingLabel" | ||
11640 | model "six_pos" | ||
11641 | position "thead" | ||
11642 | ] | ||
11643 | ] | ||
11644 | edge | ||
11645 | [ | ||
11646 | source 10 | ||
11647 | target 7 | ||
11648 | graphics | ||
11649 | [ | ||
11650 | fill "#000000" | ||
11651 | targetArrow "standard" | ||
11652 | ] | ||
11653 | LabelGraphics | ||
11654 | [ | ||
11655 | text "interface reference FunctionalData" | ||
11656 | fontSize 14 | ||
11657 | fontName "Consolas" | ||
11658 | configuration "AutoFlippingLabel" | ||
11659 | model "six_pos" | ||
11660 | position "thead" | ||
11661 | ] | ||
11662 | ] | ||
11663 | edge | ||
11664 | [ | ||
11665 | source 11 | ||
11666 | target 7 | ||
11667 | graphics | ||
11668 | [ | ||
11669 | fill "#000000" | ||
11670 | targetArrow "standard" | ||
11671 | ] | ||
11672 | LabelGraphics | ||
11673 | [ | ||
11674 | text "interface reference FunctionalData" | ||
11675 | fontSize 14 | ||
11676 | fontName "Consolas" | ||
11677 | configuration "AutoFlippingLabel" | ||
11678 | model "six_pos" | ||
11679 | position "thead" | ||
11680 | ] | ||
11681 | ] | ||
11682 | edge | ||
11683 | [ | ||
11684 | source 6 | ||
11685 | target 0 | ||
11686 | graphics | ||
11687 | [ | ||
11688 | fill "#000000" | ||
11689 | targetArrow "standard" | ||
11690 | ] | ||
11691 | LabelGraphics | ||
11692 | [ | ||
11693 | text "type attribute Function" | ||
11694 | fontSize 14 | ||
11695 | fontName "Consolas" | ||
11696 | configuration "AutoFlippingLabel" | ||
11697 | model "six_pos" | ||
11698 | position "thead" | ||
11699 | ] | ||
11700 | ] | ||
11701 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png index 05355ee6..0222b4b1 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi index 956b6f1b..144e4fc5 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/2.xmi | |||
@@ -1,11 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> | 2 | <fam:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> |
3 | <data xsi:type="fam:FunctionalOutput"/> | 3 | <rootElements xsi:type="fam:Function"> |
4 | <data xsi:type="fam:FunctionalOutput"/> | 4 | <interface> |
5 | <data xsi:type="fam:FunctionalOutput"> | 5 | <data xsi:type="fam:FunctionalOutput"/> |
6 | <terminator/> | 6 | <data xsi:type="fam:FunctionalOutput"/> |
7 | </data> | 7 | <data xsi:type="fam:FunctionalOutput"> |
8 | <data xsi:type="fam:FunctionalOutput"> | 8 | <terminator/> |
9 | <terminator/> | 9 | </data> |
10 | </data> | 10 | </interface> |
11 | </fam:FunctionalInterface> | 11 | </rootElements> |
12 | </fam:FunctionalArchitectureModel> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml index ed77ebc2..e046559b 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.gml | |||
@@ -8343,3 +8343,3320 @@ graph | |||
8343 | ] | 8343 | ] |
8344 | ] | 8344 | ] |
8345 | ] | 8345 | ] |
8346 | graph | ||
8347 | [ | ||
8348 | node | ||
8349 | [ | ||
8350 | id 0 | ||
8351 | graphics | ||
8352 | [ | ||
8353 | w 226.60000000000002 | ||
8354 | h 40 | ||
8355 | type "rectangle" | ||
8356 | fill "#FFFFFF" | ||
8357 | fill2 "#FFFFFF" | ||
8358 | outline "#000000" | ||
8359 | ] | ||
8360 | LabelGraphics | ||
8361 | [ | ||
8362 | text "Root literal FunctionType" | ||
8363 | outline "#000000" | ||
8364 | fill "#FFFFFF" | ||
8365 | fontSize 16 | ||
8366 | fontName "Monospace" | ||
8367 | autoSizePolicy "node_width" | ||
8368 | anchor "t" | ||
8369 | borderDistance 0.0 | ||
8370 | ] | ||
8371 | LabelGraphics | ||
8372 | [ | ||
8373 | text " | ||
8374 | FunctionType enum | ||
8375 | " | ||
8376 | fontSize 14 | ||
8377 | fontName "Consolas" | ||
8378 | alignment "left" | ||
8379 | anchor "tl" | ||
8380 | borderDistance 6 | ||
8381 | ] | ||
8382 | ] | ||
8383 | |||
8384 | node | ||
8385 | [ | ||
8386 | id 1 | ||
8387 | graphics | ||
8388 | [ | ||
8389 | w 297.0 | ||
8390 | h 40 | ||
8391 | type "rectangle" | ||
8392 | fill "#FFFFFF" | ||
8393 | fill2 "#FFFFFF" | ||
8394 | outline "#000000" | ||
8395 | ] | ||
8396 | LabelGraphics | ||
8397 | [ | ||
8398 | text "Intermediate literal FunctionType" | ||
8399 | outline "#000000" | ||
8400 | fill "#FFFFFF" | ||
8401 | fontSize 16 | ||
8402 | fontName "Monospace" | ||
8403 | autoSizePolicy "node_width" | ||
8404 | anchor "t" | ||
8405 | borderDistance 0.0 | ||
8406 | ] | ||
8407 | LabelGraphics | ||
8408 | [ | ||
8409 | text " | ||
8410 | FunctionType enum | ||
8411 | " | ||
8412 | fontSize 14 | ||
8413 | fontName "Consolas" | ||
8414 | alignment "left" | ||
8415 | anchor "tl" | ||
8416 | borderDistance 6 | ||
8417 | ] | ||
8418 | ] | ||
8419 | |||
8420 | node | ||
8421 | [ | ||
8422 | id 2 | ||
8423 | graphics | ||
8424 | [ | ||
8425 | w 226.60000000000002 | ||
8426 | h 40 | ||
8427 | type "rectangle" | ||
8428 | fill "#FFFFFF" | ||
8429 | fill2 "#FFFFFF" | ||
8430 | outline "#000000" | ||
8431 | ] | ||
8432 | LabelGraphics | ||
8433 | [ | ||
8434 | text "Leaf literal FunctionType" | ||
8435 | outline "#000000" | ||
8436 | fill "#FFFFFF" | ||
8437 | fontSize 16 | ||
8438 | fontName "Monospace" | ||
8439 | autoSizePolicy "node_width" | ||
8440 | anchor "t" | ||
8441 | borderDistance 0.0 | ||
8442 | ] | ||
8443 | LabelGraphics | ||
8444 | [ | ||
8445 | text " | ||
8446 | FunctionType enum | ||
8447 | " | ||
8448 | fontSize 14 | ||
8449 | fontName "Consolas" | ||
8450 | alignment "left" | ||
8451 | anchor "tl" | ||
8452 | borderDistance 6 | ||
8453 | ] | ||
8454 | ] | ||
8455 | |||
8456 | node | ||
8457 | [ | ||
8458 | id 3 | ||
8459 | graphics | ||
8460 | [ | ||
8461 | w 41.800000000000004 | ||
8462 | h 26 | ||
8463 | type "rectangle" | ||
8464 | fill "#FFFFFF" | ||
8465 | fill2 "#FFFFFF" | ||
8466 | outline "#000000" | ||
8467 | ] | ||
8468 | LabelGraphics | ||
8469 | [ | ||
8470 | text "true" | ||
8471 | outline "#000000" | ||
8472 | fill "#FFFFFF" | ||
8473 | fontSize 16 | ||
8474 | fontName "Monospace" | ||
8475 | autoSizePolicy "node_width" | ||
8476 | anchor "t" | ||
8477 | borderDistance 0.0 | ||
8478 | ] | ||
8479 | LabelGraphics | ||
8480 | [ | ||
8481 | text " | ||
8482 | " | ||
8483 | fontSize 14 | ||
8484 | fontName "Consolas" | ||
8485 | alignment "left" | ||
8486 | anchor "tl" | ||
8487 | borderDistance 6 | ||
8488 | ] | ||
8489 | ] | ||
8490 | |||
8491 | node | ||
8492 | [ | ||
8493 | id 4 | ||
8494 | graphics | ||
8495 | [ | ||
8496 | w 50.6 | ||
8497 | h 26 | ||
8498 | type "rectangle" | ||
8499 | fill "#FFFFFF" | ||
8500 | fill2 "#FFFFFF" | ||
8501 | outline "#000000" | ||
8502 | ] | ||
8503 | LabelGraphics | ||
8504 | [ | ||
8505 | text "false" | ||
8506 | outline "#000000" | ||
8507 | fill "#FFFFFF" | ||
8508 | fontSize 16 | ||
8509 | fontName "Monospace" | ||
8510 | autoSizePolicy "node_width" | ||
8511 | anchor "t" | ||
8512 | borderDistance 0.0 | ||
8513 | ] | ||
8514 | LabelGraphics | ||
8515 | [ | ||
8516 | text " | ||
8517 | " | ||
8518 | fontSize 14 | ||
8519 | fontName "Consolas" | ||
8520 | alignment "left" | ||
8521 | anchor "tl" | ||
8522 | borderDistance 6 | ||
8523 | ] | ||
8524 | ] | ||
8525 | |||
8526 | node | ||
8527 | [ | ||
8528 | id 5 | ||
8529 | graphics | ||
8530 | [ | ||
8531 | w 207.9 | ||
8532 | h 40 | ||
8533 | type "rectangle" | ||
8534 | fill "#FFFFFF" | ||
8535 | fill2 "#FFFFFF" | ||
8536 | outline "#000000" | ||
8537 | ] | ||
8538 | LabelGraphics | ||
8539 | [ | ||
8540 | text "null" | ||
8541 | outline "#000000" | ||
8542 | fill "#FFFFFF" | ||
8543 | fontSize 16 | ||
8544 | fontName "Monospace" | ||
8545 | autoSizePolicy "node_width" | ||
8546 | anchor "t" | ||
8547 | borderDistance 0.0 | ||
8548 | ] | ||
8549 | LabelGraphics | ||
8550 | [ | ||
8551 | text " | ||
8552 | FunctionalInterface class | ||
8553 | " | ||
8554 | fontSize 14 | ||
8555 | fontName "Consolas" | ||
8556 | alignment "left" | ||
8557 | anchor "tl" | ||
8558 | borderDistance 6 | ||
8559 | ] | ||
8560 | ] | ||
8561 | |||
8562 | node | ||
8563 | [ | ||
8564 | id 6 | ||
8565 | graphics | ||
8566 | [ | ||
8567 | w 184.8 | ||
8568 | h 54 | ||
8569 | type "rectangle" | ||
8570 | fill "#FFFFFF" | ||
8571 | fill2 "#FFFFFF" | ||
8572 | outline "#000000" | ||
8573 | ] | ||
8574 | LabelGraphics | ||
8575 | [ | ||
8576 | text "null" | ||
8577 | outline "#000000" | ||
8578 | fill "#FFFFFF" | ||
8579 | fontSize 16 | ||
8580 | fontName "Monospace" | ||
8581 | autoSizePolicy "node_width" | ||
8582 | anchor "t" | ||
8583 | borderDistance 0.0 | ||
8584 | ] | ||
8585 | LabelGraphics | ||
8586 | [ | ||
8587 | text " | ||
8588 | FunctionalOutput class | ||
8589 | FunctionalData class | ||
8590 | " | ||
8591 | fontSize 14 | ||
8592 | fontName "Consolas" | ||
8593 | alignment "left" | ||
8594 | anchor "tl" | ||
8595 | borderDistance 6 | ||
8596 | ] | ||
8597 | ] | ||
8598 | |||
8599 | node | ||
8600 | [ | ||
8601 | id 7 | ||
8602 | graphics | ||
8603 | [ | ||
8604 | w 177.10000000000002 | ||
8605 | h 54 | ||
8606 | type "rectangle" | ||
8607 | fill "#FFFFFF" | ||
8608 | fill2 "#FFFFFF" | ||
8609 | outline "#000000" | ||
8610 | ] | ||
8611 | LabelGraphics | ||
8612 | [ | ||
8613 | text "null" | ||
8614 | outline "#000000" | ||
8615 | fill "#FFFFFF" | ||
8616 | fontSize 16 | ||
8617 | fontName "Monospace" | ||
8618 | autoSizePolicy "node_width" | ||
8619 | anchor "t" | ||
8620 | borderDistance 0.0 | ||
8621 | ] | ||
8622 | LabelGraphics | ||
8623 | [ | ||
8624 | text " | ||
8625 | FunctionalInput class | ||
8626 | FunctionalData class | ||
8627 | " | ||
8628 | fontSize 14 | ||
8629 | fontName "Consolas" | ||
8630 | alignment "left" | ||
8631 | anchor "tl" | ||
8632 | borderDistance 6 | ||
8633 | ] | ||
8634 | ] | ||
8635 | |||
8636 | node | ||
8637 | [ | ||
8638 | id 8 | ||
8639 | graphics | ||
8640 | [ | ||
8641 | w 161.70000000000002 | ||
8642 | h 40 | ||
8643 | type "rectangle" | ||
8644 | fill "#FFFFFF" | ||
8645 | fill2 "#FFFFFF" | ||
8646 | outline "#000000" | ||
8647 | ] | ||
8648 | LabelGraphics | ||
8649 | [ | ||
8650 | text "null" | ||
8651 | outline "#000000" | ||
8652 | fill "#FFFFFF" | ||
8653 | fontSize 16 | ||
8654 | fontName "Monospace" | ||
8655 | autoSizePolicy "node_width" | ||
8656 | anchor "t" | ||
8657 | borderDistance 0.0 | ||
8658 | ] | ||
8659 | LabelGraphics | ||
8660 | [ | ||
8661 | text " | ||
8662 | FAMTerminator class | ||
8663 | " | ||
8664 | fontSize 14 | ||
8665 | fontName "Consolas" | ||
8666 | alignment "left" | ||
8667 | anchor "tl" | ||
8668 | borderDistance 6 | ||
8669 | ] | ||
8670 | ] | ||
8671 | |||
8672 | node | ||
8673 | [ | ||
8674 | id 9 | ||
8675 | graphics | ||
8676 | [ | ||
8677 | w 184.8 | ||
8678 | h 54 | ||
8679 | type "rectangle" | ||
8680 | fill "#FFFFFF" | ||
8681 | fill2 "#FFFFFF" | ||
8682 | outline "#000000" | ||
8683 | ] | ||
8684 | LabelGraphics | ||
8685 | [ | ||
8686 | text "null" | ||
8687 | outline "#000000" | ||
8688 | fill "#FFFFFF" | ||
8689 | fontSize 16 | ||
8690 | fontName "Monospace" | ||
8691 | autoSizePolicy "node_width" | ||
8692 | anchor "t" | ||
8693 | borderDistance 0.0 | ||
8694 | ] | ||
8695 | LabelGraphics | ||
8696 | [ | ||
8697 | text " | ||
8698 | FunctionalOutput class | ||
8699 | FunctionalData class | ||
8700 | " | ||
8701 | fontSize 14 | ||
8702 | fontName "Consolas" | ||
8703 | alignment "left" | ||
8704 | anchor "tl" | ||
8705 | borderDistance 6 | ||
8706 | ] | ||
8707 | ] | ||
8708 | |||
8709 | node | ||
8710 | [ | ||
8711 | id 10 | ||
8712 | graphics | ||
8713 | [ | ||
8714 | w 184.8 | ||
8715 | h 54 | ||
8716 | type "rectangle" | ||
8717 | fill "#FFFFFF" | ||
8718 | fill2 "#FFFFFF" | ||
8719 | outline "#000000" | ||
8720 | ] | ||
8721 | LabelGraphics | ||
8722 | [ | ||
8723 | text "null" | ||
8724 | outline "#000000" | ||
8725 | fill "#FFFFFF" | ||
8726 | fontSize 16 | ||
8727 | fontName "Monospace" | ||
8728 | autoSizePolicy "node_width" | ||
8729 | anchor "t" | ||
8730 | borderDistance 0.0 | ||
8731 | ] | ||
8732 | LabelGraphics | ||
8733 | [ | ||
8734 | text " | ||
8735 | FunctionalOutput class | ||
8736 | FunctionalData class | ||
8737 | " | ||
8738 | fontSize 14 | ||
8739 | fontName "Consolas" | ||
8740 | alignment "left" | ||
8741 | anchor "tl" | ||
8742 | borderDistance 6 | ||
8743 | ] | ||
8744 | ] | ||
8745 | |||
8746 | node | ||
8747 | [ | ||
8748 | id 11 | ||
8749 | graphics | ||
8750 | [ | ||
8751 | w 177.10000000000002 | ||
8752 | h 54 | ||
8753 | type "rectangle" | ||
8754 | fill "#FFFFFF" | ||
8755 | fill2 "#FFFFFF" | ||
8756 | outline "#000000" | ||
8757 | ] | ||
8758 | LabelGraphics | ||
8759 | [ | ||
8760 | text "null" | ||
8761 | outline "#000000" | ||
8762 | fill "#FFFFFF" | ||
8763 | fontSize 16 | ||
8764 | fontName "Monospace" | ||
8765 | autoSizePolicy "node_width" | ||
8766 | anchor "t" | ||
8767 | borderDistance 0.0 | ||
8768 | ] | ||
8769 | LabelGraphics | ||
8770 | [ | ||
8771 | text " | ||
8772 | FunctionalInput class | ||
8773 | FunctionalData class | ||
8774 | " | ||
8775 | fontSize 14 | ||
8776 | fontName "Consolas" | ||
8777 | alignment "left" | ||
8778 | anchor "tl" | ||
8779 | borderDistance 6 | ||
8780 | ] | ||
8781 | ] | ||
8782 | |||
8783 | node | ||
8784 | [ | ||
8785 | id 12 | ||
8786 | graphics | ||
8787 | [ | ||
8788 | w 112.2 | ||
8789 | h 26 | ||
8790 | type "rectangle" | ||
8791 | fill "#FFFFFF" | ||
8792 | fill2 "#FFFFFF" | ||
8793 | outline "#000000" | ||
8794 | ] | ||
8795 | LabelGraphics | ||
8796 | [ | ||
8797 | text "New Integers" | ||
8798 | outline "#000000" | ||
8799 | fill "#FFFFFF" | ||
8800 | fontSize 16 | ||
8801 | fontName "Monospace" | ||
8802 | autoSizePolicy "node_width" | ||
8803 | anchor "t" | ||
8804 | borderDistance 0.0 | ||
8805 | ] | ||
8806 | LabelGraphics | ||
8807 | [ | ||
8808 | text " | ||
8809 | " | ||
8810 | fontSize 14 | ||
8811 | fontName "Consolas" | ||
8812 | alignment "left" | ||
8813 | anchor "tl" | ||
8814 | borderDistance 6 | ||
8815 | ] | ||
8816 | ] | ||
8817 | |||
8818 | node | ||
8819 | [ | ||
8820 | id 13 | ||
8821 | graphics | ||
8822 | [ | ||
8823 | w 85.80000000000001 | ||
8824 | h 26 | ||
8825 | type "rectangle" | ||
8826 | fill "#FFFFFF" | ||
8827 | fill2 "#FFFFFF" | ||
8828 | outline "#000000" | ||
8829 | ] | ||
8830 | LabelGraphics | ||
8831 | [ | ||
8832 | text "New Reals" | ||
8833 | outline "#000000" | ||
8834 | fill "#FFFFFF" | ||
8835 | fontSize 16 | ||
8836 | fontName "Monospace" | ||
8837 | autoSizePolicy "node_width" | ||
8838 | anchor "t" | ||
8839 | borderDistance 0.0 | ||
8840 | ] | ||
8841 | LabelGraphics | ||
8842 | [ | ||
8843 | text " | ||
8844 | " | ||
8845 | fontSize 14 | ||
8846 | fontName "Consolas" | ||
8847 | alignment "left" | ||
8848 | anchor "tl" | ||
8849 | borderDistance 6 | ||
8850 | ] | ||
8851 | ] | ||
8852 | |||
8853 | node | ||
8854 | [ | ||
8855 | id 14 | ||
8856 | graphics | ||
8857 | [ | ||
8858 | w 103.4 | ||
8859 | h 26 | ||
8860 | type "rectangle" | ||
8861 | fill "#FFFFFF" | ||
8862 | fill2 "#FFFFFF" | ||
8863 | outline "#000000" | ||
8864 | ] | ||
8865 | LabelGraphics | ||
8866 | [ | ||
8867 | text "New Strings" | ||
8868 | outline "#000000" | ||
8869 | fill "#FFFFFF" | ||
8870 | fontSize 16 | ||
8871 | fontName "Monospace" | ||
8872 | autoSizePolicy "node_width" | ||
8873 | anchor "t" | ||
8874 | borderDistance 0.0 | ||
8875 | ] | ||
8876 | LabelGraphics | ||
8877 | [ | ||
8878 | text " | ||
8879 | " | ||
8880 | fontSize 14 | ||
8881 | fontName "Consolas" | ||
8882 | alignment "left" | ||
8883 | anchor "tl" | ||
8884 | borderDistance 6 | ||
8885 | ] | ||
8886 | ] | ||
8887 | |||
8888 | node | ||
8889 | [ | ||
8890 | id 15 | ||
8891 | graphics | ||
8892 | [ | ||
8893 | w 103.4 | ||
8894 | h 26 | ||
8895 | type "rectangle" | ||
8896 | fill "#FFFFFF" | ||
8897 | fill2 "#FFFFFF" | ||
8898 | outline "#000000" | ||
8899 | ] | ||
8900 | LabelGraphics | ||
8901 | [ | ||
8902 | text "New Objects" | ||
8903 | outline "#000000" | ||
8904 | fill "#FFFFFF" | ||
8905 | fontSize 16 | ||
8906 | fontName "Monospace" | ||
8907 | autoSizePolicy "node_width" | ||
8908 | anchor "t" | ||
8909 | borderDistance 0.0 | ||
8910 | ] | ||
8911 | LabelGraphics | ||
8912 | [ | ||
8913 | text " | ||
8914 | " | ||
8915 | fontSize 14 | ||
8916 | fontName "Consolas" | ||
8917 | alignment "left" | ||
8918 | anchor "tl" | ||
8919 | borderDistance 6 | ||
8920 | ] | ||
8921 | ] | ||
8922 | edge | ||
8923 | [ | ||
8924 | source 8 | ||
8925 | target 6 | ||
8926 | graphics | ||
8927 | [ | ||
8928 | fill "#000000" | ||
8929 | targetArrow "standard" | ||
8930 | ] | ||
8931 | LabelGraphics | ||
8932 | [ | ||
8933 | text "data reference FAMTerminator" | ||
8934 | fontSize 14 | ||
8935 | fontName "Consolas" | ||
8936 | configuration "AutoFlippingLabel" | ||
8937 | model "six_pos" | ||
8938 | position "thead" | ||
8939 | ] | ||
8940 | ] | ||
8941 | edge | ||
8942 | [ | ||
8943 | source 5 | ||
8944 | target 6 | ||
8945 | graphics | ||
8946 | [ | ||
8947 | fill "#000000" | ||
8948 | width 3 | ||
8949 | targetArrow "standard" | ||
8950 | ] | ||
8951 | LabelGraphics | ||
8952 | [ | ||
8953 | text "data reference FunctionalInterface" | ||
8954 | fontSize 14 | ||
8955 | fontName "Consolas" | ||
8956 | configuration "AutoFlippingLabel" | ||
8957 | model "six_pos" | ||
8958 | position "thead" | ||
8959 | ] | ||
8960 | ] | ||
8961 | edge | ||
8962 | [ | ||
8963 | source 5 | ||
8964 | target 7 | ||
8965 | graphics | ||
8966 | [ | ||
8967 | fill "#000000" | ||
8968 | width 3 | ||
8969 | targetArrow "standard" | ||
8970 | ] | ||
8971 | LabelGraphics | ||
8972 | [ | ||
8973 | text "data reference FunctionalInterface" | ||
8974 | fontSize 14 | ||
8975 | fontName "Consolas" | ||
8976 | configuration "AutoFlippingLabel" | ||
8977 | model "six_pos" | ||
8978 | position "thead" | ||
8979 | ] | ||
8980 | ] | ||
8981 | edge | ||
8982 | [ | ||
8983 | source 5 | ||
8984 | target 9 | ||
8985 | graphics | ||
8986 | [ | ||
8987 | fill "#000000" | ||
8988 | width 3 | ||
8989 | targetArrow "standard" | ||
8990 | ] | ||
8991 | LabelGraphics | ||
8992 | [ | ||
8993 | text "data reference FunctionalInterface" | ||
8994 | fontSize 14 | ||
8995 | fontName "Consolas" | ||
8996 | configuration "AutoFlippingLabel" | ||
8997 | model "six_pos" | ||
8998 | position "thead" | ||
8999 | ] | ||
9000 | ] | ||
9001 | edge | ||
9002 | [ | ||
9003 | source 5 | ||
9004 | target 10 | ||
9005 | graphics | ||
9006 | [ | ||
9007 | fill "#000000" | ||
9008 | width 3 | ||
9009 | targetArrow "standard" | ||
9010 | ] | ||
9011 | LabelGraphics | ||
9012 | [ | ||
9013 | text "data reference FunctionalInterface" | ||
9014 | fontSize 14 | ||
9015 | fontName "Consolas" | ||
9016 | configuration "AutoFlippingLabel" | ||
9017 | model "six_pos" | ||
9018 | position "thead" | ||
9019 | ] | ||
9020 | ] | ||
9021 | edge | ||
9022 | [ | ||
9023 | source 5 | ||
9024 | target 11 | ||
9025 | graphics | ||
9026 | [ | ||
9027 | fill "#000000" | ||
9028 | width 3 | ||
9029 | targetArrow "standard" | ||
9030 | ] | ||
9031 | LabelGraphics | ||
9032 | [ | ||
9033 | text "data reference FunctionalInterface" | ||
9034 | fontSize 14 | ||
9035 | fontName "Consolas" | ||
9036 | configuration "AutoFlippingLabel" | ||
9037 | model "six_pos" | ||
9038 | position "thead" | ||
9039 | ] | ||
9040 | ] | ||
9041 | edge | ||
9042 | [ | ||
9043 | source 6 | ||
9044 | target 8 | ||
9045 | graphics | ||
9046 | [ | ||
9047 | fill "#000000" | ||
9048 | width 3 | ||
9049 | targetArrow "standard" | ||
9050 | ] | ||
9051 | LabelGraphics | ||
9052 | [ | ||
9053 | text "terminator reference FunctionalData" | ||
9054 | fontSize 14 | ||
9055 | fontName "Consolas" | ||
9056 | configuration "AutoFlippingLabel" | ||
9057 | model "six_pos" | ||
9058 | position "thead" | ||
9059 | ] | ||
9060 | ] | ||
9061 | edge | ||
9062 | [ | ||
9063 | source 6 | ||
9064 | target 5 | ||
9065 | graphics | ||
9066 | [ | ||
9067 | fill "#000000" | ||
9068 | targetArrow "standard" | ||
9069 | ] | ||
9070 | LabelGraphics | ||
9071 | [ | ||
9072 | text "interface reference FunctionalData" | ||
9073 | fontSize 14 | ||
9074 | fontName "Consolas" | ||
9075 | configuration "AutoFlippingLabel" | ||
9076 | model "six_pos" | ||
9077 | position "thead" | ||
9078 | ] | ||
9079 | ] | ||
9080 | edge | ||
9081 | [ | ||
9082 | source 7 | ||
9083 | target 5 | ||
9084 | graphics | ||
9085 | [ | ||
9086 | fill "#000000" | ||
9087 | targetArrow "standard" | ||
9088 | ] | ||
9089 | LabelGraphics | ||
9090 | [ | ||
9091 | text "interface reference FunctionalData" | ||
9092 | fontSize 14 | ||
9093 | fontName "Consolas" | ||
9094 | configuration "AutoFlippingLabel" | ||
9095 | model "six_pos" | ||
9096 | position "thead" | ||
9097 | ] | ||
9098 | ] | ||
9099 | edge | ||
9100 | [ | ||
9101 | source 9 | ||
9102 | target 5 | ||
9103 | graphics | ||
9104 | [ | ||
9105 | fill "#000000" | ||
9106 | targetArrow "standard" | ||
9107 | ] | ||
9108 | LabelGraphics | ||
9109 | [ | ||
9110 | text "interface reference FunctionalData" | ||
9111 | fontSize 14 | ||
9112 | fontName "Consolas" | ||
9113 | configuration "AutoFlippingLabel" | ||
9114 | model "six_pos" | ||
9115 | position "thead" | ||
9116 | ] | ||
9117 | ] | ||
9118 | edge | ||
9119 | [ | ||
9120 | source 10 | ||
9121 | target 5 | ||
9122 | graphics | ||
9123 | [ | ||
9124 | fill "#000000" | ||
9125 | targetArrow "standard" | ||
9126 | ] | ||
9127 | LabelGraphics | ||
9128 | [ | ||
9129 | text "interface reference FunctionalData" | ||
9130 | fontSize 14 | ||
9131 | fontName "Consolas" | ||
9132 | configuration "AutoFlippingLabel" | ||
9133 | model "six_pos" | ||
9134 | position "thead" | ||
9135 | ] | ||
9136 | ] | ||
9137 | edge | ||
9138 | [ | ||
9139 | source 11 | ||
9140 | target 5 | ||
9141 | graphics | ||
9142 | [ | ||
9143 | fill "#000000" | ||
9144 | targetArrow "standard" | ||
9145 | ] | ||
9146 | LabelGraphics | ||
9147 | [ | ||
9148 | text "interface reference FunctionalData" | ||
9149 | fontSize 14 | ||
9150 | fontName "Consolas" | ||
9151 | configuration "AutoFlippingLabel" | ||
9152 | model "six_pos" | ||
9153 | position "thead" | ||
9154 | ] | ||
9155 | ] | ||
9156 | ] | ||
9157 | graph | ||
9158 | [ | ||
9159 | node | ||
9160 | [ | ||
9161 | id 0 | ||
9162 | graphics | ||
9163 | [ | ||
9164 | w 226.60000000000002 | ||
9165 | h 40 | ||
9166 | type "rectangle" | ||
9167 | fill "#FFFFFF" | ||
9168 | fill2 "#FFFFFF" | ||
9169 | outline "#000000" | ||
9170 | ] | ||
9171 | LabelGraphics | ||
9172 | [ | ||
9173 | text "Root literal FunctionType" | ||
9174 | outline "#000000" | ||
9175 | fill "#FFFFFF" | ||
9176 | fontSize 16 | ||
9177 | fontName "Monospace" | ||
9178 | autoSizePolicy "node_width" | ||
9179 | anchor "t" | ||
9180 | borderDistance 0.0 | ||
9181 | ] | ||
9182 | LabelGraphics | ||
9183 | [ | ||
9184 | text " | ||
9185 | FunctionType enum | ||
9186 | " | ||
9187 | fontSize 14 | ||
9188 | fontName "Consolas" | ||
9189 | alignment "left" | ||
9190 | anchor "tl" | ||
9191 | borderDistance 6 | ||
9192 | ] | ||
9193 | ] | ||
9194 | |||
9195 | node | ||
9196 | [ | ||
9197 | id 1 | ||
9198 | graphics | ||
9199 | [ | ||
9200 | w 297.0 | ||
9201 | h 40 | ||
9202 | type "rectangle" | ||
9203 | fill "#FFFFFF" | ||
9204 | fill2 "#FFFFFF" | ||
9205 | outline "#000000" | ||
9206 | ] | ||
9207 | LabelGraphics | ||
9208 | [ | ||
9209 | text "Intermediate literal FunctionType" | ||
9210 | outline "#000000" | ||
9211 | fill "#FFFFFF" | ||
9212 | fontSize 16 | ||
9213 | fontName "Monospace" | ||
9214 | autoSizePolicy "node_width" | ||
9215 | anchor "t" | ||
9216 | borderDistance 0.0 | ||
9217 | ] | ||
9218 | LabelGraphics | ||
9219 | [ | ||
9220 | text " | ||
9221 | FunctionType enum | ||
9222 | " | ||
9223 | fontSize 14 | ||
9224 | fontName "Consolas" | ||
9225 | alignment "left" | ||
9226 | anchor "tl" | ||
9227 | borderDistance 6 | ||
9228 | ] | ||
9229 | ] | ||
9230 | |||
9231 | node | ||
9232 | [ | ||
9233 | id 2 | ||
9234 | graphics | ||
9235 | [ | ||
9236 | w 226.60000000000002 | ||
9237 | h 40 | ||
9238 | type "rectangle" | ||
9239 | fill "#FFFFFF" | ||
9240 | fill2 "#FFFFFF" | ||
9241 | outline "#000000" | ||
9242 | ] | ||
9243 | LabelGraphics | ||
9244 | [ | ||
9245 | text "Leaf literal FunctionType" | ||
9246 | outline "#000000" | ||
9247 | fill "#FFFFFF" | ||
9248 | fontSize 16 | ||
9249 | fontName "Monospace" | ||
9250 | autoSizePolicy "node_width" | ||
9251 | anchor "t" | ||
9252 | borderDistance 0.0 | ||
9253 | ] | ||
9254 | LabelGraphics | ||
9255 | [ | ||
9256 | text " | ||
9257 | FunctionType enum | ||
9258 | " | ||
9259 | fontSize 14 | ||
9260 | fontName "Consolas" | ||
9261 | alignment "left" | ||
9262 | anchor "tl" | ||
9263 | borderDistance 6 | ||
9264 | ] | ||
9265 | ] | ||
9266 | |||
9267 | node | ||
9268 | [ | ||
9269 | id 3 | ||
9270 | graphics | ||
9271 | [ | ||
9272 | w 41.800000000000004 | ||
9273 | h 26 | ||
9274 | type "rectangle" | ||
9275 | fill "#FFFFFF" | ||
9276 | fill2 "#FFFFFF" | ||
9277 | outline "#000000" | ||
9278 | ] | ||
9279 | LabelGraphics | ||
9280 | [ | ||
9281 | text "true" | ||
9282 | outline "#000000" | ||
9283 | fill "#FFFFFF" | ||
9284 | fontSize 16 | ||
9285 | fontName "Monospace" | ||
9286 | autoSizePolicy "node_width" | ||
9287 | anchor "t" | ||
9288 | borderDistance 0.0 | ||
9289 | ] | ||
9290 | LabelGraphics | ||
9291 | [ | ||
9292 | text " | ||
9293 | " | ||
9294 | fontSize 14 | ||
9295 | fontName "Consolas" | ||
9296 | alignment "left" | ||
9297 | anchor "tl" | ||
9298 | borderDistance 6 | ||
9299 | ] | ||
9300 | ] | ||
9301 | |||
9302 | node | ||
9303 | [ | ||
9304 | id 4 | ||
9305 | graphics | ||
9306 | [ | ||
9307 | w 50.6 | ||
9308 | h 26 | ||
9309 | type "rectangle" | ||
9310 | fill "#FFFFFF" | ||
9311 | fill2 "#FFFFFF" | ||
9312 | outline "#000000" | ||
9313 | ] | ||
9314 | LabelGraphics | ||
9315 | [ | ||
9316 | text "false" | ||
9317 | outline "#000000" | ||
9318 | fill "#FFFFFF" | ||
9319 | fontSize 16 | ||
9320 | fontName "Monospace" | ||
9321 | autoSizePolicy "node_width" | ||
9322 | anchor "t" | ||
9323 | borderDistance 0.0 | ||
9324 | ] | ||
9325 | LabelGraphics | ||
9326 | [ | ||
9327 | text " | ||
9328 | " | ||
9329 | fontSize 14 | ||
9330 | fontName "Consolas" | ||
9331 | alignment "left" | ||
9332 | anchor "tl" | ||
9333 | borderDistance 6 | ||
9334 | ] | ||
9335 | ] | ||
9336 | |||
9337 | node | ||
9338 | [ | ||
9339 | id 5 | ||
9340 | graphics | ||
9341 | [ | ||
9342 | w 207.9 | ||
9343 | h 40 | ||
9344 | type "rectangle" | ||
9345 | fill "#FFFFFF" | ||
9346 | fill2 "#FFFFFF" | ||
9347 | outline "#000000" | ||
9348 | ] | ||
9349 | LabelGraphics | ||
9350 | [ | ||
9351 | text "null" | ||
9352 | outline "#000000" | ||
9353 | fill "#FFFFFF" | ||
9354 | fontSize 16 | ||
9355 | fontName "Monospace" | ||
9356 | autoSizePolicy "node_width" | ||
9357 | anchor "t" | ||
9358 | borderDistance 0.0 | ||
9359 | ] | ||
9360 | LabelGraphics | ||
9361 | [ | ||
9362 | text " | ||
9363 | FunctionalInterface class | ||
9364 | " | ||
9365 | fontSize 14 | ||
9366 | fontName "Consolas" | ||
9367 | alignment "left" | ||
9368 | anchor "tl" | ||
9369 | borderDistance 6 | ||
9370 | ] | ||
9371 | ] | ||
9372 | |||
9373 | node | ||
9374 | [ | ||
9375 | id 6 | ||
9376 | graphics | ||
9377 | [ | ||
9378 | w 177.10000000000002 | ||
9379 | h 54 | ||
9380 | type "rectangle" | ||
9381 | fill "#FFFFFF" | ||
9382 | fill2 "#FFFFFF" | ||
9383 | outline "#000000" | ||
9384 | ] | ||
9385 | LabelGraphics | ||
9386 | [ | ||
9387 | text "null" | ||
9388 | outline "#000000" | ||
9389 | fill "#FFFFFF" | ||
9390 | fontSize 16 | ||
9391 | fontName "Monospace" | ||
9392 | autoSizePolicy "node_width" | ||
9393 | anchor "t" | ||
9394 | borderDistance 0.0 | ||
9395 | ] | ||
9396 | LabelGraphics | ||
9397 | [ | ||
9398 | text " | ||
9399 | FunctionalInput class | ||
9400 | FunctionalData class | ||
9401 | " | ||
9402 | fontSize 14 | ||
9403 | fontName "Consolas" | ||
9404 | alignment "left" | ||
9405 | anchor "tl" | ||
9406 | borderDistance 6 | ||
9407 | ] | ||
9408 | ] | ||
9409 | |||
9410 | node | ||
9411 | [ | ||
9412 | id 7 | ||
9413 | graphics | ||
9414 | [ | ||
9415 | w 177.10000000000002 | ||
9416 | h 54 | ||
9417 | type "rectangle" | ||
9418 | fill "#FFFFFF" | ||
9419 | fill2 "#FFFFFF" | ||
9420 | outline "#000000" | ||
9421 | ] | ||
9422 | LabelGraphics | ||
9423 | [ | ||
9424 | text "null" | ||
9425 | outline "#000000" | ||
9426 | fill "#FFFFFF" | ||
9427 | fontSize 16 | ||
9428 | fontName "Monospace" | ||
9429 | autoSizePolicy "node_width" | ||
9430 | anchor "t" | ||
9431 | borderDistance 0.0 | ||
9432 | ] | ||
9433 | LabelGraphics | ||
9434 | [ | ||
9435 | text " | ||
9436 | FunctionalInput class | ||
9437 | FunctionalData class | ||
9438 | " | ||
9439 | fontSize 14 | ||
9440 | fontName "Consolas" | ||
9441 | alignment "left" | ||
9442 | anchor "tl" | ||
9443 | borderDistance 6 | ||
9444 | ] | ||
9445 | ] | ||
9446 | |||
9447 | node | ||
9448 | [ | ||
9449 | id 8 | ||
9450 | graphics | ||
9451 | [ | ||
9452 | w 177.10000000000002 | ||
9453 | h 54 | ||
9454 | type "rectangle" | ||
9455 | fill "#FFFFFF" | ||
9456 | fill2 "#FFFFFF" | ||
9457 | outline "#000000" | ||
9458 | ] | ||
9459 | LabelGraphics | ||
9460 | [ | ||
9461 | text "null" | ||
9462 | outline "#000000" | ||
9463 | fill "#FFFFFF" | ||
9464 | fontSize 16 | ||
9465 | fontName "Monospace" | ||
9466 | autoSizePolicy "node_width" | ||
9467 | anchor "t" | ||
9468 | borderDistance 0.0 | ||
9469 | ] | ||
9470 | LabelGraphics | ||
9471 | [ | ||
9472 | text " | ||
9473 | FunctionalInput class | ||
9474 | FunctionalData class | ||
9475 | " | ||
9476 | fontSize 14 | ||
9477 | fontName "Consolas" | ||
9478 | alignment "left" | ||
9479 | anchor "tl" | ||
9480 | borderDistance 6 | ||
9481 | ] | ||
9482 | ] | ||
9483 | |||
9484 | node | ||
9485 | [ | ||
9486 | id 9 | ||
9487 | graphics | ||
9488 | [ | ||
9489 | w 161.70000000000002 | ||
9490 | h 40 | ||
9491 | type "rectangle" | ||
9492 | fill "#FFFFFF" | ||
9493 | fill2 "#FFFFFF" | ||
9494 | outline "#000000" | ||
9495 | ] | ||
9496 | LabelGraphics | ||
9497 | [ | ||
9498 | text "null" | ||
9499 | outline "#000000" | ||
9500 | fill "#FFFFFF" | ||
9501 | fontSize 16 | ||
9502 | fontName "Monospace" | ||
9503 | autoSizePolicy "node_width" | ||
9504 | anchor "t" | ||
9505 | borderDistance 0.0 | ||
9506 | ] | ||
9507 | LabelGraphics | ||
9508 | [ | ||
9509 | text " | ||
9510 | FAMTerminator class | ||
9511 | " | ||
9512 | fontSize 14 | ||
9513 | fontName "Consolas" | ||
9514 | alignment "left" | ||
9515 | anchor "tl" | ||
9516 | borderDistance 6 | ||
9517 | ] | ||
9518 | ] | ||
9519 | |||
9520 | node | ||
9521 | [ | ||
9522 | id 10 | ||
9523 | graphics | ||
9524 | [ | ||
9525 | w 161.70000000000002 | ||
9526 | h 40 | ||
9527 | type "rectangle" | ||
9528 | fill "#FFFFFF" | ||
9529 | fill2 "#FFFFFF" | ||
9530 | outline "#000000" | ||
9531 | ] | ||
9532 | LabelGraphics | ||
9533 | [ | ||
9534 | text "null" | ||
9535 | outline "#000000" | ||
9536 | fill "#FFFFFF" | ||
9537 | fontSize 16 | ||
9538 | fontName "Monospace" | ||
9539 | autoSizePolicy "node_width" | ||
9540 | anchor "t" | ||
9541 | borderDistance 0.0 | ||
9542 | ] | ||
9543 | LabelGraphics | ||
9544 | [ | ||
9545 | text " | ||
9546 | FAMTerminator class | ||
9547 | " | ||
9548 | fontSize 14 | ||
9549 | fontName "Consolas" | ||
9550 | alignment "left" | ||
9551 | anchor "tl" | ||
9552 | borderDistance 6 | ||
9553 | ] | ||
9554 | ] | ||
9555 | |||
9556 | node | ||
9557 | [ | ||
9558 | id 11 | ||
9559 | graphics | ||
9560 | [ | ||
9561 | w 161.70000000000002 | ||
9562 | h 40 | ||
9563 | type "rectangle" | ||
9564 | fill "#FFFFFF" | ||
9565 | fill2 "#FFFFFF" | ||
9566 | outline "#000000" | ||
9567 | ] | ||
9568 | LabelGraphics | ||
9569 | [ | ||
9570 | text "null" | ||
9571 | outline "#000000" | ||
9572 | fill "#FFFFFF" | ||
9573 | fontSize 16 | ||
9574 | fontName "Monospace" | ||
9575 | autoSizePolicy "node_width" | ||
9576 | anchor "t" | ||
9577 | borderDistance 0.0 | ||
9578 | ] | ||
9579 | LabelGraphics | ||
9580 | [ | ||
9581 | text " | ||
9582 | FAMTerminator class | ||
9583 | " | ||
9584 | fontSize 14 | ||
9585 | fontName "Consolas" | ||
9586 | alignment "left" | ||
9587 | anchor "tl" | ||
9588 | borderDistance 6 | ||
9589 | ] | ||
9590 | ] | ||
9591 | |||
9592 | node | ||
9593 | [ | ||
9594 | id 12 | ||
9595 | graphics | ||
9596 | [ | ||
9597 | w 112.2 | ||
9598 | h 26 | ||
9599 | type "rectangle" | ||
9600 | fill "#FFFFFF" | ||
9601 | fill2 "#FFFFFF" | ||
9602 | outline "#000000" | ||
9603 | ] | ||
9604 | LabelGraphics | ||
9605 | [ | ||
9606 | text "New Integers" | ||
9607 | outline "#000000" | ||
9608 | fill "#FFFFFF" | ||
9609 | fontSize 16 | ||
9610 | fontName "Monospace" | ||
9611 | autoSizePolicy "node_width" | ||
9612 | anchor "t" | ||
9613 | borderDistance 0.0 | ||
9614 | ] | ||
9615 | LabelGraphics | ||
9616 | [ | ||
9617 | text " | ||
9618 | " | ||
9619 | fontSize 14 | ||
9620 | fontName "Consolas" | ||
9621 | alignment "left" | ||
9622 | anchor "tl" | ||
9623 | borderDistance 6 | ||
9624 | ] | ||
9625 | ] | ||
9626 | |||
9627 | node | ||
9628 | [ | ||
9629 | id 13 | ||
9630 | graphics | ||
9631 | [ | ||
9632 | w 85.80000000000001 | ||
9633 | h 26 | ||
9634 | type "rectangle" | ||
9635 | fill "#FFFFFF" | ||
9636 | fill2 "#FFFFFF" | ||
9637 | outline "#000000" | ||
9638 | ] | ||
9639 | LabelGraphics | ||
9640 | [ | ||
9641 | text "New Reals" | ||
9642 | outline "#000000" | ||
9643 | fill "#FFFFFF" | ||
9644 | fontSize 16 | ||
9645 | fontName "Monospace" | ||
9646 | autoSizePolicy "node_width" | ||
9647 | anchor "t" | ||
9648 | borderDistance 0.0 | ||
9649 | ] | ||
9650 | LabelGraphics | ||
9651 | [ | ||
9652 | text " | ||
9653 | " | ||
9654 | fontSize 14 | ||
9655 | fontName "Consolas" | ||
9656 | alignment "left" | ||
9657 | anchor "tl" | ||
9658 | borderDistance 6 | ||
9659 | ] | ||
9660 | ] | ||
9661 | |||
9662 | node | ||
9663 | [ | ||
9664 | id 14 | ||
9665 | graphics | ||
9666 | [ | ||
9667 | w 103.4 | ||
9668 | h 26 | ||
9669 | type "rectangle" | ||
9670 | fill "#FFFFFF" | ||
9671 | fill2 "#FFFFFF" | ||
9672 | outline "#000000" | ||
9673 | ] | ||
9674 | LabelGraphics | ||
9675 | [ | ||
9676 | text "New Strings" | ||
9677 | outline "#000000" | ||
9678 | fill "#FFFFFF" | ||
9679 | fontSize 16 | ||
9680 | fontName "Monospace" | ||
9681 | autoSizePolicy "node_width" | ||
9682 | anchor "t" | ||
9683 | borderDistance 0.0 | ||
9684 | ] | ||
9685 | LabelGraphics | ||
9686 | [ | ||
9687 | text " | ||
9688 | " | ||
9689 | fontSize 14 | ||
9690 | fontName "Consolas" | ||
9691 | alignment "left" | ||
9692 | anchor "tl" | ||
9693 | borderDistance 6 | ||
9694 | ] | ||
9695 | ] | ||
9696 | |||
9697 | node | ||
9698 | [ | ||
9699 | id 15 | ||
9700 | graphics | ||
9701 | [ | ||
9702 | w 103.4 | ||
9703 | h 26 | ||
9704 | type "rectangle" | ||
9705 | fill "#FFFFFF" | ||
9706 | fill2 "#FFFFFF" | ||
9707 | outline "#000000" | ||
9708 | ] | ||
9709 | LabelGraphics | ||
9710 | [ | ||
9711 | text "New Objects" | ||
9712 | outline "#000000" | ||
9713 | fill "#FFFFFF" | ||
9714 | fontSize 16 | ||
9715 | fontName "Monospace" | ||
9716 | autoSizePolicy "node_width" | ||
9717 | anchor "t" | ||
9718 | borderDistance 0.0 | ||
9719 | ] | ||
9720 | LabelGraphics | ||
9721 | [ | ||
9722 | text " | ||
9723 | " | ||
9724 | fontSize 14 | ||
9725 | fontName "Consolas" | ||
9726 | alignment "left" | ||
9727 | anchor "tl" | ||
9728 | borderDistance 6 | ||
9729 | ] | ||
9730 | ] | ||
9731 | edge | ||
9732 | [ | ||
9733 | source 9 | ||
9734 | target 8 | ||
9735 | graphics | ||
9736 | [ | ||
9737 | fill "#000000" | ||
9738 | targetArrow "standard" | ||
9739 | ] | ||
9740 | LabelGraphics | ||
9741 | [ | ||
9742 | text "data reference FAMTerminator" | ||
9743 | fontSize 14 | ||
9744 | fontName "Consolas" | ||
9745 | configuration "AutoFlippingLabel" | ||
9746 | model "six_pos" | ||
9747 | position "thead" | ||
9748 | ] | ||
9749 | ] | ||
9750 | edge | ||
9751 | [ | ||
9752 | source 10 | ||
9753 | target 6 | ||
9754 | graphics | ||
9755 | [ | ||
9756 | fill "#000000" | ||
9757 | targetArrow "standard" | ||
9758 | ] | ||
9759 | LabelGraphics | ||
9760 | [ | ||
9761 | text "data reference FAMTerminator" | ||
9762 | fontSize 14 | ||
9763 | fontName "Consolas" | ||
9764 | configuration "AutoFlippingLabel" | ||
9765 | model "six_pos" | ||
9766 | position "thead" | ||
9767 | ] | ||
9768 | ] | ||
9769 | edge | ||
9770 | [ | ||
9771 | source 11 | ||
9772 | target 7 | ||
9773 | graphics | ||
9774 | [ | ||
9775 | fill "#000000" | ||
9776 | targetArrow "standard" | ||
9777 | ] | ||
9778 | LabelGraphics | ||
9779 | [ | ||
9780 | text "data reference FAMTerminator" | ||
9781 | fontSize 14 | ||
9782 | fontName "Consolas" | ||
9783 | configuration "AutoFlippingLabel" | ||
9784 | model "six_pos" | ||
9785 | position "thead" | ||
9786 | ] | ||
9787 | ] | ||
9788 | edge | ||
9789 | [ | ||
9790 | source 5 | ||
9791 | target 6 | ||
9792 | graphics | ||
9793 | [ | ||
9794 | fill "#000000" | ||
9795 | width 3 | ||
9796 | targetArrow "standard" | ||
9797 | ] | ||
9798 | LabelGraphics | ||
9799 | [ | ||
9800 | text "data reference FunctionalInterface" | ||
9801 | fontSize 14 | ||
9802 | fontName "Consolas" | ||
9803 | configuration "AutoFlippingLabel" | ||
9804 | model "six_pos" | ||
9805 | position "thead" | ||
9806 | ] | ||
9807 | ] | ||
9808 | edge | ||
9809 | [ | ||
9810 | source 5 | ||
9811 | target 7 | ||
9812 | graphics | ||
9813 | [ | ||
9814 | fill "#000000" | ||
9815 | width 3 | ||
9816 | targetArrow "standard" | ||
9817 | ] | ||
9818 | LabelGraphics | ||
9819 | [ | ||
9820 | text "data reference FunctionalInterface" | ||
9821 | fontSize 14 | ||
9822 | fontName "Consolas" | ||
9823 | configuration "AutoFlippingLabel" | ||
9824 | model "six_pos" | ||
9825 | position "thead" | ||
9826 | ] | ||
9827 | ] | ||
9828 | edge | ||
9829 | [ | ||
9830 | source 5 | ||
9831 | target 8 | ||
9832 | graphics | ||
9833 | [ | ||
9834 | fill "#000000" | ||
9835 | width 3 | ||
9836 | targetArrow "standard" | ||
9837 | ] | ||
9838 | LabelGraphics | ||
9839 | [ | ||
9840 | text "data reference FunctionalInterface" | ||
9841 | fontSize 14 | ||
9842 | fontName "Consolas" | ||
9843 | configuration "AutoFlippingLabel" | ||
9844 | model "six_pos" | ||
9845 | position "thead" | ||
9846 | ] | ||
9847 | ] | ||
9848 | edge | ||
9849 | [ | ||
9850 | source 8 | ||
9851 | target 9 | ||
9852 | graphics | ||
9853 | [ | ||
9854 | fill "#000000" | ||
9855 | width 3 | ||
9856 | targetArrow "standard" | ||
9857 | ] | ||
9858 | LabelGraphics | ||
9859 | [ | ||
9860 | text "terminator reference FunctionalData" | ||
9861 | fontSize 14 | ||
9862 | fontName "Consolas" | ||
9863 | configuration "AutoFlippingLabel" | ||
9864 | model "six_pos" | ||
9865 | position "thead" | ||
9866 | ] | ||
9867 | ] | ||
9868 | edge | ||
9869 | [ | ||
9870 | source 6 | ||
9871 | target 10 | ||
9872 | graphics | ||
9873 | [ | ||
9874 | fill "#000000" | ||
9875 | width 3 | ||
9876 | targetArrow "standard" | ||
9877 | ] | ||
9878 | LabelGraphics | ||
9879 | [ | ||
9880 | text "terminator reference FunctionalData" | ||
9881 | fontSize 14 | ||
9882 | fontName "Consolas" | ||
9883 | configuration "AutoFlippingLabel" | ||
9884 | model "six_pos" | ||
9885 | position "thead" | ||
9886 | ] | ||
9887 | ] | ||
9888 | edge | ||
9889 | [ | ||
9890 | source 7 | ||
9891 | target 11 | ||
9892 | graphics | ||
9893 | [ | ||
9894 | fill "#000000" | ||
9895 | width 3 | ||
9896 | targetArrow "standard" | ||
9897 | ] | ||
9898 | LabelGraphics | ||
9899 | [ | ||
9900 | text "terminator reference FunctionalData" | ||
9901 | fontSize 14 | ||
9902 | fontName "Consolas" | ||
9903 | configuration "AutoFlippingLabel" | ||
9904 | model "six_pos" | ||
9905 | position "thead" | ||
9906 | ] | ||
9907 | ] | ||
9908 | edge | ||
9909 | [ | ||
9910 | source 6 | ||
9911 | target 5 | ||
9912 | graphics | ||
9913 | [ | ||
9914 | fill "#000000" | ||
9915 | targetArrow "standard" | ||
9916 | ] | ||
9917 | LabelGraphics | ||
9918 | [ | ||
9919 | text "interface reference FunctionalData" | ||
9920 | fontSize 14 | ||
9921 | fontName "Consolas" | ||
9922 | configuration "AutoFlippingLabel" | ||
9923 | model "six_pos" | ||
9924 | position "thead" | ||
9925 | ] | ||
9926 | ] | ||
9927 | edge | ||
9928 | [ | ||
9929 | source 7 | ||
9930 | target 5 | ||
9931 | graphics | ||
9932 | [ | ||
9933 | fill "#000000" | ||
9934 | targetArrow "standard" | ||
9935 | ] | ||
9936 | LabelGraphics | ||
9937 | [ | ||
9938 | text "interface reference FunctionalData" | ||
9939 | fontSize 14 | ||
9940 | fontName "Consolas" | ||
9941 | configuration "AutoFlippingLabel" | ||
9942 | model "six_pos" | ||
9943 | position "thead" | ||
9944 | ] | ||
9945 | ] | ||
9946 | edge | ||
9947 | [ | ||
9948 | source 8 | ||
9949 | target 5 | ||
9950 | graphics | ||
9951 | [ | ||
9952 | fill "#000000" | ||
9953 | targetArrow "standard" | ||
9954 | ] | ||
9955 | LabelGraphics | ||
9956 | [ | ||
9957 | text "interface reference FunctionalData" | ||
9958 | fontSize 14 | ||
9959 | fontName "Consolas" | ||
9960 | configuration "AutoFlippingLabel" | ||
9961 | model "six_pos" | ||
9962 | position "thead" | ||
9963 | ] | ||
9964 | ] | ||
9965 | ] | ||
9966 | graph | ||
9967 | [ | ||
9968 | node | ||
9969 | [ | ||
9970 | id 0 | ||
9971 | graphics | ||
9972 | [ | ||
9973 | w 226.60000000000002 | ||
9974 | h 40 | ||
9975 | type "rectangle" | ||
9976 | fill "#FFFFFF" | ||
9977 | fill2 "#FFFFFF" | ||
9978 | outline "#000000" | ||
9979 | ] | ||
9980 | LabelGraphics | ||
9981 | [ | ||
9982 | text "Root literal FunctionType" | ||
9983 | outline "#000000" | ||
9984 | fill "#FFFFFF" | ||
9985 | fontSize 16 | ||
9986 | fontName "Monospace" | ||
9987 | autoSizePolicy "node_width" | ||
9988 | anchor "t" | ||
9989 | borderDistance 0.0 | ||
9990 | ] | ||
9991 | LabelGraphics | ||
9992 | [ | ||
9993 | text " | ||
9994 | FunctionType enum | ||
9995 | " | ||
9996 | fontSize 14 | ||
9997 | fontName "Consolas" | ||
9998 | alignment "left" | ||
9999 | anchor "tl" | ||
10000 | borderDistance 6 | ||
10001 | ] | ||
10002 | ] | ||
10003 | |||
10004 | node | ||
10005 | [ | ||
10006 | id 1 | ||
10007 | graphics | ||
10008 | [ | ||
10009 | w 297.0 | ||
10010 | h 40 | ||
10011 | type "rectangle" | ||
10012 | fill "#FFFFFF" | ||
10013 | fill2 "#FFFFFF" | ||
10014 | outline "#000000" | ||
10015 | ] | ||
10016 | LabelGraphics | ||
10017 | [ | ||
10018 | text "Intermediate literal FunctionType" | ||
10019 | outline "#000000" | ||
10020 | fill "#FFFFFF" | ||
10021 | fontSize 16 | ||
10022 | fontName "Monospace" | ||
10023 | autoSizePolicy "node_width" | ||
10024 | anchor "t" | ||
10025 | borderDistance 0.0 | ||
10026 | ] | ||
10027 | LabelGraphics | ||
10028 | [ | ||
10029 | text " | ||
10030 | FunctionType enum | ||
10031 | " | ||
10032 | fontSize 14 | ||
10033 | fontName "Consolas" | ||
10034 | alignment "left" | ||
10035 | anchor "tl" | ||
10036 | borderDistance 6 | ||
10037 | ] | ||
10038 | ] | ||
10039 | |||
10040 | node | ||
10041 | [ | ||
10042 | id 2 | ||
10043 | graphics | ||
10044 | [ | ||
10045 | w 226.60000000000002 | ||
10046 | h 40 | ||
10047 | type "rectangle" | ||
10048 | fill "#FFFFFF" | ||
10049 | fill2 "#FFFFFF" | ||
10050 | outline "#000000" | ||
10051 | ] | ||
10052 | LabelGraphics | ||
10053 | [ | ||
10054 | text "Leaf literal FunctionType" | ||
10055 | outline "#000000" | ||
10056 | fill "#FFFFFF" | ||
10057 | fontSize 16 | ||
10058 | fontName "Monospace" | ||
10059 | autoSizePolicy "node_width" | ||
10060 | anchor "t" | ||
10061 | borderDistance 0.0 | ||
10062 | ] | ||
10063 | LabelGraphics | ||
10064 | [ | ||
10065 | text " | ||
10066 | FunctionType enum | ||
10067 | " | ||
10068 | fontSize 14 | ||
10069 | fontName "Consolas" | ||
10070 | alignment "left" | ||
10071 | anchor "tl" | ||
10072 | borderDistance 6 | ||
10073 | ] | ||
10074 | ] | ||
10075 | |||
10076 | node | ||
10077 | [ | ||
10078 | id 3 | ||
10079 | graphics | ||
10080 | [ | ||
10081 | w 361.90000000000003 | ||
10082 | h 54 | ||
10083 | type "rectangle" | ||
10084 | fill "#FFFFFF" | ||
10085 | fill2 "#FFFFFF" | ||
10086 | outline "#000000" | ||
10087 | ] | ||
10088 | LabelGraphics | ||
10089 | [ | ||
10090 | text "o 1" | ||
10091 | outline "#000000" | ||
10092 | fill "#FFFFFF" | ||
10093 | fontSize 16 | ||
10094 | fontName "Monospace" | ||
10095 | autoSizePolicy "node_width" | ||
10096 | anchor "t" | ||
10097 | borderDistance 0.0 | ||
10098 | ] | ||
10099 | LabelGraphics | ||
10100 | [ | ||
10101 | text " | ||
10102 | FunctionalArchitectureModel class DefinedPart | ||
10103 | FunctionalArchitectureModel class | ||
10104 | " | ||
10105 | fontSize 14 | ||
10106 | fontName "Consolas" | ||
10107 | alignment "left" | ||
10108 | anchor "tl" | ||
10109 | borderDistance 6 | ||
10110 | ] | ||
10111 | ] | ||
10112 | |||
10113 | node | ||
10114 | [ | ||
10115 | id 4 | ||
10116 | graphics | ||
10117 | [ | ||
10118 | w 41.800000000000004 | ||
10119 | h 26 | ||
10120 | type "rectangle" | ||
10121 | fill "#FFFFFF" | ||
10122 | fill2 "#FFFFFF" | ||
10123 | outline "#000000" | ||
10124 | ] | ||
10125 | LabelGraphics | ||
10126 | [ | ||
10127 | text "true" | ||
10128 | outline "#000000" | ||
10129 | fill "#FFFFFF" | ||
10130 | fontSize 16 | ||
10131 | fontName "Monospace" | ||
10132 | autoSizePolicy "node_width" | ||
10133 | anchor "t" | ||
10134 | borderDistance 0.0 | ||
10135 | ] | ||
10136 | LabelGraphics | ||
10137 | [ | ||
10138 | text " | ||
10139 | " | ||
10140 | fontSize 14 | ||
10141 | fontName "Consolas" | ||
10142 | alignment "left" | ||
10143 | anchor "tl" | ||
10144 | borderDistance 6 | ||
10145 | ] | ||
10146 | ] | ||
10147 | |||
10148 | node | ||
10149 | [ | ||
10150 | id 5 | ||
10151 | graphics | ||
10152 | [ | ||
10153 | w 50.6 | ||
10154 | h 26 | ||
10155 | type "rectangle" | ||
10156 | fill "#FFFFFF" | ||
10157 | fill2 "#FFFFFF" | ||
10158 | outline "#000000" | ||
10159 | ] | ||
10160 | LabelGraphics | ||
10161 | [ | ||
10162 | text "false" | ||
10163 | outline "#000000" | ||
10164 | fill "#FFFFFF" | ||
10165 | fontSize 16 | ||
10166 | fontName "Monospace" | ||
10167 | autoSizePolicy "node_width" | ||
10168 | anchor "t" | ||
10169 | borderDistance 0.0 | ||
10170 | ] | ||
10171 | LabelGraphics | ||
10172 | [ | ||
10173 | text " | ||
10174 | " | ||
10175 | fontSize 14 | ||
10176 | fontName "Consolas" | ||
10177 | alignment "left" | ||
10178 | anchor "tl" | ||
10179 | borderDistance 6 | ||
10180 | ] | ||
10181 | ] | ||
10182 | |||
10183 | node | ||
10184 | [ | ||
10185 | id 6 | ||
10186 | graphics | ||
10187 | [ | ||
10188 | w 192.50000000000003 | ||
10189 | h 54 | ||
10190 | type "rectangle" | ||
10191 | fill "#FFFFFF" | ||
10192 | fill2 "#FFFFFF" | ||
10193 | outline "#000000" | ||
10194 | ] | ||
10195 | LabelGraphics | ||
10196 | [ | ||
10197 | text "null" | ||
10198 | outline "#000000" | ||
10199 | fill "#FFFFFF" | ||
10200 | fontSize 16 | ||
10201 | fontName "Monospace" | ||
10202 | autoSizePolicy "node_width" | ||
10203 | anchor "t" | ||
10204 | borderDistance 0.0 | ||
10205 | ] | ||
10206 | LabelGraphics | ||
10207 | [ | ||
10208 | text " | ||
10209 | FunctionalElement class | ||
10210 | Function class | ||
10211 | " | ||
10212 | fontSize 14 | ||
10213 | fontName "Consolas" | ||
10214 | alignment "left" | ||
10215 | anchor "tl" | ||
10216 | borderDistance 6 | ||
10217 | ] | ||
10218 | ] | ||
10219 | |||
10220 | node | ||
10221 | [ | ||
10222 | id 7 | ||
10223 | graphics | ||
10224 | [ | ||
10225 | w 207.9 | ||
10226 | h 40 | ||
10227 | type "rectangle" | ||
10228 | fill "#FFFFFF" | ||
10229 | fill2 "#FFFFFF" | ||
10230 | outline "#000000" | ||
10231 | ] | ||
10232 | LabelGraphics | ||
10233 | [ | ||
10234 | text "null" | ||
10235 | outline "#000000" | ||
10236 | fill "#FFFFFF" | ||
10237 | fontSize 16 | ||
10238 | fontName "Monospace" | ||
10239 | autoSizePolicy "node_width" | ||
10240 | anchor "t" | ||
10241 | borderDistance 0.0 | ||
10242 | ] | ||
10243 | LabelGraphics | ||
10244 | [ | ||
10245 | text " | ||
10246 | FunctionalInterface class | ||
10247 | " | ||
10248 | fontSize 14 | ||
10249 | fontName "Consolas" | ||
10250 | alignment "left" | ||
10251 | anchor "tl" | ||
10252 | borderDistance 6 | ||
10253 | ] | ||
10254 | ] | ||
10255 | |||
10256 | node | ||
10257 | [ | ||
10258 | id 8 | ||
10259 | graphics | ||
10260 | [ | ||
10261 | w 184.8 | ||
10262 | h 54 | ||
10263 | type "rectangle" | ||
10264 | fill "#FFFFFF" | ||
10265 | fill2 "#FFFFFF" | ||
10266 | outline "#000000" | ||
10267 | ] | ||
10268 | LabelGraphics | ||
10269 | [ | ||
10270 | text "null" | ||
10271 | outline "#000000" | ||
10272 | fill "#FFFFFF" | ||
10273 | fontSize 16 | ||
10274 | fontName "Monospace" | ||
10275 | autoSizePolicy "node_width" | ||
10276 | anchor "t" | ||
10277 | borderDistance 0.0 | ||
10278 | ] | ||
10279 | LabelGraphics | ||
10280 | [ | ||
10281 | text " | ||
10282 | FunctionalOutput class | ||
10283 | FunctionalData class | ||
10284 | " | ||
10285 | fontSize 14 | ||
10286 | fontName "Consolas" | ||
10287 | alignment "left" | ||
10288 | anchor "tl" | ||
10289 | borderDistance 6 | ||
10290 | ] | ||
10291 | ] | ||
10292 | |||
10293 | node | ||
10294 | [ | ||
10295 | id 9 | ||
10296 | graphics | ||
10297 | [ | ||
10298 | w 177.10000000000002 | ||
10299 | h 40 | ||
10300 | type "rectangle" | ||
10301 | fill "#FFFFFF" | ||
10302 | fill2 "#FFFFFF" | ||
10303 | outline "#000000" | ||
10304 | ] | ||
10305 | LabelGraphics | ||
10306 | [ | ||
10307 | text "null" | ||
10308 | outline "#000000" | ||
10309 | fill "#FFFFFF" | ||
10310 | fontSize 16 | ||
10311 | fontName "Monospace" | ||
10312 | autoSizePolicy "node_width" | ||
10313 | anchor "t" | ||
10314 | borderDistance 0.0 | ||
10315 | ] | ||
10316 | LabelGraphics | ||
10317 | [ | ||
10318 | text " | ||
10319 | InformationLink class | ||
10320 | " | ||
10321 | fontSize 14 | ||
10322 | fontName "Consolas" | ||
10323 | alignment "left" | ||
10324 | anchor "tl" | ||
10325 | borderDistance 6 | ||
10326 | ] | ||
10327 | ] | ||
10328 | |||
10329 | node | ||
10330 | [ | ||
10331 | id 10 | ||
10332 | graphics | ||
10333 | [ | ||
10334 | w 177.10000000000002 | ||
10335 | h 54 | ||
10336 | type "rectangle" | ||
10337 | fill "#FFFFFF" | ||
10338 | fill2 "#FFFFFF" | ||
10339 | outline "#000000" | ||
10340 | ] | ||
10341 | LabelGraphics | ||
10342 | [ | ||
10343 | text "null" | ||
10344 | outline "#000000" | ||
10345 | fill "#FFFFFF" | ||
10346 | fontSize 16 | ||
10347 | fontName "Monospace" | ||
10348 | autoSizePolicy "node_width" | ||
10349 | anchor "t" | ||
10350 | borderDistance 0.0 | ||
10351 | ] | ||
10352 | LabelGraphics | ||
10353 | [ | ||
10354 | text " | ||
10355 | FunctionalInput class | ||
10356 | FunctionalData class | ||
10357 | " | ||
10358 | fontSize 14 | ||
10359 | fontName "Consolas" | ||
10360 | alignment "left" | ||
10361 | anchor "tl" | ||
10362 | borderDistance 6 | ||
10363 | ] | ||
10364 | ] | ||
10365 | |||
10366 | node | ||
10367 | [ | ||
10368 | id 11 | ||
10369 | graphics | ||
10370 | [ | ||
10371 | w 161.70000000000002 | ||
10372 | h 40 | ||
10373 | type "rectangle" | ||
10374 | fill "#FFFFFF" | ||
10375 | fill2 "#FFFFFF" | ||
10376 | outline "#000000" | ||
10377 | ] | ||
10378 | LabelGraphics | ||
10379 | [ | ||
10380 | text "null" | ||
10381 | outline "#000000" | ||
10382 | fill "#FFFFFF" | ||
10383 | fontSize 16 | ||
10384 | fontName "Monospace" | ||
10385 | autoSizePolicy "node_width" | ||
10386 | anchor "t" | ||
10387 | borderDistance 0.0 | ||
10388 | ] | ||
10389 | LabelGraphics | ||
10390 | [ | ||
10391 | text " | ||
10392 | FAMTerminator class | ||
10393 | " | ||
10394 | fontSize 14 | ||
10395 | fontName "Consolas" | ||
10396 | alignment "left" | ||
10397 | anchor "tl" | ||
10398 | borderDistance 6 | ||
10399 | ] | ||
10400 | ] | ||
10401 | |||
10402 | node | ||
10403 | [ | ||
10404 | id 12 | ||
10405 | graphics | ||
10406 | [ | ||
10407 | w 112.2 | ||
10408 | h 26 | ||
10409 | type "rectangle" | ||
10410 | fill "#FFFFFF" | ||
10411 | fill2 "#FFFFFF" | ||
10412 | outline "#000000" | ||
10413 | ] | ||
10414 | LabelGraphics | ||
10415 | [ | ||
10416 | text "New Integers" | ||
10417 | outline "#000000" | ||
10418 | fill "#FFFFFF" | ||
10419 | fontSize 16 | ||
10420 | fontName "Monospace" | ||
10421 | autoSizePolicy "node_width" | ||
10422 | anchor "t" | ||
10423 | borderDistance 0.0 | ||
10424 | ] | ||
10425 | LabelGraphics | ||
10426 | [ | ||
10427 | text " | ||
10428 | " | ||
10429 | fontSize 14 | ||
10430 | fontName "Consolas" | ||
10431 | alignment "left" | ||
10432 | anchor "tl" | ||
10433 | borderDistance 6 | ||
10434 | ] | ||
10435 | ] | ||
10436 | |||
10437 | node | ||
10438 | [ | ||
10439 | id 13 | ||
10440 | graphics | ||
10441 | [ | ||
10442 | w 85.80000000000001 | ||
10443 | h 26 | ||
10444 | type "rectangle" | ||
10445 | fill "#FFFFFF" | ||
10446 | fill2 "#FFFFFF" | ||
10447 | outline "#000000" | ||
10448 | ] | ||
10449 | LabelGraphics | ||
10450 | [ | ||
10451 | text "New Reals" | ||
10452 | outline "#000000" | ||
10453 | fill "#FFFFFF" | ||
10454 | fontSize 16 | ||
10455 | fontName "Monospace" | ||
10456 | autoSizePolicy "node_width" | ||
10457 | anchor "t" | ||
10458 | borderDistance 0.0 | ||
10459 | ] | ||
10460 | LabelGraphics | ||
10461 | [ | ||
10462 | text " | ||
10463 | " | ||
10464 | fontSize 14 | ||
10465 | fontName "Consolas" | ||
10466 | alignment "left" | ||
10467 | anchor "tl" | ||
10468 | borderDistance 6 | ||
10469 | ] | ||
10470 | ] | ||
10471 | |||
10472 | node | ||
10473 | [ | ||
10474 | id 14 | ||
10475 | graphics | ||
10476 | [ | ||
10477 | w 103.4 | ||
10478 | h 26 | ||
10479 | type "rectangle" | ||
10480 | fill "#FFFFFF" | ||
10481 | fill2 "#FFFFFF" | ||
10482 | outline "#000000" | ||
10483 | ] | ||
10484 | LabelGraphics | ||
10485 | [ | ||
10486 | text "New Strings" | ||
10487 | outline "#000000" | ||
10488 | fill "#FFFFFF" | ||
10489 | fontSize 16 | ||
10490 | fontName "Monospace" | ||
10491 | autoSizePolicy "node_width" | ||
10492 | anchor "t" | ||
10493 | borderDistance 0.0 | ||
10494 | ] | ||
10495 | LabelGraphics | ||
10496 | [ | ||
10497 | text " | ||
10498 | " | ||
10499 | fontSize 14 | ||
10500 | fontName "Consolas" | ||
10501 | alignment "left" | ||
10502 | anchor "tl" | ||
10503 | borderDistance 6 | ||
10504 | ] | ||
10505 | ] | ||
10506 | |||
10507 | node | ||
10508 | [ | ||
10509 | id 15 | ||
10510 | graphics | ||
10511 | [ | ||
10512 | w 103.4 | ||
10513 | h 26 | ||
10514 | type "rectangle" | ||
10515 | fill "#FFFFFF" | ||
10516 | fill2 "#FFFFFF" | ||
10517 | outline "#000000" | ||
10518 | ] | ||
10519 | LabelGraphics | ||
10520 | [ | ||
10521 | text "New Objects" | ||
10522 | outline "#000000" | ||
10523 | fill "#FFFFFF" | ||
10524 | fontSize 16 | ||
10525 | fontName "Monospace" | ||
10526 | autoSizePolicy "node_width" | ||
10527 | anchor "t" | ||
10528 | borderDistance 0.0 | ||
10529 | ] | ||
10530 | LabelGraphics | ||
10531 | [ | ||
10532 | text " | ||
10533 | " | ||
10534 | fontSize 14 | ||
10535 | fontName "Consolas" | ||
10536 | alignment "left" | ||
10537 | anchor "tl" | ||
10538 | borderDistance 6 | ||
10539 | ] | ||
10540 | ] | ||
10541 | edge | ||
10542 | [ | ||
10543 | source 6 | ||
10544 | target 7 | ||
10545 | graphics | ||
10546 | [ | ||
10547 | fill "#000000" | ||
10548 | width 3 | ||
10549 | targetArrow "standard" | ||
10550 | ] | ||
10551 | LabelGraphics | ||
10552 | [ | ||
10553 | text "interface reference FunctionalElement" | ||
10554 | fontSize 14 | ||
10555 | fontName "Consolas" | ||
10556 | configuration "AutoFlippingLabel" | ||
10557 | model "six_pos" | ||
10558 | position "thead" | ||
10559 | ] | ||
10560 | ] | ||
10561 | edge | ||
10562 | [ | ||
10563 | source 6 | ||
10564 | target 3 | ||
10565 | graphics | ||
10566 | [ | ||
10567 | fill "#000000" | ||
10568 | targetArrow "standard" | ||
10569 | ] | ||
10570 | LabelGraphics | ||
10571 | [ | ||
10572 | text "model reference FunctionalElement" | ||
10573 | fontSize 14 | ||
10574 | fontName "Consolas" | ||
10575 | configuration "AutoFlippingLabel" | ||
10576 | model "six_pos" | ||
10577 | position "thead" | ||
10578 | ] | ||
10579 | ] | ||
10580 | edge | ||
10581 | [ | ||
10582 | source 3 | ||
10583 | target 6 | ||
10584 | graphics | ||
10585 | [ | ||
10586 | fill "#000000" | ||
10587 | width 3 | ||
10588 | targetArrow "standard" | ||
10589 | ] | ||
10590 | LabelGraphics | ||
10591 | [ | ||
10592 | text "rootElements reference FunctionalArchitectureModel" | ||
10593 | fontSize 14 | ||
10594 | fontName "Consolas" | ||
10595 | configuration "AutoFlippingLabel" | ||
10596 | model "six_pos" | ||
10597 | position "thead" | ||
10598 | ] | ||
10599 | ] | ||
10600 | edge | ||
10601 | [ | ||
10602 | source 11 | ||
10603 | target 10 | ||
10604 | graphics | ||
10605 | [ | ||
10606 | fill "#000000" | ||
10607 | targetArrow "standard" | ||
10608 | ] | ||
10609 | LabelGraphics | ||
10610 | [ | ||
10611 | text "data reference FAMTerminator" | ||
10612 | fontSize 14 | ||
10613 | fontName "Consolas" | ||
10614 | configuration "AutoFlippingLabel" | ||
10615 | model "six_pos" | ||
10616 | position "thead" | ||
10617 | ] | ||
10618 | ] | ||
10619 | edge | ||
10620 | [ | ||
10621 | source 9 | ||
10622 | target 8 | ||
10623 | graphics | ||
10624 | [ | ||
10625 | fill "#000000" | ||
10626 | targetArrow "standard" | ||
10627 | ] | ||
10628 | LabelGraphics | ||
10629 | [ | ||
10630 | text "from reference InformationLink" | ||
10631 | fontSize 14 | ||
10632 | fontName "Consolas" | ||
10633 | configuration "AutoFlippingLabel" | ||
10634 | model "six_pos" | ||
10635 | position "thead" | ||
10636 | ] | ||
10637 | ] | ||
10638 | edge | ||
10639 | [ | ||
10640 | source 9 | ||
10641 | target 10 | ||
10642 | graphics | ||
10643 | [ | ||
10644 | fill "#000000" | ||
10645 | targetArrow "standard" | ||
10646 | ] | ||
10647 | LabelGraphics | ||
10648 | [ | ||
10649 | text "to reference InformationLink" | ||
10650 | fontSize 14 | ||
10651 | fontName "Consolas" | ||
10652 | configuration "AutoFlippingLabel" | ||
10653 | model "six_pos" | ||
10654 | position "thead" | ||
10655 | ] | ||
10656 | ] | ||
10657 | edge | ||
10658 | [ | ||
10659 | source 7 | ||
10660 | target 8 | ||
10661 | graphics | ||
10662 | [ | ||
10663 | fill "#000000" | ||
10664 | width 3 | ||
10665 | targetArrow "standard" | ||
10666 | ] | ||
10667 | LabelGraphics | ||
10668 | [ | ||
10669 | text "data reference FunctionalInterface" | ||
10670 | fontSize 14 | ||
10671 | fontName "Consolas" | ||
10672 | configuration "AutoFlippingLabel" | ||
10673 | model "six_pos" | ||
10674 | position "thead" | ||
10675 | ] | ||
10676 | ] | ||
10677 | edge | ||
10678 | [ | ||
10679 | source 7 | ||
10680 | target 10 | ||
10681 | graphics | ||
10682 | [ | ||
10683 | fill "#000000" | ||
10684 | width 3 | ||
10685 | targetArrow "standard" | ||
10686 | ] | ||
10687 | LabelGraphics | ||
10688 | [ | ||
10689 | text "data reference FunctionalInterface" | ||
10690 | fontSize 14 | ||
10691 | fontName "Consolas" | ||
10692 | configuration "AutoFlippingLabel" | ||
10693 | model "six_pos" | ||
10694 | position "thead" | ||
10695 | ] | ||
10696 | ] | ||
10697 | edge | ||
10698 | [ | ||
10699 | source 7 | ||
10700 | target 6 | ||
10701 | graphics | ||
10702 | [ | ||
10703 | fill "#000000" | ||
10704 | targetArrow "standard" | ||
10705 | ] | ||
10706 | LabelGraphics | ||
10707 | [ | ||
10708 | text "element reference FunctionalInterface" | ||
10709 | fontSize 14 | ||
10710 | fontName "Consolas" | ||
10711 | configuration "AutoFlippingLabel" | ||
10712 | model "six_pos" | ||
10713 | position "thead" | ||
10714 | ] | ||
10715 | ] | ||
10716 | edge | ||
10717 | [ | ||
10718 | source 10 | ||
10719 | target 9 | ||
10720 | graphics | ||
10721 | [ | ||
10722 | fill "#000000" | ||
10723 | targetArrow "standard" | ||
10724 | ] | ||
10725 | LabelGraphics | ||
10726 | [ | ||
10727 | text "IncomingLinks reference FunctionalInput" | ||
10728 | fontSize 14 | ||
10729 | fontName "Consolas" | ||
10730 | configuration "AutoFlippingLabel" | ||
10731 | model "six_pos" | ||
10732 | position "thead" | ||
10733 | ] | ||
10734 | ] | ||
10735 | edge | ||
10736 | [ | ||
10737 | source 8 | ||
10738 | target 9 | ||
10739 | graphics | ||
10740 | [ | ||
10741 | fill "#000000" | ||
10742 | width 3 | ||
10743 | targetArrow "standard" | ||
10744 | ] | ||
10745 | LabelGraphics | ||
10746 | [ | ||
10747 | text "outgoingLinks reference FunctionalOutput" | ||
10748 | fontSize 14 | ||
10749 | fontName "Consolas" | ||
10750 | configuration "AutoFlippingLabel" | ||
10751 | model "six_pos" | ||
10752 | position "thead" | ||
10753 | ] | ||
10754 | ] | ||
10755 | edge | ||
10756 | [ | ||
10757 | source 10 | ||
10758 | target 11 | ||
10759 | graphics | ||
10760 | [ | ||
10761 | fill "#000000" | ||
10762 | width 3 | ||
10763 | targetArrow "standard" | ||
10764 | ] | ||
10765 | LabelGraphics | ||
10766 | [ | ||
10767 | text "terminator reference FunctionalData" | ||
10768 | fontSize 14 | ||
10769 | fontName "Consolas" | ||
10770 | configuration "AutoFlippingLabel" | ||
10771 | model "six_pos" | ||
10772 | position "thead" | ||
10773 | ] | ||
10774 | ] | ||
10775 | edge | ||
10776 | [ | ||
10777 | source 8 | ||
10778 | target 7 | ||
10779 | graphics | ||
10780 | [ | ||
10781 | fill "#000000" | ||
10782 | targetArrow "standard" | ||
10783 | ] | ||
10784 | LabelGraphics | ||
10785 | [ | ||
10786 | text "interface reference FunctionalData" | ||
10787 | fontSize 14 | ||
10788 | fontName "Consolas" | ||
10789 | configuration "AutoFlippingLabel" | ||
10790 | model "six_pos" | ||
10791 | position "thead" | ||
10792 | ] | ||
10793 | ] | ||
10794 | edge | ||
10795 | [ | ||
10796 | source 10 | ||
10797 | target 7 | ||
10798 | graphics | ||
10799 | [ | ||
10800 | fill "#000000" | ||
10801 | targetArrow "standard" | ||
10802 | ] | ||
10803 | LabelGraphics | ||
10804 | [ | ||
10805 | text "interface reference FunctionalData" | ||
10806 | fontSize 14 | ||
10807 | fontName "Consolas" | ||
10808 | configuration "AutoFlippingLabel" | ||
10809 | model "six_pos" | ||
10810 | position "thead" | ||
10811 | ] | ||
10812 | ] | ||
10813 | edge | ||
10814 | [ | ||
10815 | source 6 | ||
10816 | target 0 | ||
10817 | graphics | ||
10818 | [ | ||
10819 | fill "#000000" | ||
10820 | targetArrow "standard" | ||
10821 | ] | ||
10822 | LabelGraphics | ||
10823 | [ | ||
10824 | text "type attribute Function" | ||
10825 | fontSize 14 | ||
10826 | fontName "Consolas" | ||
10827 | configuration "AutoFlippingLabel" | ||
10828 | model "six_pos" | ||
10829 | position "thead" | ||
10830 | ] | ||
10831 | ] | ||
10832 | ] | ||
10833 | graph | ||
10834 | [ | ||
10835 | node | ||
10836 | [ | ||
10837 | id 0 | ||
10838 | graphics | ||
10839 | [ | ||
10840 | w 226.60000000000002 | ||
10841 | h 40 | ||
10842 | type "rectangle" | ||
10843 | fill "#FFFFFF" | ||
10844 | fill2 "#FFFFFF" | ||
10845 | outline "#000000" | ||
10846 | ] | ||
10847 | LabelGraphics | ||
10848 | [ | ||
10849 | text "Root literal FunctionType" | ||
10850 | outline "#000000" | ||
10851 | fill "#FFFFFF" | ||
10852 | fontSize 16 | ||
10853 | fontName "Monospace" | ||
10854 | autoSizePolicy "node_width" | ||
10855 | anchor "t" | ||
10856 | borderDistance 0.0 | ||
10857 | ] | ||
10858 | LabelGraphics | ||
10859 | [ | ||
10860 | text " | ||
10861 | FunctionType enum | ||
10862 | " | ||
10863 | fontSize 14 | ||
10864 | fontName "Consolas" | ||
10865 | alignment "left" | ||
10866 | anchor "tl" | ||
10867 | borderDistance 6 | ||
10868 | ] | ||
10869 | ] | ||
10870 | |||
10871 | node | ||
10872 | [ | ||
10873 | id 1 | ||
10874 | graphics | ||
10875 | [ | ||
10876 | w 297.0 | ||
10877 | h 40 | ||
10878 | type "rectangle" | ||
10879 | fill "#FFFFFF" | ||
10880 | fill2 "#FFFFFF" | ||
10881 | outline "#000000" | ||
10882 | ] | ||
10883 | LabelGraphics | ||
10884 | [ | ||
10885 | text "Intermediate literal FunctionType" | ||
10886 | outline "#000000" | ||
10887 | fill "#FFFFFF" | ||
10888 | fontSize 16 | ||
10889 | fontName "Monospace" | ||
10890 | autoSizePolicy "node_width" | ||
10891 | anchor "t" | ||
10892 | borderDistance 0.0 | ||
10893 | ] | ||
10894 | LabelGraphics | ||
10895 | [ | ||
10896 | text " | ||
10897 | FunctionType enum | ||
10898 | " | ||
10899 | fontSize 14 | ||
10900 | fontName "Consolas" | ||
10901 | alignment "left" | ||
10902 | anchor "tl" | ||
10903 | borderDistance 6 | ||
10904 | ] | ||
10905 | ] | ||
10906 | |||
10907 | node | ||
10908 | [ | ||
10909 | id 2 | ||
10910 | graphics | ||
10911 | [ | ||
10912 | w 226.60000000000002 | ||
10913 | h 40 | ||
10914 | type "rectangle" | ||
10915 | fill "#FFFFFF" | ||
10916 | fill2 "#FFFFFF" | ||
10917 | outline "#000000" | ||
10918 | ] | ||
10919 | LabelGraphics | ||
10920 | [ | ||
10921 | text "Leaf literal FunctionType" | ||
10922 | outline "#000000" | ||
10923 | fill "#FFFFFF" | ||
10924 | fontSize 16 | ||
10925 | fontName "Monospace" | ||
10926 | autoSizePolicy "node_width" | ||
10927 | anchor "t" | ||
10928 | borderDistance 0.0 | ||
10929 | ] | ||
10930 | LabelGraphics | ||
10931 | [ | ||
10932 | text " | ||
10933 | FunctionType enum | ||
10934 | " | ||
10935 | fontSize 14 | ||
10936 | fontName "Consolas" | ||
10937 | alignment "left" | ||
10938 | anchor "tl" | ||
10939 | borderDistance 6 | ||
10940 | ] | ||
10941 | ] | ||
10942 | |||
10943 | node | ||
10944 | [ | ||
10945 | id 3 | ||
10946 | graphics | ||
10947 | [ | ||
10948 | w 361.90000000000003 | ||
10949 | h 54 | ||
10950 | type "rectangle" | ||
10951 | fill "#FFFFFF" | ||
10952 | fill2 "#FFFFFF" | ||
10953 | outline "#000000" | ||
10954 | ] | ||
10955 | LabelGraphics | ||
10956 | [ | ||
10957 | text "o 1" | ||
10958 | outline "#000000" | ||
10959 | fill "#FFFFFF" | ||
10960 | fontSize 16 | ||
10961 | fontName "Monospace" | ||
10962 | autoSizePolicy "node_width" | ||
10963 | anchor "t" | ||
10964 | borderDistance 0.0 | ||
10965 | ] | ||
10966 | LabelGraphics | ||
10967 | [ | ||
10968 | text " | ||
10969 | FunctionalArchitectureModel class DefinedPart | ||
10970 | FunctionalArchitectureModel class | ||
10971 | " | ||
10972 | fontSize 14 | ||
10973 | fontName "Consolas" | ||
10974 | alignment "left" | ||
10975 | anchor "tl" | ||
10976 | borderDistance 6 | ||
10977 | ] | ||
10978 | ] | ||
10979 | |||
10980 | node | ||
10981 | [ | ||
10982 | id 4 | ||
10983 | graphics | ||
10984 | [ | ||
10985 | w 41.800000000000004 | ||
10986 | h 26 | ||
10987 | type "rectangle" | ||
10988 | fill "#FFFFFF" | ||
10989 | fill2 "#FFFFFF" | ||
10990 | outline "#000000" | ||
10991 | ] | ||
10992 | LabelGraphics | ||
10993 | [ | ||
10994 | text "true" | ||
10995 | outline "#000000" | ||
10996 | fill "#FFFFFF" | ||
10997 | fontSize 16 | ||
10998 | fontName "Monospace" | ||
10999 | autoSizePolicy "node_width" | ||
11000 | anchor "t" | ||
11001 | borderDistance 0.0 | ||
11002 | ] | ||
11003 | LabelGraphics | ||
11004 | [ | ||
11005 | text " | ||
11006 | " | ||
11007 | fontSize 14 | ||
11008 | fontName "Consolas" | ||
11009 | alignment "left" | ||
11010 | anchor "tl" | ||
11011 | borderDistance 6 | ||
11012 | ] | ||
11013 | ] | ||
11014 | |||
11015 | node | ||
11016 | [ | ||
11017 | id 5 | ||
11018 | graphics | ||
11019 | [ | ||
11020 | w 50.6 | ||
11021 | h 26 | ||
11022 | type "rectangle" | ||
11023 | fill "#FFFFFF" | ||
11024 | fill2 "#FFFFFF" | ||
11025 | outline "#000000" | ||
11026 | ] | ||
11027 | LabelGraphics | ||
11028 | [ | ||
11029 | text "false" | ||
11030 | outline "#000000" | ||
11031 | fill "#FFFFFF" | ||
11032 | fontSize 16 | ||
11033 | fontName "Monospace" | ||
11034 | autoSizePolicy "node_width" | ||
11035 | anchor "t" | ||
11036 | borderDistance 0.0 | ||
11037 | ] | ||
11038 | LabelGraphics | ||
11039 | [ | ||
11040 | text " | ||
11041 | " | ||
11042 | fontSize 14 | ||
11043 | fontName "Consolas" | ||
11044 | alignment "left" | ||
11045 | anchor "tl" | ||
11046 | borderDistance 6 | ||
11047 | ] | ||
11048 | ] | ||
11049 | |||
11050 | node | ||
11051 | [ | ||
11052 | id 6 | ||
11053 | graphics | ||
11054 | [ | ||
11055 | w 192.50000000000003 | ||
11056 | h 54 | ||
11057 | type "rectangle" | ||
11058 | fill "#FFFFFF" | ||
11059 | fill2 "#FFFFFF" | ||
11060 | outline "#000000" | ||
11061 | ] | ||
11062 | LabelGraphics | ||
11063 | [ | ||
11064 | text "null" | ||
11065 | outline "#000000" | ||
11066 | fill "#FFFFFF" | ||
11067 | fontSize 16 | ||
11068 | fontName "Monospace" | ||
11069 | autoSizePolicy "node_width" | ||
11070 | anchor "t" | ||
11071 | borderDistance 0.0 | ||
11072 | ] | ||
11073 | LabelGraphics | ||
11074 | [ | ||
11075 | text " | ||
11076 | FunctionalElement class | ||
11077 | Function class | ||
11078 | " | ||
11079 | fontSize 14 | ||
11080 | fontName "Consolas" | ||
11081 | alignment "left" | ||
11082 | anchor "tl" | ||
11083 | borderDistance 6 | ||
11084 | ] | ||
11085 | ] | ||
11086 | |||
11087 | node | ||
11088 | [ | ||
11089 | id 7 | ||
11090 | graphics | ||
11091 | [ | ||
11092 | w 207.9 | ||
11093 | h 40 | ||
11094 | type "rectangle" | ||
11095 | fill "#FFFFFF" | ||
11096 | fill2 "#FFFFFF" | ||
11097 | outline "#000000" | ||
11098 | ] | ||
11099 | LabelGraphics | ||
11100 | [ | ||
11101 | text "null" | ||
11102 | outline "#000000" | ||
11103 | fill "#FFFFFF" | ||
11104 | fontSize 16 | ||
11105 | fontName "Monospace" | ||
11106 | autoSizePolicy "node_width" | ||
11107 | anchor "t" | ||
11108 | borderDistance 0.0 | ||
11109 | ] | ||
11110 | LabelGraphics | ||
11111 | [ | ||
11112 | text " | ||
11113 | FunctionalInterface class | ||
11114 | " | ||
11115 | fontSize 14 | ||
11116 | fontName "Consolas" | ||
11117 | alignment "left" | ||
11118 | anchor "tl" | ||
11119 | borderDistance 6 | ||
11120 | ] | ||
11121 | ] | ||
11122 | |||
11123 | node | ||
11124 | [ | ||
11125 | id 8 | ||
11126 | graphics | ||
11127 | [ | ||
11128 | w 184.8 | ||
11129 | h 54 | ||
11130 | type "rectangle" | ||
11131 | fill "#FFFFFF" | ||
11132 | fill2 "#FFFFFF" | ||
11133 | outline "#000000" | ||
11134 | ] | ||
11135 | LabelGraphics | ||
11136 | [ | ||
11137 | text "null" | ||
11138 | outline "#000000" | ||
11139 | fill "#FFFFFF" | ||
11140 | fontSize 16 | ||
11141 | fontName "Monospace" | ||
11142 | autoSizePolicy "node_width" | ||
11143 | anchor "t" | ||
11144 | borderDistance 0.0 | ||
11145 | ] | ||
11146 | LabelGraphics | ||
11147 | [ | ||
11148 | text " | ||
11149 | FunctionalOutput class | ||
11150 | FunctionalData class | ||
11151 | " | ||
11152 | fontSize 14 | ||
11153 | fontName "Consolas" | ||
11154 | alignment "left" | ||
11155 | anchor "tl" | ||
11156 | borderDistance 6 | ||
11157 | ] | ||
11158 | ] | ||
11159 | |||
11160 | node | ||
11161 | [ | ||
11162 | id 9 | ||
11163 | graphics | ||
11164 | [ | ||
11165 | w 161.70000000000002 | ||
11166 | h 40 | ||
11167 | type "rectangle" | ||
11168 | fill "#FFFFFF" | ||
11169 | fill2 "#FFFFFF" | ||
11170 | outline "#000000" | ||
11171 | ] | ||
11172 | LabelGraphics | ||
11173 | [ | ||
11174 | text "null" | ||
11175 | outline "#000000" | ||
11176 | fill "#FFFFFF" | ||
11177 | fontSize 16 | ||
11178 | fontName "Monospace" | ||
11179 | autoSizePolicy "node_width" | ||
11180 | anchor "t" | ||
11181 | borderDistance 0.0 | ||
11182 | ] | ||
11183 | LabelGraphics | ||
11184 | [ | ||
11185 | text " | ||
11186 | FAMTerminator class | ||
11187 | " | ||
11188 | fontSize 14 | ||
11189 | fontName "Consolas" | ||
11190 | alignment "left" | ||
11191 | anchor "tl" | ||
11192 | borderDistance 6 | ||
11193 | ] | ||
11194 | ] | ||
11195 | |||
11196 | node | ||
11197 | [ | ||
11198 | id 10 | ||
11199 | graphics | ||
11200 | [ | ||
11201 | w 184.8 | ||
11202 | h 54 | ||
11203 | type "rectangle" | ||
11204 | fill "#FFFFFF" | ||
11205 | fill2 "#FFFFFF" | ||
11206 | outline "#000000" | ||
11207 | ] | ||
11208 | LabelGraphics | ||
11209 | [ | ||
11210 | text "null" | ||
11211 | outline "#000000" | ||
11212 | fill "#FFFFFF" | ||
11213 | fontSize 16 | ||
11214 | fontName "Monospace" | ||
11215 | autoSizePolicy "node_width" | ||
11216 | anchor "t" | ||
11217 | borderDistance 0.0 | ||
11218 | ] | ||
11219 | LabelGraphics | ||
11220 | [ | ||
11221 | text " | ||
11222 | FunctionalOutput class | ||
11223 | FunctionalData class | ||
11224 | " | ||
11225 | fontSize 14 | ||
11226 | fontName "Consolas" | ||
11227 | alignment "left" | ||
11228 | anchor "tl" | ||
11229 | borderDistance 6 | ||
11230 | ] | ||
11231 | ] | ||
11232 | |||
11233 | node | ||
11234 | [ | ||
11235 | id 11 | ||
11236 | graphics | ||
11237 | [ | ||
11238 | w 177.10000000000002 | ||
11239 | h 54 | ||
11240 | type "rectangle" | ||
11241 | fill "#FFFFFF" | ||
11242 | fill2 "#FFFFFF" | ||
11243 | outline "#000000" | ||
11244 | ] | ||
11245 | LabelGraphics | ||
11246 | [ | ||
11247 | text "null" | ||
11248 | outline "#000000" | ||
11249 | fill "#FFFFFF" | ||
11250 | fontSize 16 | ||
11251 | fontName "Monospace" | ||
11252 | autoSizePolicy "node_width" | ||
11253 | anchor "t" | ||
11254 | borderDistance 0.0 | ||
11255 | ] | ||
11256 | LabelGraphics | ||
11257 | [ | ||
11258 | text " | ||
11259 | FunctionalInput class | ||
11260 | FunctionalData class | ||
11261 | " | ||
11262 | fontSize 14 | ||
11263 | fontName "Consolas" | ||
11264 | alignment "left" | ||
11265 | anchor "tl" | ||
11266 | borderDistance 6 | ||
11267 | ] | ||
11268 | ] | ||
11269 | |||
11270 | node | ||
11271 | [ | ||
11272 | id 12 | ||
11273 | graphics | ||
11274 | [ | ||
11275 | w 112.2 | ||
11276 | h 26 | ||
11277 | type "rectangle" | ||
11278 | fill "#FFFFFF" | ||
11279 | fill2 "#FFFFFF" | ||
11280 | outline "#000000" | ||
11281 | ] | ||
11282 | LabelGraphics | ||
11283 | [ | ||
11284 | text "New Integers" | ||
11285 | outline "#000000" | ||
11286 | fill "#FFFFFF" | ||
11287 | fontSize 16 | ||
11288 | fontName "Monospace" | ||
11289 | autoSizePolicy "node_width" | ||
11290 | anchor "t" | ||
11291 | borderDistance 0.0 | ||
11292 | ] | ||
11293 | LabelGraphics | ||
11294 | [ | ||
11295 | text " | ||
11296 | " | ||
11297 | fontSize 14 | ||
11298 | fontName "Consolas" | ||
11299 | alignment "left" | ||
11300 | anchor "tl" | ||
11301 | borderDistance 6 | ||
11302 | ] | ||
11303 | ] | ||
11304 | |||
11305 | node | ||
11306 | [ | ||
11307 | id 13 | ||
11308 | graphics | ||
11309 | [ | ||
11310 | w 85.80000000000001 | ||
11311 | h 26 | ||
11312 | type "rectangle" | ||
11313 | fill "#FFFFFF" | ||
11314 | fill2 "#FFFFFF" | ||
11315 | outline "#000000" | ||
11316 | ] | ||
11317 | LabelGraphics | ||
11318 | [ | ||
11319 | text "New Reals" | ||
11320 | outline "#000000" | ||
11321 | fill "#FFFFFF" | ||
11322 | fontSize 16 | ||
11323 | fontName "Monospace" | ||
11324 | autoSizePolicy "node_width" | ||
11325 | anchor "t" | ||
11326 | borderDistance 0.0 | ||
11327 | ] | ||
11328 | LabelGraphics | ||
11329 | [ | ||
11330 | text " | ||
11331 | " | ||
11332 | fontSize 14 | ||
11333 | fontName "Consolas" | ||
11334 | alignment "left" | ||
11335 | anchor "tl" | ||
11336 | borderDistance 6 | ||
11337 | ] | ||
11338 | ] | ||
11339 | |||
11340 | node | ||
11341 | [ | ||
11342 | id 14 | ||
11343 | graphics | ||
11344 | [ | ||
11345 | w 103.4 | ||
11346 | h 26 | ||
11347 | type "rectangle" | ||
11348 | fill "#FFFFFF" | ||
11349 | fill2 "#FFFFFF" | ||
11350 | outline "#000000" | ||
11351 | ] | ||
11352 | LabelGraphics | ||
11353 | [ | ||
11354 | text "New Strings" | ||
11355 | outline "#000000" | ||
11356 | fill "#FFFFFF" | ||
11357 | fontSize 16 | ||
11358 | fontName "Monospace" | ||
11359 | autoSizePolicy "node_width" | ||
11360 | anchor "t" | ||
11361 | borderDistance 0.0 | ||
11362 | ] | ||
11363 | LabelGraphics | ||
11364 | [ | ||
11365 | text " | ||
11366 | " | ||
11367 | fontSize 14 | ||
11368 | fontName "Consolas" | ||
11369 | alignment "left" | ||
11370 | anchor "tl" | ||
11371 | borderDistance 6 | ||
11372 | ] | ||
11373 | ] | ||
11374 | |||
11375 | node | ||
11376 | [ | ||
11377 | id 15 | ||
11378 | graphics | ||
11379 | [ | ||
11380 | w 103.4 | ||
11381 | h 26 | ||
11382 | type "rectangle" | ||
11383 | fill "#FFFFFF" | ||
11384 | fill2 "#FFFFFF" | ||
11385 | outline "#000000" | ||
11386 | ] | ||
11387 | LabelGraphics | ||
11388 | [ | ||
11389 | text "New Objects" | ||
11390 | outline "#000000" | ||
11391 | fill "#FFFFFF" | ||
11392 | fontSize 16 | ||
11393 | fontName "Monospace" | ||
11394 | autoSizePolicy "node_width" | ||
11395 | anchor "t" | ||
11396 | borderDistance 0.0 | ||
11397 | ] | ||
11398 | LabelGraphics | ||
11399 | [ | ||
11400 | text " | ||
11401 | " | ||
11402 | fontSize 14 | ||
11403 | fontName "Consolas" | ||
11404 | alignment "left" | ||
11405 | anchor "tl" | ||
11406 | borderDistance 6 | ||
11407 | ] | ||
11408 | ] | ||
11409 | edge | ||
11410 | [ | ||
11411 | source 6 | ||
11412 | target 7 | ||
11413 | graphics | ||
11414 | [ | ||
11415 | fill "#000000" | ||
11416 | width 3 | ||
11417 | targetArrow "standard" | ||
11418 | ] | ||
11419 | LabelGraphics | ||
11420 | [ | ||
11421 | text "interface reference FunctionalElement" | ||
11422 | fontSize 14 | ||
11423 | fontName "Consolas" | ||
11424 | configuration "AutoFlippingLabel" | ||
11425 | model "six_pos" | ||
11426 | position "thead" | ||
11427 | ] | ||
11428 | ] | ||
11429 | edge | ||
11430 | [ | ||
11431 | source 6 | ||
11432 | target 3 | ||
11433 | graphics | ||
11434 | [ | ||
11435 | fill "#000000" | ||
11436 | targetArrow "standard" | ||
11437 | ] | ||
11438 | LabelGraphics | ||
11439 | [ | ||
11440 | text "model reference FunctionalElement" | ||
11441 | fontSize 14 | ||
11442 | fontName "Consolas" | ||
11443 | configuration "AutoFlippingLabel" | ||
11444 | model "six_pos" | ||
11445 | position "thead" | ||
11446 | ] | ||
11447 | ] | ||
11448 | edge | ||
11449 | [ | ||
11450 | source 3 | ||
11451 | target 6 | ||
11452 | graphics | ||
11453 | [ | ||
11454 | fill "#000000" | ||
11455 | width 3 | ||
11456 | targetArrow "standard" | ||
11457 | ] | ||
11458 | LabelGraphics | ||
11459 | [ | ||
11460 | text "rootElements reference FunctionalArchitectureModel" | ||
11461 | fontSize 14 | ||
11462 | fontName "Consolas" | ||
11463 | configuration "AutoFlippingLabel" | ||
11464 | model "six_pos" | ||
11465 | position "thead" | ||
11466 | ] | ||
11467 | ] | ||
11468 | edge | ||
11469 | [ | ||
11470 | source 9 | ||
11471 | target 8 | ||
11472 | graphics | ||
11473 | [ | ||
11474 | fill "#000000" | ||
11475 | targetArrow "standard" | ||
11476 | ] | ||
11477 | LabelGraphics | ||
11478 | [ | ||
11479 | text "data reference FAMTerminator" | ||
11480 | fontSize 14 | ||
11481 | fontName "Consolas" | ||
11482 | configuration "AutoFlippingLabel" | ||
11483 | model "six_pos" | ||
11484 | position "thead" | ||
11485 | ] | ||
11486 | ] | ||
11487 | edge | ||
11488 | [ | ||
11489 | source 7 | ||
11490 | target 8 | ||
11491 | graphics | ||
11492 | [ | ||
11493 | fill "#000000" | ||
11494 | width 3 | ||
11495 | targetArrow "standard" | ||
11496 | ] | ||
11497 | LabelGraphics | ||
11498 | [ | ||
11499 | text "data reference FunctionalInterface" | ||
11500 | fontSize 14 | ||
11501 | fontName "Consolas" | ||
11502 | configuration "AutoFlippingLabel" | ||
11503 | model "six_pos" | ||
11504 | position "thead" | ||
11505 | ] | ||
11506 | ] | ||
11507 | edge | ||
11508 | [ | ||
11509 | source 7 | ||
11510 | target 10 | ||
11511 | graphics | ||
11512 | [ | ||
11513 | fill "#000000" | ||
11514 | width 3 | ||
11515 | targetArrow "standard" | ||
11516 | ] | ||
11517 | LabelGraphics | ||
11518 | [ | ||
11519 | text "data reference FunctionalInterface" | ||
11520 | fontSize 14 | ||
11521 | fontName "Consolas" | ||
11522 | configuration "AutoFlippingLabel" | ||
11523 | model "six_pos" | ||
11524 | position "thead" | ||
11525 | ] | ||
11526 | ] | ||
11527 | edge | ||
11528 | [ | ||
11529 | source 7 | ||
11530 | target 11 | ||
11531 | graphics | ||
11532 | [ | ||
11533 | fill "#000000" | ||
11534 | width 3 | ||
11535 | targetArrow "standard" | ||
11536 | ] | ||
11537 | LabelGraphics | ||
11538 | [ | ||
11539 | text "data reference FunctionalInterface" | ||
11540 | fontSize 14 | ||
11541 | fontName "Consolas" | ||
11542 | configuration "AutoFlippingLabel" | ||
11543 | model "six_pos" | ||
11544 | position "thead" | ||
11545 | ] | ||
11546 | ] | ||
11547 | edge | ||
11548 | [ | ||
11549 | source 7 | ||
11550 | target 6 | ||
11551 | graphics | ||
11552 | [ | ||
11553 | fill "#000000" | ||
11554 | targetArrow "standard" | ||
11555 | ] | ||
11556 | LabelGraphics | ||
11557 | [ | ||
11558 | text "element reference FunctionalInterface" | ||
11559 | fontSize 14 | ||
11560 | fontName "Consolas" | ||
11561 | configuration "AutoFlippingLabel" | ||
11562 | model "six_pos" | ||
11563 | position "thead" | ||
11564 | ] | ||
11565 | ] | ||
11566 | edge | ||
11567 | [ | ||
11568 | source 8 | ||
11569 | target 9 | ||
11570 | graphics | ||
11571 | [ | ||
11572 | fill "#000000" | ||
11573 | width 3 | ||
11574 | targetArrow "standard" | ||
11575 | ] | ||
11576 | LabelGraphics | ||
11577 | [ | ||
11578 | text "terminator reference FunctionalData" | ||
11579 | fontSize 14 | ||
11580 | fontName "Consolas" | ||
11581 | configuration "AutoFlippingLabel" | ||
11582 | model "six_pos" | ||
11583 | position "thead" | ||
11584 | ] | ||
11585 | ] | ||
11586 | edge | ||
11587 | [ | ||
11588 | source 8 | ||
11589 | target 7 | ||
11590 | graphics | ||
11591 | [ | ||
11592 | fill "#000000" | ||
11593 | targetArrow "standard" | ||
11594 | ] | ||
11595 | LabelGraphics | ||
11596 | [ | ||
11597 | text "interface reference FunctionalData" | ||
11598 | fontSize 14 | ||
11599 | fontName "Consolas" | ||
11600 | configuration "AutoFlippingLabel" | ||
11601 | model "six_pos" | ||
11602 | position "thead" | ||
11603 | ] | ||
11604 | ] | ||
11605 | edge | ||
11606 | [ | ||
11607 | source 10 | ||
11608 | target 7 | ||
11609 | graphics | ||
11610 | [ | ||
11611 | fill "#000000" | ||
11612 | targetArrow "standard" | ||
11613 | ] | ||
11614 | LabelGraphics | ||
11615 | [ | ||
11616 | text "interface reference FunctionalData" | ||
11617 | fontSize 14 | ||
11618 | fontName "Consolas" | ||
11619 | configuration "AutoFlippingLabel" | ||
11620 | model "six_pos" | ||
11621 | position "thead" | ||
11622 | ] | ||
11623 | ] | ||
11624 | edge | ||
11625 | [ | ||
11626 | source 11 | ||
11627 | target 7 | ||
11628 | graphics | ||
11629 | [ | ||
11630 | fill "#000000" | ||
11631 | targetArrow "standard" | ||
11632 | ] | ||
11633 | LabelGraphics | ||
11634 | [ | ||
11635 | text "interface reference FunctionalData" | ||
11636 | fontSize 14 | ||
11637 | fontName "Consolas" | ||
11638 | configuration "AutoFlippingLabel" | ||
11639 | model "six_pos" | ||
11640 | position "thead" | ||
11641 | ] | ||
11642 | ] | ||
11643 | edge | ||
11644 | [ | ||
11645 | source 6 | ||
11646 | target 0 | ||
11647 | graphics | ||
11648 | [ | ||
11649 | fill "#000000" | ||
11650 | targetArrow "standard" | ||
11651 | ] | ||
11652 | LabelGraphics | ||
11653 | [ | ||
11654 | text "type attribute Function" | ||
11655 | fontSize 14 | ||
11656 | fontName "Consolas" | ||
11657 | configuration "AutoFlippingLabel" | ||
11658 | model "six_pos" | ||
11659 | position "thead" | ||
11660 | ] | ||
11661 | ] | ||
11662 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png index 5df81bb3..a551c9fc 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi index b4259573..9e8efc63 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/3.xmi | |||
@@ -1,12 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> | 2 | <fam:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> |
3 | <data xsi:type="fam:FunctionalOutput"> | 3 | <rootElements xsi:type="fam:Function"> |
4 | <terminator/> | 4 | <interface> |
5 | </data> | 5 | <data xsi:type="fam:FunctionalOutput"/> |
6 | <data xsi:type="fam:FunctionalOutput"> | 6 | <data xsi:type="fam:FunctionalOutput"> |
7 | <terminator/> | 7 | <terminator/> |
8 | </data> | 8 | </data> |
9 | <data xsi:type="fam:FunctionalOutput"> | 9 | <data xsi:type="fam:FunctionalInput"/> |
10 | <terminator/> | 10 | </interface> |
11 | </data> | 11 | </rootElements> |
12 | </fam:FunctionalInterface> | 12 | </fam:FunctionalArchitectureModel> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml index 2dd09497..f41692fc 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.gml | |||
@@ -8423,3 +8423,3341 @@ graph | |||
8423 | ] | 8423 | ] |
8424 | ] | 8424 | ] |
8425 | ] | 8425 | ] |
8426 | graph | ||
8427 | [ | ||
8428 | node | ||
8429 | [ | ||
8430 | id 0 | ||
8431 | graphics | ||
8432 | [ | ||
8433 | w 226.60000000000002 | ||
8434 | h 40 | ||
8435 | type "rectangle" | ||
8436 | fill "#FFFFFF" | ||
8437 | fill2 "#FFFFFF" | ||
8438 | outline "#000000" | ||
8439 | ] | ||
8440 | LabelGraphics | ||
8441 | [ | ||
8442 | text "Root literal FunctionType" | ||
8443 | outline "#000000" | ||
8444 | fill "#FFFFFF" | ||
8445 | fontSize 16 | ||
8446 | fontName "Monospace" | ||
8447 | autoSizePolicy "node_width" | ||
8448 | anchor "t" | ||
8449 | borderDistance 0.0 | ||
8450 | ] | ||
8451 | LabelGraphics | ||
8452 | [ | ||
8453 | text " | ||
8454 | FunctionType enum | ||
8455 | " | ||
8456 | fontSize 14 | ||
8457 | fontName "Consolas" | ||
8458 | alignment "left" | ||
8459 | anchor "tl" | ||
8460 | borderDistance 6 | ||
8461 | ] | ||
8462 | ] | ||
8463 | |||
8464 | node | ||
8465 | [ | ||
8466 | id 1 | ||
8467 | graphics | ||
8468 | [ | ||
8469 | w 297.0 | ||
8470 | h 40 | ||
8471 | type "rectangle" | ||
8472 | fill "#FFFFFF" | ||
8473 | fill2 "#FFFFFF" | ||
8474 | outline "#000000" | ||
8475 | ] | ||
8476 | LabelGraphics | ||
8477 | [ | ||
8478 | text "Intermediate literal FunctionType" | ||
8479 | outline "#000000" | ||
8480 | fill "#FFFFFF" | ||
8481 | fontSize 16 | ||
8482 | fontName "Monospace" | ||
8483 | autoSizePolicy "node_width" | ||
8484 | anchor "t" | ||
8485 | borderDistance 0.0 | ||
8486 | ] | ||
8487 | LabelGraphics | ||
8488 | [ | ||
8489 | text " | ||
8490 | FunctionType enum | ||
8491 | " | ||
8492 | fontSize 14 | ||
8493 | fontName "Consolas" | ||
8494 | alignment "left" | ||
8495 | anchor "tl" | ||
8496 | borderDistance 6 | ||
8497 | ] | ||
8498 | ] | ||
8499 | |||
8500 | node | ||
8501 | [ | ||
8502 | id 2 | ||
8503 | graphics | ||
8504 | [ | ||
8505 | w 226.60000000000002 | ||
8506 | h 40 | ||
8507 | type "rectangle" | ||
8508 | fill "#FFFFFF" | ||
8509 | fill2 "#FFFFFF" | ||
8510 | outline "#000000" | ||
8511 | ] | ||
8512 | LabelGraphics | ||
8513 | [ | ||
8514 | text "Leaf literal FunctionType" | ||
8515 | outline "#000000" | ||
8516 | fill "#FFFFFF" | ||
8517 | fontSize 16 | ||
8518 | fontName "Monospace" | ||
8519 | autoSizePolicy "node_width" | ||
8520 | anchor "t" | ||
8521 | borderDistance 0.0 | ||
8522 | ] | ||
8523 | LabelGraphics | ||
8524 | [ | ||
8525 | text " | ||
8526 | FunctionType enum | ||
8527 | " | ||
8528 | fontSize 14 | ||
8529 | fontName "Consolas" | ||
8530 | alignment "left" | ||
8531 | anchor "tl" | ||
8532 | borderDistance 6 | ||
8533 | ] | ||
8534 | ] | ||
8535 | |||
8536 | node | ||
8537 | [ | ||
8538 | id 3 | ||
8539 | graphics | ||
8540 | [ | ||
8541 | w 41.800000000000004 | ||
8542 | h 26 | ||
8543 | type "rectangle" | ||
8544 | fill "#FFFFFF" | ||
8545 | fill2 "#FFFFFF" | ||
8546 | outline "#000000" | ||
8547 | ] | ||
8548 | LabelGraphics | ||
8549 | [ | ||
8550 | text "true" | ||
8551 | outline "#000000" | ||
8552 | fill "#FFFFFF" | ||
8553 | fontSize 16 | ||
8554 | fontName "Monospace" | ||
8555 | autoSizePolicy "node_width" | ||
8556 | anchor "t" | ||
8557 | borderDistance 0.0 | ||
8558 | ] | ||
8559 | LabelGraphics | ||
8560 | [ | ||
8561 | text " | ||
8562 | " | ||
8563 | fontSize 14 | ||
8564 | fontName "Consolas" | ||
8565 | alignment "left" | ||
8566 | anchor "tl" | ||
8567 | borderDistance 6 | ||
8568 | ] | ||
8569 | ] | ||
8570 | |||
8571 | node | ||
8572 | [ | ||
8573 | id 4 | ||
8574 | graphics | ||
8575 | [ | ||
8576 | w 50.6 | ||
8577 | h 26 | ||
8578 | type "rectangle" | ||
8579 | fill "#FFFFFF" | ||
8580 | fill2 "#FFFFFF" | ||
8581 | outline "#000000" | ||
8582 | ] | ||
8583 | LabelGraphics | ||
8584 | [ | ||
8585 | text "false" | ||
8586 | outline "#000000" | ||
8587 | fill "#FFFFFF" | ||
8588 | fontSize 16 | ||
8589 | fontName "Monospace" | ||
8590 | autoSizePolicy "node_width" | ||
8591 | anchor "t" | ||
8592 | borderDistance 0.0 | ||
8593 | ] | ||
8594 | LabelGraphics | ||
8595 | [ | ||
8596 | text " | ||
8597 | " | ||
8598 | fontSize 14 | ||
8599 | fontName "Consolas" | ||
8600 | alignment "left" | ||
8601 | anchor "tl" | ||
8602 | borderDistance 6 | ||
8603 | ] | ||
8604 | ] | ||
8605 | |||
8606 | node | ||
8607 | [ | ||
8608 | id 5 | ||
8609 | graphics | ||
8610 | [ | ||
8611 | w 207.9 | ||
8612 | h 40 | ||
8613 | type "rectangle" | ||
8614 | fill "#FFFFFF" | ||
8615 | fill2 "#FFFFFF" | ||
8616 | outline "#000000" | ||
8617 | ] | ||
8618 | LabelGraphics | ||
8619 | [ | ||
8620 | text "null" | ||
8621 | outline "#000000" | ||
8622 | fill "#FFFFFF" | ||
8623 | fontSize 16 | ||
8624 | fontName "Monospace" | ||
8625 | autoSizePolicy "node_width" | ||
8626 | anchor "t" | ||
8627 | borderDistance 0.0 | ||
8628 | ] | ||
8629 | LabelGraphics | ||
8630 | [ | ||
8631 | text " | ||
8632 | FunctionalInterface class | ||
8633 | " | ||
8634 | fontSize 14 | ||
8635 | fontName "Consolas" | ||
8636 | alignment "left" | ||
8637 | anchor "tl" | ||
8638 | borderDistance 6 | ||
8639 | ] | ||
8640 | ] | ||
8641 | |||
8642 | node | ||
8643 | [ | ||
8644 | id 6 | ||
8645 | graphics | ||
8646 | [ | ||
8647 | w 184.8 | ||
8648 | h 54 | ||
8649 | type "rectangle" | ||
8650 | fill "#FFFFFF" | ||
8651 | fill2 "#FFFFFF" | ||
8652 | outline "#000000" | ||
8653 | ] | ||
8654 | LabelGraphics | ||
8655 | [ | ||
8656 | text "null" | ||
8657 | outline "#000000" | ||
8658 | fill "#FFFFFF" | ||
8659 | fontSize 16 | ||
8660 | fontName "Monospace" | ||
8661 | autoSizePolicy "node_width" | ||
8662 | anchor "t" | ||
8663 | borderDistance 0.0 | ||
8664 | ] | ||
8665 | LabelGraphics | ||
8666 | [ | ||
8667 | text " | ||
8668 | FunctionalOutput class | ||
8669 | FunctionalData class | ||
8670 | " | ||
8671 | fontSize 14 | ||
8672 | fontName "Consolas" | ||
8673 | alignment "left" | ||
8674 | anchor "tl" | ||
8675 | borderDistance 6 | ||
8676 | ] | ||
8677 | ] | ||
8678 | |||
8679 | node | ||
8680 | [ | ||
8681 | id 7 | ||
8682 | graphics | ||
8683 | [ | ||
8684 | w 177.10000000000002 | ||
8685 | h 54 | ||
8686 | type "rectangle" | ||
8687 | fill "#FFFFFF" | ||
8688 | fill2 "#FFFFFF" | ||
8689 | outline "#000000" | ||
8690 | ] | ||
8691 | LabelGraphics | ||
8692 | [ | ||
8693 | text "null" | ||
8694 | outline "#000000" | ||
8695 | fill "#FFFFFF" | ||
8696 | fontSize 16 | ||
8697 | fontName "Monospace" | ||
8698 | autoSizePolicy "node_width" | ||
8699 | anchor "t" | ||
8700 | borderDistance 0.0 | ||
8701 | ] | ||
8702 | LabelGraphics | ||
8703 | [ | ||
8704 | text " | ||
8705 | FunctionalInput class | ||
8706 | FunctionalData class | ||
8707 | " | ||
8708 | fontSize 14 | ||
8709 | fontName "Consolas" | ||
8710 | alignment "left" | ||
8711 | anchor "tl" | ||
8712 | borderDistance 6 | ||
8713 | ] | ||
8714 | ] | ||
8715 | |||
8716 | node | ||
8717 | [ | ||
8718 | id 8 | ||
8719 | graphics | ||
8720 | [ | ||
8721 | w 161.70000000000002 | ||
8722 | h 40 | ||
8723 | type "rectangle" | ||
8724 | fill "#FFFFFF" | ||
8725 | fill2 "#FFFFFF" | ||
8726 | outline "#000000" | ||
8727 | ] | ||
8728 | LabelGraphics | ||
8729 | [ | ||
8730 | text "null" | ||
8731 | outline "#000000" | ||
8732 | fill "#FFFFFF" | ||
8733 | fontSize 16 | ||
8734 | fontName "Monospace" | ||
8735 | autoSizePolicy "node_width" | ||
8736 | anchor "t" | ||
8737 | borderDistance 0.0 | ||
8738 | ] | ||
8739 | LabelGraphics | ||
8740 | [ | ||
8741 | text " | ||
8742 | FAMTerminator class | ||
8743 | " | ||
8744 | fontSize 14 | ||
8745 | fontName "Consolas" | ||
8746 | alignment "left" | ||
8747 | anchor "tl" | ||
8748 | borderDistance 6 | ||
8749 | ] | ||
8750 | ] | ||
8751 | |||
8752 | node | ||
8753 | [ | ||
8754 | id 9 | ||
8755 | graphics | ||
8756 | [ | ||
8757 | w 184.8 | ||
8758 | h 54 | ||
8759 | type "rectangle" | ||
8760 | fill "#FFFFFF" | ||
8761 | fill2 "#FFFFFF" | ||
8762 | outline "#000000" | ||
8763 | ] | ||
8764 | LabelGraphics | ||
8765 | [ | ||
8766 | text "null" | ||
8767 | outline "#000000" | ||
8768 | fill "#FFFFFF" | ||
8769 | fontSize 16 | ||
8770 | fontName "Monospace" | ||
8771 | autoSizePolicy "node_width" | ||
8772 | anchor "t" | ||
8773 | borderDistance 0.0 | ||
8774 | ] | ||
8775 | LabelGraphics | ||
8776 | [ | ||
8777 | text " | ||
8778 | FunctionalOutput class | ||
8779 | FunctionalData class | ||
8780 | " | ||
8781 | fontSize 14 | ||
8782 | fontName "Consolas" | ||
8783 | alignment "left" | ||
8784 | anchor "tl" | ||
8785 | borderDistance 6 | ||
8786 | ] | ||
8787 | ] | ||
8788 | |||
8789 | node | ||
8790 | [ | ||
8791 | id 10 | ||
8792 | graphics | ||
8793 | [ | ||
8794 | w 184.8 | ||
8795 | h 54 | ||
8796 | type "rectangle" | ||
8797 | fill "#FFFFFF" | ||
8798 | fill2 "#FFFFFF" | ||
8799 | outline "#000000" | ||
8800 | ] | ||
8801 | LabelGraphics | ||
8802 | [ | ||
8803 | text "null" | ||
8804 | outline "#000000" | ||
8805 | fill "#FFFFFF" | ||
8806 | fontSize 16 | ||
8807 | fontName "Monospace" | ||
8808 | autoSizePolicy "node_width" | ||
8809 | anchor "t" | ||
8810 | borderDistance 0.0 | ||
8811 | ] | ||
8812 | LabelGraphics | ||
8813 | [ | ||
8814 | text " | ||
8815 | FunctionalOutput class | ||
8816 | FunctionalData class | ||
8817 | " | ||
8818 | fontSize 14 | ||
8819 | fontName "Consolas" | ||
8820 | alignment "left" | ||
8821 | anchor "tl" | ||
8822 | borderDistance 6 | ||
8823 | ] | ||
8824 | ] | ||
8825 | |||
8826 | node | ||
8827 | [ | ||
8828 | id 11 | ||
8829 | graphics | ||
8830 | [ | ||
8831 | w 161.70000000000002 | ||
8832 | h 40 | ||
8833 | type "rectangle" | ||
8834 | fill "#FFFFFF" | ||
8835 | fill2 "#FFFFFF" | ||
8836 | outline "#000000" | ||
8837 | ] | ||
8838 | LabelGraphics | ||
8839 | [ | ||
8840 | text "null" | ||
8841 | outline "#000000" | ||
8842 | fill "#FFFFFF" | ||
8843 | fontSize 16 | ||
8844 | fontName "Monospace" | ||
8845 | autoSizePolicy "node_width" | ||
8846 | anchor "t" | ||
8847 | borderDistance 0.0 | ||
8848 | ] | ||
8849 | LabelGraphics | ||
8850 | [ | ||
8851 | text " | ||
8852 | FAMTerminator class | ||
8853 | " | ||
8854 | fontSize 14 | ||
8855 | fontName "Consolas" | ||
8856 | alignment "left" | ||
8857 | anchor "tl" | ||
8858 | borderDistance 6 | ||
8859 | ] | ||
8860 | ] | ||
8861 | |||
8862 | node | ||
8863 | [ | ||
8864 | id 12 | ||
8865 | graphics | ||
8866 | [ | ||
8867 | w 112.2 | ||
8868 | h 26 | ||
8869 | type "rectangle" | ||
8870 | fill "#FFFFFF" | ||
8871 | fill2 "#FFFFFF" | ||
8872 | outline "#000000" | ||
8873 | ] | ||
8874 | LabelGraphics | ||
8875 | [ | ||
8876 | text "New Integers" | ||
8877 | outline "#000000" | ||
8878 | fill "#FFFFFF" | ||
8879 | fontSize 16 | ||
8880 | fontName "Monospace" | ||
8881 | autoSizePolicy "node_width" | ||
8882 | anchor "t" | ||
8883 | borderDistance 0.0 | ||
8884 | ] | ||
8885 | LabelGraphics | ||
8886 | [ | ||
8887 | text " | ||
8888 | " | ||
8889 | fontSize 14 | ||
8890 | fontName "Consolas" | ||
8891 | alignment "left" | ||
8892 | anchor "tl" | ||
8893 | borderDistance 6 | ||
8894 | ] | ||
8895 | ] | ||
8896 | |||
8897 | node | ||
8898 | [ | ||
8899 | id 13 | ||
8900 | graphics | ||
8901 | [ | ||
8902 | w 85.80000000000001 | ||
8903 | h 26 | ||
8904 | type "rectangle" | ||
8905 | fill "#FFFFFF" | ||
8906 | fill2 "#FFFFFF" | ||
8907 | outline "#000000" | ||
8908 | ] | ||
8909 | LabelGraphics | ||
8910 | [ | ||
8911 | text "New Reals" | ||
8912 | outline "#000000" | ||
8913 | fill "#FFFFFF" | ||
8914 | fontSize 16 | ||
8915 | fontName "Monospace" | ||
8916 | autoSizePolicy "node_width" | ||
8917 | anchor "t" | ||
8918 | borderDistance 0.0 | ||
8919 | ] | ||
8920 | LabelGraphics | ||
8921 | [ | ||
8922 | text " | ||
8923 | " | ||
8924 | fontSize 14 | ||
8925 | fontName "Consolas" | ||
8926 | alignment "left" | ||
8927 | anchor "tl" | ||
8928 | borderDistance 6 | ||
8929 | ] | ||
8930 | ] | ||
8931 | |||
8932 | node | ||
8933 | [ | ||
8934 | id 14 | ||
8935 | graphics | ||
8936 | [ | ||
8937 | w 103.4 | ||
8938 | h 26 | ||
8939 | type "rectangle" | ||
8940 | fill "#FFFFFF" | ||
8941 | fill2 "#FFFFFF" | ||
8942 | outline "#000000" | ||
8943 | ] | ||
8944 | LabelGraphics | ||
8945 | [ | ||
8946 | text "New Strings" | ||
8947 | outline "#000000" | ||
8948 | fill "#FFFFFF" | ||
8949 | fontSize 16 | ||
8950 | fontName "Monospace" | ||
8951 | autoSizePolicy "node_width" | ||
8952 | anchor "t" | ||
8953 | borderDistance 0.0 | ||
8954 | ] | ||
8955 | LabelGraphics | ||
8956 | [ | ||
8957 | text " | ||
8958 | " | ||
8959 | fontSize 14 | ||
8960 | fontName "Consolas" | ||
8961 | alignment "left" | ||
8962 | anchor "tl" | ||
8963 | borderDistance 6 | ||
8964 | ] | ||
8965 | ] | ||
8966 | |||
8967 | node | ||
8968 | [ | ||
8969 | id 15 | ||
8970 | graphics | ||
8971 | [ | ||
8972 | w 103.4 | ||
8973 | h 26 | ||
8974 | type "rectangle" | ||
8975 | fill "#FFFFFF" | ||
8976 | fill2 "#FFFFFF" | ||
8977 | outline "#000000" | ||
8978 | ] | ||
8979 | LabelGraphics | ||
8980 | [ | ||
8981 | text "New Objects" | ||
8982 | outline "#000000" | ||
8983 | fill "#FFFFFF" | ||
8984 | fontSize 16 | ||
8985 | fontName "Monospace" | ||
8986 | autoSizePolicy "node_width" | ||
8987 | anchor "t" | ||
8988 | borderDistance 0.0 | ||
8989 | ] | ||
8990 | LabelGraphics | ||
8991 | [ | ||
8992 | text " | ||
8993 | " | ||
8994 | fontSize 14 | ||
8995 | fontName "Consolas" | ||
8996 | alignment "left" | ||
8997 | anchor "tl" | ||
8998 | borderDistance 6 | ||
8999 | ] | ||
9000 | ] | ||
9001 | edge | ||
9002 | [ | ||
9003 | source 8 | ||
9004 | target 6 | ||
9005 | graphics | ||
9006 | [ | ||
9007 | fill "#000000" | ||
9008 | targetArrow "standard" | ||
9009 | ] | ||
9010 | LabelGraphics | ||
9011 | [ | ||
9012 | text "data reference FAMTerminator" | ||
9013 | fontSize 14 | ||
9014 | fontName "Consolas" | ||
9015 | configuration "AutoFlippingLabel" | ||
9016 | model "six_pos" | ||
9017 | position "thead" | ||
9018 | ] | ||
9019 | ] | ||
9020 | edge | ||
9021 | [ | ||
9022 | source 11 | ||
9023 | target 10 | ||
9024 | graphics | ||
9025 | [ | ||
9026 | fill "#000000" | ||
9027 | targetArrow "standard" | ||
9028 | ] | ||
9029 | LabelGraphics | ||
9030 | [ | ||
9031 | text "data reference FAMTerminator" | ||
9032 | fontSize 14 | ||
9033 | fontName "Consolas" | ||
9034 | configuration "AutoFlippingLabel" | ||
9035 | model "six_pos" | ||
9036 | position "thead" | ||
9037 | ] | ||
9038 | ] | ||
9039 | edge | ||
9040 | [ | ||
9041 | source 5 | ||
9042 | target 6 | ||
9043 | graphics | ||
9044 | [ | ||
9045 | fill "#000000" | ||
9046 | width 3 | ||
9047 | targetArrow "standard" | ||
9048 | ] | ||
9049 | LabelGraphics | ||
9050 | [ | ||
9051 | text "data reference FunctionalInterface" | ||
9052 | fontSize 14 | ||
9053 | fontName "Consolas" | ||
9054 | configuration "AutoFlippingLabel" | ||
9055 | model "six_pos" | ||
9056 | position "thead" | ||
9057 | ] | ||
9058 | ] | ||
9059 | edge | ||
9060 | [ | ||
9061 | source 5 | ||
9062 | target 7 | ||
9063 | graphics | ||
9064 | [ | ||
9065 | fill "#000000" | ||
9066 | width 3 | ||
9067 | targetArrow "standard" | ||
9068 | ] | ||
9069 | LabelGraphics | ||
9070 | [ | ||
9071 | text "data reference FunctionalInterface" | ||
9072 | fontSize 14 | ||
9073 | fontName "Consolas" | ||
9074 | configuration "AutoFlippingLabel" | ||
9075 | model "six_pos" | ||
9076 | position "thead" | ||
9077 | ] | ||
9078 | ] | ||
9079 | edge | ||
9080 | [ | ||
9081 | source 5 | ||
9082 | target 9 | ||
9083 | graphics | ||
9084 | [ | ||
9085 | fill "#000000" | ||
9086 | width 3 | ||
9087 | targetArrow "standard" | ||
9088 | ] | ||
9089 | LabelGraphics | ||
9090 | [ | ||
9091 | text "data reference FunctionalInterface" | ||
9092 | fontSize 14 | ||
9093 | fontName "Consolas" | ||
9094 | configuration "AutoFlippingLabel" | ||
9095 | model "six_pos" | ||
9096 | position "thead" | ||
9097 | ] | ||
9098 | ] | ||
9099 | edge | ||
9100 | [ | ||
9101 | source 5 | ||
9102 | target 10 | ||
9103 | graphics | ||
9104 | [ | ||
9105 | fill "#000000" | ||
9106 | width 3 | ||
9107 | targetArrow "standard" | ||
9108 | ] | ||
9109 | LabelGraphics | ||
9110 | [ | ||
9111 | text "data reference FunctionalInterface" | ||
9112 | fontSize 14 | ||
9113 | fontName "Consolas" | ||
9114 | configuration "AutoFlippingLabel" | ||
9115 | model "six_pos" | ||
9116 | position "thead" | ||
9117 | ] | ||
9118 | ] | ||
9119 | edge | ||
9120 | [ | ||
9121 | source 6 | ||
9122 | target 8 | ||
9123 | graphics | ||
9124 | [ | ||
9125 | fill "#000000" | ||
9126 | width 3 | ||
9127 | targetArrow "standard" | ||
9128 | ] | ||
9129 | LabelGraphics | ||
9130 | [ | ||
9131 | text "terminator reference FunctionalData" | ||
9132 | fontSize 14 | ||
9133 | fontName "Consolas" | ||
9134 | configuration "AutoFlippingLabel" | ||
9135 | model "six_pos" | ||
9136 | position "thead" | ||
9137 | ] | ||
9138 | ] | ||
9139 | edge | ||
9140 | [ | ||
9141 | source 10 | ||
9142 | target 11 | ||
9143 | graphics | ||
9144 | [ | ||
9145 | fill "#000000" | ||
9146 | width 3 | ||
9147 | targetArrow "standard" | ||
9148 | ] | ||
9149 | LabelGraphics | ||
9150 | [ | ||
9151 | text "terminator reference FunctionalData" | ||
9152 | fontSize 14 | ||
9153 | fontName "Consolas" | ||
9154 | configuration "AutoFlippingLabel" | ||
9155 | model "six_pos" | ||
9156 | position "thead" | ||
9157 | ] | ||
9158 | ] | ||
9159 | edge | ||
9160 | [ | ||
9161 | source 6 | ||
9162 | target 5 | ||
9163 | graphics | ||
9164 | [ | ||
9165 | fill "#000000" | ||
9166 | targetArrow "standard" | ||
9167 | ] | ||
9168 | LabelGraphics | ||
9169 | [ | ||
9170 | text "interface reference FunctionalData" | ||
9171 | fontSize 14 | ||
9172 | fontName "Consolas" | ||
9173 | configuration "AutoFlippingLabel" | ||
9174 | model "six_pos" | ||
9175 | position "thead" | ||
9176 | ] | ||
9177 | ] | ||
9178 | edge | ||
9179 | [ | ||
9180 | source 7 | ||
9181 | target 5 | ||
9182 | graphics | ||
9183 | [ | ||
9184 | fill "#000000" | ||
9185 | targetArrow "standard" | ||
9186 | ] | ||
9187 | LabelGraphics | ||
9188 | [ | ||
9189 | text "interface reference FunctionalData" | ||
9190 | fontSize 14 | ||
9191 | fontName "Consolas" | ||
9192 | configuration "AutoFlippingLabel" | ||
9193 | model "six_pos" | ||
9194 | position "thead" | ||
9195 | ] | ||
9196 | ] | ||
9197 | edge | ||
9198 | [ | ||
9199 | source 9 | ||
9200 | target 5 | ||
9201 | graphics | ||
9202 | [ | ||
9203 | fill "#000000" | ||
9204 | targetArrow "standard" | ||
9205 | ] | ||
9206 | LabelGraphics | ||
9207 | [ | ||
9208 | text "interface reference FunctionalData" | ||
9209 | fontSize 14 | ||
9210 | fontName "Consolas" | ||
9211 | configuration "AutoFlippingLabel" | ||
9212 | model "six_pos" | ||
9213 | position "thead" | ||
9214 | ] | ||
9215 | ] | ||
9216 | edge | ||
9217 | [ | ||
9218 | source 10 | ||
9219 | target 5 | ||
9220 | graphics | ||
9221 | [ | ||
9222 | fill "#000000" | ||
9223 | targetArrow "standard" | ||
9224 | ] | ||
9225 | LabelGraphics | ||
9226 | [ | ||
9227 | text "interface reference FunctionalData" | ||
9228 | fontSize 14 | ||
9229 | fontName "Consolas" | ||
9230 | configuration "AutoFlippingLabel" | ||
9231 | model "six_pos" | ||
9232 | position "thead" | ||
9233 | ] | ||
9234 | ] | ||
9235 | ] | ||
9236 | graph | ||
9237 | [ | ||
9238 | node | ||
9239 | [ | ||
9240 | id 0 | ||
9241 | graphics | ||
9242 | [ | ||
9243 | w 226.60000000000002 | ||
9244 | h 40 | ||
9245 | type "rectangle" | ||
9246 | fill "#FFFFFF" | ||
9247 | fill2 "#FFFFFF" | ||
9248 | outline "#000000" | ||
9249 | ] | ||
9250 | LabelGraphics | ||
9251 | [ | ||
9252 | text "Root literal FunctionType" | ||
9253 | outline "#000000" | ||
9254 | fill "#FFFFFF" | ||
9255 | fontSize 16 | ||
9256 | fontName "Monospace" | ||
9257 | autoSizePolicy "node_width" | ||
9258 | anchor "t" | ||
9259 | borderDistance 0.0 | ||
9260 | ] | ||
9261 | LabelGraphics | ||
9262 | [ | ||
9263 | text " | ||
9264 | FunctionType enum | ||
9265 | " | ||
9266 | fontSize 14 | ||
9267 | fontName "Consolas" | ||
9268 | alignment "left" | ||
9269 | anchor "tl" | ||
9270 | borderDistance 6 | ||
9271 | ] | ||
9272 | ] | ||
9273 | |||
9274 | node | ||
9275 | [ | ||
9276 | id 1 | ||
9277 | graphics | ||
9278 | [ | ||
9279 | w 297.0 | ||
9280 | h 40 | ||
9281 | type "rectangle" | ||
9282 | fill "#FFFFFF" | ||
9283 | fill2 "#FFFFFF" | ||
9284 | outline "#000000" | ||
9285 | ] | ||
9286 | LabelGraphics | ||
9287 | [ | ||
9288 | text "Intermediate literal FunctionType" | ||
9289 | outline "#000000" | ||
9290 | fill "#FFFFFF" | ||
9291 | fontSize 16 | ||
9292 | fontName "Monospace" | ||
9293 | autoSizePolicy "node_width" | ||
9294 | anchor "t" | ||
9295 | borderDistance 0.0 | ||
9296 | ] | ||
9297 | LabelGraphics | ||
9298 | [ | ||
9299 | text " | ||
9300 | FunctionType enum | ||
9301 | " | ||
9302 | fontSize 14 | ||
9303 | fontName "Consolas" | ||
9304 | alignment "left" | ||
9305 | anchor "tl" | ||
9306 | borderDistance 6 | ||
9307 | ] | ||
9308 | ] | ||
9309 | |||
9310 | node | ||
9311 | [ | ||
9312 | id 2 | ||
9313 | graphics | ||
9314 | [ | ||
9315 | w 226.60000000000002 | ||
9316 | h 40 | ||
9317 | type "rectangle" | ||
9318 | fill "#FFFFFF" | ||
9319 | fill2 "#FFFFFF" | ||
9320 | outline "#000000" | ||
9321 | ] | ||
9322 | LabelGraphics | ||
9323 | [ | ||
9324 | text "Leaf literal FunctionType" | ||
9325 | outline "#000000" | ||
9326 | fill "#FFFFFF" | ||
9327 | fontSize 16 | ||
9328 | fontName "Monospace" | ||
9329 | autoSizePolicy "node_width" | ||
9330 | anchor "t" | ||
9331 | borderDistance 0.0 | ||
9332 | ] | ||
9333 | LabelGraphics | ||
9334 | [ | ||
9335 | text " | ||
9336 | FunctionType enum | ||
9337 | " | ||
9338 | fontSize 14 | ||
9339 | fontName "Consolas" | ||
9340 | alignment "left" | ||
9341 | anchor "tl" | ||
9342 | borderDistance 6 | ||
9343 | ] | ||
9344 | ] | ||
9345 | |||
9346 | node | ||
9347 | [ | ||
9348 | id 3 | ||
9349 | graphics | ||
9350 | [ | ||
9351 | w 41.800000000000004 | ||
9352 | h 26 | ||
9353 | type "rectangle" | ||
9354 | fill "#FFFFFF" | ||
9355 | fill2 "#FFFFFF" | ||
9356 | outline "#000000" | ||
9357 | ] | ||
9358 | LabelGraphics | ||
9359 | [ | ||
9360 | text "true" | ||
9361 | outline "#000000" | ||
9362 | fill "#FFFFFF" | ||
9363 | fontSize 16 | ||
9364 | fontName "Monospace" | ||
9365 | autoSizePolicy "node_width" | ||
9366 | anchor "t" | ||
9367 | borderDistance 0.0 | ||
9368 | ] | ||
9369 | LabelGraphics | ||
9370 | [ | ||
9371 | text " | ||
9372 | " | ||
9373 | fontSize 14 | ||
9374 | fontName "Consolas" | ||
9375 | alignment "left" | ||
9376 | anchor "tl" | ||
9377 | borderDistance 6 | ||
9378 | ] | ||
9379 | ] | ||
9380 | |||
9381 | node | ||
9382 | [ | ||
9383 | id 4 | ||
9384 | graphics | ||
9385 | [ | ||
9386 | w 50.6 | ||
9387 | h 26 | ||
9388 | type "rectangle" | ||
9389 | fill "#FFFFFF" | ||
9390 | fill2 "#FFFFFF" | ||
9391 | outline "#000000" | ||
9392 | ] | ||
9393 | LabelGraphics | ||
9394 | [ | ||
9395 | text "false" | ||
9396 | outline "#000000" | ||
9397 | fill "#FFFFFF" | ||
9398 | fontSize 16 | ||
9399 | fontName "Monospace" | ||
9400 | autoSizePolicy "node_width" | ||
9401 | anchor "t" | ||
9402 | borderDistance 0.0 | ||
9403 | ] | ||
9404 | LabelGraphics | ||
9405 | [ | ||
9406 | text " | ||
9407 | " | ||
9408 | fontSize 14 | ||
9409 | fontName "Consolas" | ||
9410 | alignment "left" | ||
9411 | anchor "tl" | ||
9412 | borderDistance 6 | ||
9413 | ] | ||
9414 | ] | ||
9415 | |||
9416 | node | ||
9417 | [ | ||
9418 | id 5 | ||
9419 | graphics | ||
9420 | [ | ||
9421 | w 207.9 | ||
9422 | h 40 | ||
9423 | type "rectangle" | ||
9424 | fill "#FFFFFF" | ||
9425 | fill2 "#FFFFFF" | ||
9426 | outline "#000000" | ||
9427 | ] | ||
9428 | LabelGraphics | ||
9429 | [ | ||
9430 | text "null" | ||
9431 | outline "#000000" | ||
9432 | fill "#FFFFFF" | ||
9433 | fontSize 16 | ||
9434 | fontName "Monospace" | ||
9435 | autoSizePolicy "node_width" | ||
9436 | anchor "t" | ||
9437 | borderDistance 0.0 | ||
9438 | ] | ||
9439 | LabelGraphics | ||
9440 | [ | ||
9441 | text " | ||
9442 | FunctionalInterface class | ||
9443 | " | ||
9444 | fontSize 14 | ||
9445 | fontName "Consolas" | ||
9446 | alignment "left" | ||
9447 | anchor "tl" | ||
9448 | borderDistance 6 | ||
9449 | ] | ||
9450 | ] | ||
9451 | |||
9452 | node | ||
9453 | [ | ||
9454 | id 6 | ||
9455 | graphics | ||
9456 | [ | ||
9457 | w 177.10000000000002 | ||
9458 | h 54 | ||
9459 | type "rectangle" | ||
9460 | fill "#FFFFFF" | ||
9461 | fill2 "#FFFFFF" | ||
9462 | outline "#000000" | ||
9463 | ] | ||
9464 | LabelGraphics | ||
9465 | [ | ||
9466 | text "null" | ||
9467 | outline "#000000" | ||
9468 | fill "#FFFFFF" | ||
9469 | fontSize 16 | ||
9470 | fontName "Monospace" | ||
9471 | autoSizePolicy "node_width" | ||
9472 | anchor "t" | ||
9473 | borderDistance 0.0 | ||
9474 | ] | ||
9475 | LabelGraphics | ||
9476 | [ | ||
9477 | text " | ||
9478 | FunctionalInput class | ||
9479 | FunctionalData class | ||
9480 | " | ||
9481 | fontSize 14 | ||
9482 | fontName "Consolas" | ||
9483 | alignment "left" | ||
9484 | anchor "tl" | ||
9485 | borderDistance 6 | ||
9486 | ] | ||
9487 | ] | ||
9488 | |||
9489 | node | ||
9490 | [ | ||
9491 | id 7 | ||
9492 | graphics | ||
9493 | [ | ||
9494 | w 177.10000000000002 | ||
9495 | h 54 | ||
9496 | type "rectangle" | ||
9497 | fill "#FFFFFF" | ||
9498 | fill2 "#FFFFFF" | ||
9499 | outline "#000000" | ||
9500 | ] | ||
9501 | LabelGraphics | ||
9502 | [ | ||
9503 | text "null" | ||
9504 | outline "#000000" | ||
9505 | fill "#FFFFFF" | ||
9506 | fontSize 16 | ||
9507 | fontName "Monospace" | ||
9508 | autoSizePolicy "node_width" | ||
9509 | anchor "t" | ||
9510 | borderDistance 0.0 | ||
9511 | ] | ||
9512 | LabelGraphics | ||
9513 | [ | ||
9514 | text " | ||
9515 | FunctionalInput class | ||
9516 | FunctionalData class | ||
9517 | " | ||
9518 | fontSize 14 | ||
9519 | fontName "Consolas" | ||
9520 | alignment "left" | ||
9521 | anchor "tl" | ||
9522 | borderDistance 6 | ||
9523 | ] | ||
9524 | ] | ||
9525 | |||
9526 | node | ||
9527 | [ | ||
9528 | id 8 | ||
9529 | graphics | ||
9530 | [ | ||
9531 | w 177.10000000000002 | ||
9532 | h 54 | ||
9533 | type "rectangle" | ||
9534 | fill "#FFFFFF" | ||
9535 | fill2 "#FFFFFF" | ||
9536 | outline "#000000" | ||
9537 | ] | ||
9538 | LabelGraphics | ||
9539 | [ | ||
9540 | text "null" | ||
9541 | outline "#000000" | ||
9542 | fill "#FFFFFF" | ||
9543 | fontSize 16 | ||
9544 | fontName "Monospace" | ||
9545 | autoSizePolicy "node_width" | ||
9546 | anchor "t" | ||
9547 | borderDistance 0.0 | ||
9548 | ] | ||
9549 | LabelGraphics | ||
9550 | [ | ||
9551 | text " | ||
9552 | FunctionalInput class | ||
9553 | FunctionalData class | ||
9554 | " | ||
9555 | fontSize 14 | ||
9556 | fontName "Consolas" | ||
9557 | alignment "left" | ||
9558 | anchor "tl" | ||
9559 | borderDistance 6 | ||
9560 | ] | ||
9561 | ] | ||
9562 | |||
9563 | node | ||
9564 | [ | ||
9565 | id 9 | ||
9566 | graphics | ||
9567 | [ | ||
9568 | w 161.70000000000002 | ||
9569 | h 40 | ||
9570 | type "rectangle" | ||
9571 | fill "#FFFFFF" | ||
9572 | fill2 "#FFFFFF" | ||
9573 | outline "#000000" | ||
9574 | ] | ||
9575 | LabelGraphics | ||
9576 | [ | ||
9577 | text "null" | ||
9578 | outline "#000000" | ||
9579 | fill "#FFFFFF" | ||
9580 | fontSize 16 | ||
9581 | fontName "Monospace" | ||
9582 | autoSizePolicy "node_width" | ||
9583 | anchor "t" | ||
9584 | borderDistance 0.0 | ||
9585 | ] | ||
9586 | LabelGraphics | ||
9587 | [ | ||
9588 | text " | ||
9589 | FAMTerminator class | ||
9590 | " | ||
9591 | fontSize 14 | ||
9592 | fontName "Consolas" | ||
9593 | alignment "left" | ||
9594 | anchor "tl" | ||
9595 | borderDistance 6 | ||
9596 | ] | ||
9597 | ] | ||
9598 | |||
9599 | node | ||
9600 | [ | ||
9601 | id 10 | ||
9602 | graphics | ||
9603 | [ | ||
9604 | w 177.10000000000002 | ||
9605 | h 54 | ||
9606 | type "rectangle" | ||
9607 | fill "#FFFFFF" | ||
9608 | fill2 "#FFFFFF" | ||
9609 | outline "#000000" | ||
9610 | ] | ||
9611 | LabelGraphics | ||
9612 | [ | ||
9613 | text "null" | ||
9614 | outline "#000000" | ||
9615 | fill "#FFFFFF" | ||
9616 | fontSize 16 | ||
9617 | fontName "Monospace" | ||
9618 | autoSizePolicy "node_width" | ||
9619 | anchor "t" | ||
9620 | borderDistance 0.0 | ||
9621 | ] | ||
9622 | LabelGraphics | ||
9623 | [ | ||
9624 | text " | ||
9625 | FunctionalInput class | ||
9626 | FunctionalData class | ||
9627 | " | ||
9628 | fontSize 14 | ||
9629 | fontName "Consolas" | ||
9630 | alignment "left" | ||
9631 | anchor "tl" | ||
9632 | borderDistance 6 | ||
9633 | ] | ||
9634 | ] | ||
9635 | |||
9636 | node | ||
9637 | [ | ||
9638 | id 11 | ||
9639 | graphics | ||
9640 | [ | ||
9641 | w 177.10000000000002 | ||
9642 | h 54 | ||
9643 | type "rectangle" | ||
9644 | fill "#FFFFFF" | ||
9645 | fill2 "#FFFFFF" | ||
9646 | outline "#000000" | ||
9647 | ] | ||
9648 | LabelGraphics | ||
9649 | [ | ||
9650 | text "null" | ||
9651 | outline "#000000" | ||
9652 | fill "#FFFFFF" | ||
9653 | fontSize 16 | ||
9654 | fontName "Monospace" | ||
9655 | autoSizePolicy "node_width" | ||
9656 | anchor "t" | ||
9657 | borderDistance 0.0 | ||
9658 | ] | ||
9659 | LabelGraphics | ||
9660 | [ | ||
9661 | text " | ||
9662 | FunctionalInput class | ||
9663 | FunctionalData class | ||
9664 | " | ||
9665 | fontSize 14 | ||
9666 | fontName "Consolas" | ||
9667 | alignment "left" | ||
9668 | anchor "tl" | ||
9669 | borderDistance 6 | ||
9670 | ] | ||
9671 | ] | ||
9672 | |||
9673 | node | ||
9674 | [ | ||
9675 | id 12 | ||
9676 | graphics | ||
9677 | [ | ||
9678 | w 112.2 | ||
9679 | h 26 | ||
9680 | type "rectangle" | ||
9681 | fill "#FFFFFF" | ||
9682 | fill2 "#FFFFFF" | ||
9683 | outline "#000000" | ||
9684 | ] | ||
9685 | LabelGraphics | ||
9686 | [ | ||
9687 | text "New Integers" | ||
9688 | outline "#000000" | ||
9689 | fill "#FFFFFF" | ||
9690 | fontSize 16 | ||
9691 | fontName "Monospace" | ||
9692 | autoSizePolicy "node_width" | ||
9693 | anchor "t" | ||
9694 | borderDistance 0.0 | ||
9695 | ] | ||
9696 | LabelGraphics | ||
9697 | [ | ||
9698 | text " | ||
9699 | " | ||
9700 | fontSize 14 | ||
9701 | fontName "Consolas" | ||
9702 | alignment "left" | ||
9703 | anchor "tl" | ||
9704 | borderDistance 6 | ||
9705 | ] | ||
9706 | ] | ||
9707 | |||
9708 | node | ||
9709 | [ | ||
9710 | id 13 | ||
9711 | graphics | ||
9712 | [ | ||
9713 | w 85.80000000000001 | ||
9714 | h 26 | ||
9715 | type "rectangle" | ||
9716 | fill "#FFFFFF" | ||
9717 | fill2 "#FFFFFF" | ||
9718 | outline "#000000" | ||
9719 | ] | ||
9720 | LabelGraphics | ||
9721 | [ | ||
9722 | text "New Reals" | ||
9723 | outline "#000000" | ||
9724 | fill "#FFFFFF" | ||
9725 | fontSize 16 | ||
9726 | fontName "Monospace" | ||
9727 | autoSizePolicy "node_width" | ||
9728 | anchor "t" | ||
9729 | borderDistance 0.0 | ||
9730 | ] | ||
9731 | LabelGraphics | ||
9732 | [ | ||
9733 | text " | ||
9734 | " | ||
9735 | fontSize 14 | ||
9736 | fontName "Consolas" | ||
9737 | alignment "left" | ||
9738 | anchor "tl" | ||
9739 | borderDistance 6 | ||
9740 | ] | ||
9741 | ] | ||
9742 | |||
9743 | node | ||
9744 | [ | ||
9745 | id 14 | ||
9746 | graphics | ||
9747 | [ | ||
9748 | w 103.4 | ||
9749 | h 26 | ||
9750 | type "rectangle" | ||
9751 | fill "#FFFFFF" | ||
9752 | fill2 "#FFFFFF" | ||
9753 | outline "#000000" | ||
9754 | ] | ||
9755 | LabelGraphics | ||
9756 | [ | ||
9757 | text "New Strings" | ||
9758 | outline "#000000" | ||
9759 | fill "#FFFFFF" | ||
9760 | fontSize 16 | ||
9761 | fontName "Monospace" | ||
9762 | autoSizePolicy "node_width" | ||
9763 | anchor "t" | ||
9764 | borderDistance 0.0 | ||
9765 | ] | ||
9766 | LabelGraphics | ||
9767 | [ | ||
9768 | text " | ||
9769 | " | ||
9770 | fontSize 14 | ||
9771 | fontName "Consolas" | ||
9772 | alignment "left" | ||
9773 | anchor "tl" | ||
9774 | borderDistance 6 | ||
9775 | ] | ||
9776 | ] | ||
9777 | |||
9778 | node | ||
9779 | [ | ||
9780 | id 15 | ||
9781 | graphics | ||
9782 | [ | ||
9783 | w 103.4 | ||
9784 | h 26 | ||
9785 | type "rectangle" | ||
9786 | fill "#FFFFFF" | ||
9787 | fill2 "#FFFFFF" | ||
9788 | outline "#000000" | ||
9789 | ] | ||
9790 | LabelGraphics | ||
9791 | [ | ||
9792 | text "New Objects" | ||
9793 | outline "#000000" | ||
9794 | fill "#FFFFFF" | ||
9795 | fontSize 16 | ||
9796 | fontName "Monospace" | ||
9797 | autoSizePolicy "node_width" | ||
9798 | anchor "t" | ||
9799 | borderDistance 0.0 | ||
9800 | ] | ||
9801 | LabelGraphics | ||
9802 | [ | ||
9803 | text " | ||
9804 | " | ||
9805 | fontSize 14 | ||
9806 | fontName "Consolas" | ||
9807 | alignment "left" | ||
9808 | anchor "tl" | ||
9809 | borderDistance 6 | ||
9810 | ] | ||
9811 | ] | ||
9812 | edge | ||
9813 | [ | ||
9814 | source 9 | ||
9815 | target 8 | ||
9816 | graphics | ||
9817 | [ | ||
9818 | fill "#000000" | ||
9819 | targetArrow "standard" | ||
9820 | ] | ||
9821 | LabelGraphics | ||
9822 | [ | ||
9823 | text "data reference FAMTerminator" | ||
9824 | fontSize 14 | ||
9825 | fontName "Consolas" | ||
9826 | configuration "AutoFlippingLabel" | ||
9827 | model "six_pos" | ||
9828 | position "thead" | ||
9829 | ] | ||
9830 | ] | ||
9831 | edge | ||
9832 | [ | ||
9833 | source 5 | ||
9834 | target 6 | ||
9835 | graphics | ||
9836 | [ | ||
9837 | fill "#000000" | ||
9838 | width 3 | ||
9839 | targetArrow "standard" | ||
9840 | ] | ||
9841 | LabelGraphics | ||
9842 | [ | ||
9843 | text "data reference FunctionalInterface" | ||
9844 | fontSize 14 | ||
9845 | fontName "Consolas" | ||
9846 | configuration "AutoFlippingLabel" | ||
9847 | model "six_pos" | ||
9848 | position "thead" | ||
9849 | ] | ||
9850 | ] | ||
9851 | edge | ||
9852 | [ | ||
9853 | source 5 | ||
9854 | target 7 | ||
9855 | graphics | ||
9856 | [ | ||
9857 | fill "#000000" | ||
9858 | width 3 | ||
9859 | targetArrow "standard" | ||
9860 | ] | ||
9861 | LabelGraphics | ||
9862 | [ | ||
9863 | text "data reference FunctionalInterface" | ||
9864 | fontSize 14 | ||
9865 | fontName "Consolas" | ||
9866 | configuration "AutoFlippingLabel" | ||
9867 | model "six_pos" | ||
9868 | position "thead" | ||
9869 | ] | ||
9870 | ] | ||
9871 | edge | ||
9872 | [ | ||
9873 | source 5 | ||
9874 | target 8 | ||
9875 | graphics | ||
9876 | [ | ||
9877 | fill "#000000" | ||
9878 | width 3 | ||
9879 | targetArrow "standard" | ||
9880 | ] | ||
9881 | LabelGraphics | ||
9882 | [ | ||
9883 | text "data reference FunctionalInterface" | ||
9884 | fontSize 14 | ||
9885 | fontName "Consolas" | ||
9886 | configuration "AutoFlippingLabel" | ||
9887 | model "six_pos" | ||
9888 | position "thead" | ||
9889 | ] | ||
9890 | ] | ||
9891 | edge | ||
9892 | [ | ||
9893 | source 5 | ||
9894 | target 10 | ||
9895 | graphics | ||
9896 | [ | ||
9897 | fill "#000000" | ||
9898 | width 3 | ||
9899 | targetArrow "standard" | ||
9900 | ] | ||
9901 | LabelGraphics | ||
9902 | [ | ||
9903 | text "data reference FunctionalInterface" | ||
9904 | fontSize 14 | ||
9905 | fontName "Consolas" | ||
9906 | configuration "AutoFlippingLabel" | ||
9907 | model "six_pos" | ||
9908 | position "thead" | ||
9909 | ] | ||
9910 | ] | ||
9911 | edge | ||
9912 | [ | ||
9913 | source 5 | ||
9914 | target 11 | ||
9915 | graphics | ||
9916 | [ | ||
9917 | fill "#000000" | ||
9918 | width 3 | ||
9919 | targetArrow "standard" | ||
9920 | ] | ||
9921 | LabelGraphics | ||
9922 | [ | ||
9923 | text "data reference FunctionalInterface" | ||
9924 | fontSize 14 | ||
9925 | fontName "Consolas" | ||
9926 | configuration "AutoFlippingLabel" | ||
9927 | model "six_pos" | ||
9928 | position "thead" | ||
9929 | ] | ||
9930 | ] | ||
9931 | edge | ||
9932 | [ | ||
9933 | source 8 | ||
9934 | target 9 | ||
9935 | graphics | ||
9936 | [ | ||
9937 | fill "#000000" | ||
9938 | width 3 | ||
9939 | targetArrow "standard" | ||
9940 | ] | ||
9941 | LabelGraphics | ||
9942 | [ | ||
9943 | text "terminator reference FunctionalData" | ||
9944 | fontSize 14 | ||
9945 | fontName "Consolas" | ||
9946 | configuration "AutoFlippingLabel" | ||
9947 | model "six_pos" | ||
9948 | position "thead" | ||
9949 | ] | ||
9950 | ] | ||
9951 | edge | ||
9952 | [ | ||
9953 | source 6 | ||
9954 | target 5 | ||
9955 | graphics | ||
9956 | [ | ||
9957 | fill "#000000" | ||
9958 | targetArrow "standard" | ||
9959 | ] | ||
9960 | LabelGraphics | ||
9961 | [ | ||
9962 | text "interface reference FunctionalData" | ||
9963 | fontSize 14 | ||
9964 | fontName "Consolas" | ||
9965 | configuration "AutoFlippingLabel" | ||
9966 | model "six_pos" | ||
9967 | position "thead" | ||
9968 | ] | ||
9969 | ] | ||
9970 | edge | ||
9971 | [ | ||
9972 | source 7 | ||
9973 | target 5 | ||
9974 | graphics | ||
9975 | [ | ||
9976 | fill "#000000" | ||
9977 | targetArrow "standard" | ||
9978 | ] | ||
9979 | LabelGraphics | ||
9980 | [ | ||
9981 | text "interface reference FunctionalData" | ||
9982 | fontSize 14 | ||
9983 | fontName "Consolas" | ||
9984 | configuration "AutoFlippingLabel" | ||
9985 | model "six_pos" | ||
9986 | position "thead" | ||
9987 | ] | ||
9988 | ] | ||
9989 | edge | ||
9990 | [ | ||
9991 | source 8 | ||
9992 | target 5 | ||
9993 | graphics | ||
9994 | [ | ||
9995 | fill "#000000" | ||
9996 | targetArrow "standard" | ||
9997 | ] | ||
9998 | LabelGraphics | ||
9999 | [ | ||
10000 | text "interface reference FunctionalData" | ||
10001 | fontSize 14 | ||
10002 | fontName "Consolas" | ||
10003 | configuration "AutoFlippingLabel" | ||
10004 | model "six_pos" | ||
10005 | position "thead" | ||
10006 | ] | ||
10007 | ] | ||
10008 | edge | ||
10009 | [ | ||
10010 | source 10 | ||
10011 | target 5 | ||
10012 | graphics | ||
10013 | [ | ||
10014 | fill "#000000" | ||
10015 | targetArrow "standard" | ||
10016 | ] | ||
10017 | LabelGraphics | ||
10018 | [ | ||
10019 | text "interface reference FunctionalData" | ||
10020 | fontSize 14 | ||
10021 | fontName "Consolas" | ||
10022 | configuration "AutoFlippingLabel" | ||
10023 | model "six_pos" | ||
10024 | position "thead" | ||
10025 | ] | ||
10026 | ] | ||
10027 | edge | ||
10028 | [ | ||
10029 | source 11 | ||
10030 | target 5 | ||
10031 | graphics | ||
10032 | [ | ||
10033 | fill "#000000" | ||
10034 | targetArrow "standard" | ||
10035 | ] | ||
10036 | LabelGraphics | ||
10037 | [ | ||
10038 | text "interface reference FunctionalData" | ||
10039 | fontSize 14 | ||
10040 | fontName "Consolas" | ||
10041 | configuration "AutoFlippingLabel" | ||
10042 | model "six_pos" | ||
10043 | position "thead" | ||
10044 | ] | ||
10045 | ] | ||
10046 | ] | ||
10047 | graph | ||
10048 | [ | ||
10049 | node | ||
10050 | [ | ||
10051 | id 0 | ||
10052 | graphics | ||
10053 | [ | ||
10054 | w 226.60000000000002 | ||
10055 | h 40 | ||
10056 | type "rectangle" | ||
10057 | fill "#FFFFFF" | ||
10058 | fill2 "#FFFFFF" | ||
10059 | outline "#000000" | ||
10060 | ] | ||
10061 | LabelGraphics | ||
10062 | [ | ||
10063 | text "Root literal FunctionType" | ||
10064 | outline "#000000" | ||
10065 | fill "#FFFFFF" | ||
10066 | fontSize 16 | ||
10067 | fontName "Monospace" | ||
10068 | autoSizePolicy "node_width" | ||
10069 | anchor "t" | ||
10070 | borderDistance 0.0 | ||
10071 | ] | ||
10072 | LabelGraphics | ||
10073 | [ | ||
10074 | text " | ||
10075 | FunctionType enum | ||
10076 | " | ||
10077 | fontSize 14 | ||
10078 | fontName "Consolas" | ||
10079 | alignment "left" | ||
10080 | anchor "tl" | ||
10081 | borderDistance 6 | ||
10082 | ] | ||
10083 | ] | ||
10084 | |||
10085 | node | ||
10086 | [ | ||
10087 | id 1 | ||
10088 | graphics | ||
10089 | [ | ||
10090 | w 297.0 | ||
10091 | h 40 | ||
10092 | type "rectangle" | ||
10093 | fill "#FFFFFF" | ||
10094 | fill2 "#FFFFFF" | ||
10095 | outline "#000000" | ||
10096 | ] | ||
10097 | LabelGraphics | ||
10098 | [ | ||
10099 | text "Intermediate literal FunctionType" | ||
10100 | outline "#000000" | ||
10101 | fill "#FFFFFF" | ||
10102 | fontSize 16 | ||
10103 | fontName "Monospace" | ||
10104 | autoSizePolicy "node_width" | ||
10105 | anchor "t" | ||
10106 | borderDistance 0.0 | ||
10107 | ] | ||
10108 | LabelGraphics | ||
10109 | [ | ||
10110 | text " | ||
10111 | FunctionType enum | ||
10112 | " | ||
10113 | fontSize 14 | ||
10114 | fontName "Consolas" | ||
10115 | alignment "left" | ||
10116 | anchor "tl" | ||
10117 | borderDistance 6 | ||
10118 | ] | ||
10119 | ] | ||
10120 | |||
10121 | node | ||
10122 | [ | ||
10123 | id 2 | ||
10124 | graphics | ||
10125 | [ | ||
10126 | w 226.60000000000002 | ||
10127 | h 40 | ||
10128 | type "rectangle" | ||
10129 | fill "#FFFFFF" | ||
10130 | fill2 "#FFFFFF" | ||
10131 | outline "#000000" | ||
10132 | ] | ||
10133 | LabelGraphics | ||
10134 | [ | ||
10135 | text "Leaf literal FunctionType" | ||
10136 | outline "#000000" | ||
10137 | fill "#FFFFFF" | ||
10138 | fontSize 16 | ||
10139 | fontName "Monospace" | ||
10140 | autoSizePolicy "node_width" | ||
10141 | anchor "t" | ||
10142 | borderDistance 0.0 | ||
10143 | ] | ||
10144 | LabelGraphics | ||
10145 | [ | ||
10146 | text " | ||
10147 | FunctionType enum | ||
10148 | " | ||
10149 | fontSize 14 | ||
10150 | fontName "Consolas" | ||
10151 | alignment "left" | ||
10152 | anchor "tl" | ||
10153 | borderDistance 6 | ||
10154 | ] | ||
10155 | ] | ||
10156 | |||
10157 | node | ||
10158 | [ | ||
10159 | id 3 | ||
10160 | graphics | ||
10161 | [ | ||
10162 | w 361.90000000000003 | ||
10163 | h 54 | ||
10164 | type "rectangle" | ||
10165 | fill "#FFFFFF" | ||
10166 | fill2 "#FFFFFF" | ||
10167 | outline "#000000" | ||
10168 | ] | ||
10169 | LabelGraphics | ||
10170 | [ | ||
10171 | text "o 1" | ||
10172 | outline "#000000" | ||
10173 | fill "#FFFFFF" | ||
10174 | fontSize 16 | ||
10175 | fontName "Monospace" | ||
10176 | autoSizePolicy "node_width" | ||
10177 | anchor "t" | ||
10178 | borderDistance 0.0 | ||
10179 | ] | ||
10180 | LabelGraphics | ||
10181 | [ | ||
10182 | text " | ||
10183 | FunctionalArchitectureModel class DefinedPart | ||
10184 | FunctionalArchitectureModel class | ||
10185 | " | ||
10186 | fontSize 14 | ||
10187 | fontName "Consolas" | ||
10188 | alignment "left" | ||
10189 | anchor "tl" | ||
10190 | borderDistance 6 | ||
10191 | ] | ||
10192 | ] | ||
10193 | |||
10194 | node | ||
10195 | [ | ||
10196 | id 4 | ||
10197 | graphics | ||
10198 | [ | ||
10199 | w 41.800000000000004 | ||
10200 | h 26 | ||
10201 | type "rectangle" | ||
10202 | fill "#FFFFFF" | ||
10203 | fill2 "#FFFFFF" | ||
10204 | outline "#000000" | ||
10205 | ] | ||
10206 | LabelGraphics | ||
10207 | [ | ||
10208 | text "true" | ||
10209 | outline "#000000" | ||
10210 | fill "#FFFFFF" | ||
10211 | fontSize 16 | ||
10212 | fontName "Monospace" | ||
10213 | autoSizePolicy "node_width" | ||
10214 | anchor "t" | ||
10215 | borderDistance 0.0 | ||
10216 | ] | ||
10217 | LabelGraphics | ||
10218 | [ | ||
10219 | text " | ||
10220 | " | ||
10221 | fontSize 14 | ||
10222 | fontName "Consolas" | ||
10223 | alignment "left" | ||
10224 | anchor "tl" | ||
10225 | borderDistance 6 | ||
10226 | ] | ||
10227 | ] | ||
10228 | |||
10229 | node | ||
10230 | [ | ||
10231 | id 5 | ||
10232 | graphics | ||
10233 | [ | ||
10234 | w 50.6 | ||
10235 | h 26 | ||
10236 | type "rectangle" | ||
10237 | fill "#FFFFFF" | ||
10238 | fill2 "#FFFFFF" | ||
10239 | outline "#000000" | ||
10240 | ] | ||
10241 | LabelGraphics | ||
10242 | [ | ||
10243 | text "false" | ||
10244 | outline "#000000" | ||
10245 | fill "#FFFFFF" | ||
10246 | fontSize 16 | ||
10247 | fontName "Monospace" | ||
10248 | autoSizePolicy "node_width" | ||
10249 | anchor "t" | ||
10250 | borderDistance 0.0 | ||
10251 | ] | ||
10252 | LabelGraphics | ||
10253 | [ | ||
10254 | text " | ||
10255 | " | ||
10256 | fontSize 14 | ||
10257 | fontName "Consolas" | ||
10258 | alignment "left" | ||
10259 | anchor "tl" | ||
10260 | borderDistance 6 | ||
10261 | ] | ||
10262 | ] | ||
10263 | |||
10264 | node | ||
10265 | [ | ||
10266 | id 6 | ||
10267 | graphics | ||
10268 | [ | ||
10269 | w 192.50000000000003 | ||
10270 | h 54 | ||
10271 | type "rectangle" | ||
10272 | fill "#FFFFFF" | ||
10273 | fill2 "#FFFFFF" | ||
10274 | outline "#000000" | ||
10275 | ] | ||
10276 | LabelGraphics | ||
10277 | [ | ||
10278 | text "null" | ||
10279 | outline "#000000" | ||
10280 | fill "#FFFFFF" | ||
10281 | fontSize 16 | ||
10282 | fontName "Monospace" | ||
10283 | autoSizePolicy "node_width" | ||
10284 | anchor "t" | ||
10285 | borderDistance 0.0 | ||
10286 | ] | ||
10287 | LabelGraphics | ||
10288 | [ | ||
10289 | text " | ||
10290 | FunctionalElement class | ||
10291 | Function class | ||
10292 | " | ||
10293 | fontSize 14 | ||
10294 | fontName "Consolas" | ||
10295 | alignment "left" | ||
10296 | anchor "tl" | ||
10297 | borderDistance 6 | ||
10298 | ] | ||
10299 | ] | ||
10300 | |||
10301 | node | ||
10302 | [ | ||
10303 | id 7 | ||
10304 | graphics | ||
10305 | [ | ||
10306 | w 207.9 | ||
10307 | h 40 | ||
10308 | type "rectangle" | ||
10309 | fill "#FFFFFF" | ||
10310 | fill2 "#FFFFFF" | ||
10311 | outline "#000000" | ||
10312 | ] | ||
10313 | LabelGraphics | ||
10314 | [ | ||
10315 | text "null" | ||
10316 | outline "#000000" | ||
10317 | fill "#FFFFFF" | ||
10318 | fontSize 16 | ||
10319 | fontName "Monospace" | ||
10320 | autoSizePolicy "node_width" | ||
10321 | anchor "t" | ||
10322 | borderDistance 0.0 | ||
10323 | ] | ||
10324 | LabelGraphics | ||
10325 | [ | ||
10326 | text " | ||
10327 | FunctionalInterface class | ||
10328 | " | ||
10329 | fontSize 14 | ||
10330 | fontName "Consolas" | ||
10331 | alignment "left" | ||
10332 | anchor "tl" | ||
10333 | borderDistance 6 | ||
10334 | ] | ||
10335 | ] | ||
10336 | |||
10337 | node | ||
10338 | [ | ||
10339 | id 8 | ||
10340 | graphics | ||
10341 | [ | ||
10342 | w 184.8 | ||
10343 | h 54 | ||
10344 | type "rectangle" | ||
10345 | fill "#FFFFFF" | ||
10346 | fill2 "#FFFFFF" | ||
10347 | outline "#000000" | ||
10348 | ] | ||
10349 | LabelGraphics | ||
10350 | [ | ||
10351 | text "null" | ||
10352 | outline "#000000" | ||
10353 | fill "#FFFFFF" | ||
10354 | fontSize 16 | ||
10355 | fontName "Monospace" | ||
10356 | autoSizePolicy "node_width" | ||
10357 | anchor "t" | ||
10358 | borderDistance 0.0 | ||
10359 | ] | ||
10360 | LabelGraphics | ||
10361 | [ | ||
10362 | text " | ||
10363 | FunctionalOutput class | ||
10364 | FunctionalData class | ||
10365 | " | ||
10366 | fontSize 14 | ||
10367 | fontName "Consolas" | ||
10368 | alignment "left" | ||
10369 | anchor "tl" | ||
10370 | borderDistance 6 | ||
10371 | ] | ||
10372 | ] | ||
10373 | |||
10374 | node | ||
10375 | [ | ||
10376 | id 9 | ||
10377 | graphics | ||
10378 | [ | ||
10379 | w 177.10000000000002 | ||
10380 | h 40 | ||
10381 | type "rectangle" | ||
10382 | fill "#FFFFFF" | ||
10383 | fill2 "#FFFFFF" | ||
10384 | outline "#000000" | ||
10385 | ] | ||
10386 | LabelGraphics | ||
10387 | [ | ||
10388 | text "null" | ||
10389 | outline "#000000" | ||
10390 | fill "#FFFFFF" | ||
10391 | fontSize 16 | ||
10392 | fontName "Monospace" | ||
10393 | autoSizePolicy "node_width" | ||
10394 | anchor "t" | ||
10395 | borderDistance 0.0 | ||
10396 | ] | ||
10397 | LabelGraphics | ||
10398 | [ | ||
10399 | text " | ||
10400 | InformationLink class | ||
10401 | " | ||
10402 | fontSize 14 | ||
10403 | fontName "Consolas" | ||
10404 | alignment "left" | ||
10405 | anchor "tl" | ||
10406 | borderDistance 6 | ||
10407 | ] | ||
10408 | ] | ||
10409 | |||
10410 | node | ||
10411 | [ | ||
10412 | id 10 | ||
10413 | graphics | ||
10414 | [ | ||
10415 | w 177.10000000000002 | ||
10416 | h 54 | ||
10417 | type "rectangle" | ||
10418 | fill "#FFFFFF" | ||
10419 | fill2 "#FFFFFF" | ||
10420 | outline "#000000" | ||
10421 | ] | ||
10422 | LabelGraphics | ||
10423 | [ | ||
10424 | text "null" | ||
10425 | outline "#000000" | ||
10426 | fill "#FFFFFF" | ||
10427 | fontSize 16 | ||
10428 | fontName "Monospace" | ||
10429 | autoSizePolicy "node_width" | ||
10430 | anchor "t" | ||
10431 | borderDistance 0.0 | ||
10432 | ] | ||
10433 | LabelGraphics | ||
10434 | [ | ||
10435 | text " | ||
10436 | FunctionalInput class | ||
10437 | FunctionalData class | ||
10438 | " | ||
10439 | fontSize 14 | ||
10440 | fontName "Consolas" | ||
10441 | alignment "left" | ||
10442 | anchor "tl" | ||
10443 | borderDistance 6 | ||
10444 | ] | ||
10445 | ] | ||
10446 | |||
10447 | node | ||
10448 | [ | ||
10449 | id 11 | ||
10450 | graphics | ||
10451 | [ | ||
10452 | w 177.10000000000002 | ||
10453 | h 54 | ||
10454 | type "rectangle" | ||
10455 | fill "#FFFFFF" | ||
10456 | fill2 "#FFFFFF" | ||
10457 | outline "#000000" | ||
10458 | ] | ||
10459 | LabelGraphics | ||
10460 | [ | ||
10461 | text "null" | ||
10462 | outline "#000000" | ||
10463 | fill "#FFFFFF" | ||
10464 | fontSize 16 | ||
10465 | fontName "Monospace" | ||
10466 | autoSizePolicy "node_width" | ||
10467 | anchor "t" | ||
10468 | borderDistance 0.0 | ||
10469 | ] | ||
10470 | LabelGraphics | ||
10471 | [ | ||
10472 | text " | ||
10473 | FunctionalInput class | ||
10474 | FunctionalData class | ||
10475 | " | ||
10476 | fontSize 14 | ||
10477 | fontName "Consolas" | ||
10478 | alignment "left" | ||
10479 | anchor "tl" | ||
10480 | borderDistance 6 | ||
10481 | ] | ||
10482 | ] | ||
10483 | |||
10484 | node | ||
10485 | [ | ||
10486 | id 12 | ||
10487 | graphics | ||
10488 | [ | ||
10489 | w 112.2 | ||
10490 | h 26 | ||
10491 | type "rectangle" | ||
10492 | fill "#FFFFFF" | ||
10493 | fill2 "#FFFFFF" | ||
10494 | outline "#000000" | ||
10495 | ] | ||
10496 | LabelGraphics | ||
10497 | [ | ||
10498 | text "New Integers" | ||
10499 | outline "#000000" | ||
10500 | fill "#FFFFFF" | ||
10501 | fontSize 16 | ||
10502 | fontName "Monospace" | ||
10503 | autoSizePolicy "node_width" | ||
10504 | anchor "t" | ||
10505 | borderDistance 0.0 | ||
10506 | ] | ||
10507 | LabelGraphics | ||
10508 | [ | ||
10509 | text " | ||
10510 | " | ||
10511 | fontSize 14 | ||
10512 | fontName "Consolas" | ||
10513 | alignment "left" | ||
10514 | anchor "tl" | ||
10515 | borderDistance 6 | ||
10516 | ] | ||
10517 | ] | ||
10518 | |||
10519 | node | ||
10520 | [ | ||
10521 | id 13 | ||
10522 | graphics | ||
10523 | [ | ||
10524 | w 85.80000000000001 | ||
10525 | h 26 | ||
10526 | type "rectangle" | ||
10527 | fill "#FFFFFF" | ||
10528 | fill2 "#FFFFFF" | ||
10529 | outline "#000000" | ||
10530 | ] | ||
10531 | LabelGraphics | ||
10532 | [ | ||
10533 | text "New Reals" | ||
10534 | outline "#000000" | ||
10535 | fill "#FFFFFF" | ||
10536 | fontSize 16 | ||
10537 | fontName "Monospace" | ||
10538 | autoSizePolicy "node_width" | ||
10539 | anchor "t" | ||
10540 | borderDistance 0.0 | ||
10541 | ] | ||
10542 | LabelGraphics | ||
10543 | [ | ||
10544 | text " | ||
10545 | " | ||
10546 | fontSize 14 | ||
10547 | fontName "Consolas" | ||
10548 | alignment "left" | ||
10549 | anchor "tl" | ||
10550 | borderDistance 6 | ||
10551 | ] | ||
10552 | ] | ||
10553 | |||
10554 | node | ||
10555 | [ | ||
10556 | id 14 | ||
10557 | graphics | ||
10558 | [ | ||
10559 | w 103.4 | ||
10560 | h 26 | ||
10561 | type "rectangle" | ||
10562 | fill "#FFFFFF" | ||
10563 | fill2 "#FFFFFF" | ||
10564 | outline "#000000" | ||
10565 | ] | ||
10566 | LabelGraphics | ||
10567 | [ | ||
10568 | text "New Strings" | ||
10569 | outline "#000000" | ||
10570 | fill "#FFFFFF" | ||
10571 | fontSize 16 | ||
10572 | fontName "Monospace" | ||
10573 | autoSizePolicy "node_width" | ||
10574 | anchor "t" | ||
10575 | borderDistance 0.0 | ||
10576 | ] | ||
10577 | LabelGraphics | ||
10578 | [ | ||
10579 | text " | ||
10580 | " | ||
10581 | fontSize 14 | ||
10582 | fontName "Consolas" | ||
10583 | alignment "left" | ||
10584 | anchor "tl" | ||
10585 | borderDistance 6 | ||
10586 | ] | ||
10587 | ] | ||
10588 | |||
10589 | node | ||
10590 | [ | ||
10591 | id 15 | ||
10592 | graphics | ||
10593 | [ | ||
10594 | w 103.4 | ||
10595 | h 26 | ||
10596 | type "rectangle" | ||
10597 | fill "#FFFFFF" | ||
10598 | fill2 "#FFFFFF" | ||
10599 | outline "#000000" | ||
10600 | ] | ||
10601 | LabelGraphics | ||
10602 | [ | ||
10603 | text "New Objects" | ||
10604 | outline "#000000" | ||
10605 | fill "#FFFFFF" | ||
10606 | fontSize 16 | ||
10607 | fontName "Monospace" | ||
10608 | autoSizePolicy "node_width" | ||
10609 | anchor "t" | ||
10610 | borderDistance 0.0 | ||
10611 | ] | ||
10612 | LabelGraphics | ||
10613 | [ | ||
10614 | text " | ||
10615 | " | ||
10616 | fontSize 14 | ||
10617 | fontName "Consolas" | ||
10618 | alignment "left" | ||
10619 | anchor "tl" | ||
10620 | borderDistance 6 | ||
10621 | ] | ||
10622 | ] | ||
10623 | edge | ||
10624 | [ | ||
10625 | source 6 | ||
10626 | target 7 | ||
10627 | graphics | ||
10628 | [ | ||
10629 | fill "#000000" | ||
10630 | width 3 | ||
10631 | targetArrow "standard" | ||
10632 | ] | ||
10633 | LabelGraphics | ||
10634 | [ | ||
10635 | text "interface reference FunctionalElement" | ||
10636 | fontSize 14 | ||
10637 | fontName "Consolas" | ||
10638 | configuration "AutoFlippingLabel" | ||
10639 | model "six_pos" | ||
10640 | position "thead" | ||
10641 | ] | ||
10642 | ] | ||
10643 | edge | ||
10644 | [ | ||
10645 | source 6 | ||
10646 | target 3 | ||
10647 | graphics | ||
10648 | [ | ||
10649 | fill "#000000" | ||
10650 | targetArrow "standard" | ||
10651 | ] | ||
10652 | LabelGraphics | ||
10653 | [ | ||
10654 | text "model reference FunctionalElement" | ||
10655 | fontSize 14 | ||
10656 | fontName "Consolas" | ||
10657 | configuration "AutoFlippingLabel" | ||
10658 | model "six_pos" | ||
10659 | position "thead" | ||
10660 | ] | ||
10661 | ] | ||
10662 | edge | ||
10663 | [ | ||
10664 | source 3 | ||
10665 | target 6 | ||
10666 | graphics | ||
10667 | [ | ||
10668 | fill "#000000" | ||
10669 | width 3 | ||
10670 | targetArrow "standard" | ||
10671 | ] | ||
10672 | LabelGraphics | ||
10673 | [ | ||
10674 | text "rootElements reference FunctionalArchitectureModel" | ||
10675 | fontSize 14 | ||
10676 | fontName "Consolas" | ||
10677 | configuration "AutoFlippingLabel" | ||
10678 | model "six_pos" | ||
10679 | position "thead" | ||
10680 | ] | ||
10681 | ] | ||
10682 | edge | ||
10683 | [ | ||
10684 | source 9 | ||
10685 | target 8 | ||
10686 | graphics | ||
10687 | [ | ||
10688 | fill "#000000" | ||
10689 | targetArrow "standard" | ||
10690 | ] | ||
10691 | LabelGraphics | ||
10692 | [ | ||
10693 | text "from reference InformationLink" | ||
10694 | fontSize 14 | ||
10695 | fontName "Consolas" | ||
10696 | configuration "AutoFlippingLabel" | ||
10697 | model "six_pos" | ||
10698 | position "thead" | ||
10699 | ] | ||
10700 | ] | ||
10701 | edge | ||
10702 | [ | ||
10703 | source 9 | ||
10704 | target 10 | ||
10705 | graphics | ||
10706 | [ | ||
10707 | fill "#000000" | ||
10708 | targetArrow "standard" | ||
10709 | ] | ||
10710 | LabelGraphics | ||
10711 | [ | ||
10712 | text "to reference InformationLink" | ||
10713 | fontSize 14 | ||
10714 | fontName "Consolas" | ||
10715 | configuration "AutoFlippingLabel" | ||
10716 | model "six_pos" | ||
10717 | position "thead" | ||
10718 | ] | ||
10719 | ] | ||
10720 | edge | ||
10721 | [ | ||
10722 | source 7 | ||
10723 | target 8 | ||
10724 | graphics | ||
10725 | [ | ||
10726 | fill "#000000" | ||
10727 | width 3 | ||
10728 | targetArrow "standard" | ||
10729 | ] | ||
10730 | LabelGraphics | ||
10731 | [ | ||
10732 | text "data reference FunctionalInterface" | ||
10733 | fontSize 14 | ||
10734 | fontName "Consolas" | ||
10735 | configuration "AutoFlippingLabel" | ||
10736 | model "six_pos" | ||
10737 | position "thead" | ||
10738 | ] | ||
10739 | ] | ||
10740 | edge | ||
10741 | [ | ||
10742 | source 7 | ||
10743 | target 10 | ||
10744 | graphics | ||
10745 | [ | ||
10746 | fill "#000000" | ||
10747 | width 3 | ||
10748 | targetArrow "standard" | ||
10749 | ] | ||
10750 | LabelGraphics | ||
10751 | [ | ||
10752 | text "data reference FunctionalInterface" | ||
10753 | fontSize 14 | ||
10754 | fontName "Consolas" | ||
10755 | configuration "AutoFlippingLabel" | ||
10756 | model "six_pos" | ||
10757 | position "thead" | ||
10758 | ] | ||
10759 | ] | ||
10760 | edge | ||
10761 | [ | ||
10762 | source 7 | ||
10763 | target 11 | ||
10764 | graphics | ||
10765 | [ | ||
10766 | fill "#000000" | ||
10767 | width 3 | ||
10768 | targetArrow "standard" | ||
10769 | ] | ||
10770 | LabelGraphics | ||
10771 | [ | ||
10772 | text "data reference FunctionalInterface" | ||
10773 | fontSize 14 | ||
10774 | fontName "Consolas" | ||
10775 | configuration "AutoFlippingLabel" | ||
10776 | model "six_pos" | ||
10777 | position "thead" | ||
10778 | ] | ||
10779 | ] | ||
10780 | edge | ||
10781 | [ | ||
10782 | source 7 | ||
10783 | target 6 | ||
10784 | graphics | ||
10785 | [ | ||
10786 | fill "#000000" | ||
10787 | targetArrow "standard" | ||
10788 | ] | ||
10789 | LabelGraphics | ||
10790 | [ | ||
10791 | text "element reference FunctionalInterface" | ||
10792 | fontSize 14 | ||
10793 | fontName "Consolas" | ||
10794 | configuration "AutoFlippingLabel" | ||
10795 | model "six_pos" | ||
10796 | position "thead" | ||
10797 | ] | ||
10798 | ] | ||
10799 | edge | ||
10800 | [ | ||
10801 | source 10 | ||
10802 | target 9 | ||
10803 | graphics | ||
10804 | [ | ||
10805 | fill "#000000" | ||
10806 | targetArrow "standard" | ||
10807 | ] | ||
10808 | LabelGraphics | ||
10809 | [ | ||
10810 | text "IncomingLinks reference FunctionalInput" | ||
10811 | fontSize 14 | ||
10812 | fontName "Consolas" | ||
10813 | configuration "AutoFlippingLabel" | ||
10814 | model "six_pos" | ||
10815 | position "thead" | ||
10816 | ] | ||
10817 | ] | ||
10818 | edge | ||
10819 | [ | ||
10820 | source 8 | ||
10821 | target 9 | ||
10822 | graphics | ||
10823 | [ | ||
10824 | fill "#000000" | ||
10825 | width 3 | ||
10826 | targetArrow "standard" | ||
10827 | ] | ||
10828 | LabelGraphics | ||
10829 | [ | ||
10830 | text "outgoingLinks reference FunctionalOutput" | ||
10831 | fontSize 14 | ||
10832 | fontName "Consolas" | ||
10833 | configuration "AutoFlippingLabel" | ||
10834 | model "six_pos" | ||
10835 | position "thead" | ||
10836 | ] | ||
10837 | ] | ||
10838 | edge | ||
10839 | [ | ||
10840 | source 8 | ||
10841 | target 7 | ||
10842 | graphics | ||
10843 | [ | ||
10844 | fill "#000000" | ||
10845 | targetArrow "standard" | ||
10846 | ] | ||
10847 | LabelGraphics | ||
10848 | [ | ||
10849 | text "interface reference FunctionalData" | ||
10850 | fontSize 14 | ||
10851 | fontName "Consolas" | ||
10852 | configuration "AutoFlippingLabel" | ||
10853 | model "six_pos" | ||
10854 | position "thead" | ||
10855 | ] | ||
10856 | ] | ||
10857 | edge | ||
10858 | [ | ||
10859 | source 10 | ||
10860 | target 7 | ||
10861 | graphics | ||
10862 | [ | ||
10863 | fill "#000000" | ||
10864 | targetArrow "standard" | ||
10865 | ] | ||
10866 | LabelGraphics | ||
10867 | [ | ||
10868 | text "interface reference FunctionalData" | ||
10869 | fontSize 14 | ||
10870 | fontName "Consolas" | ||
10871 | configuration "AutoFlippingLabel" | ||
10872 | model "six_pos" | ||
10873 | position "thead" | ||
10874 | ] | ||
10875 | ] | ||
10876 | edge | ||
10877 | [ | ||
10878 | source 11 | ||
10879 | target 7 | ||
10880 | graphics | ||
10881 | [ | ||
10882 | fill "#000000" | ||
10883 | targetArrow "standard" | ||
10884 | ] | ||
10885 | LabelGraphics | ||
10886 | [ | ||
10887 | text "interface reference FunctionalData" | ||
10888 | fontSize 14 | ||
10889 | fontName "Consolas" | ||
10890 | configuration "AutoFlippingLabel" | ||
10891 | model "six_pos" | ||
10892 | position "thead" | ||
10893 | ] | ||
10894 | ] | ||
10895 | edge | ||
10896 | [ | ||
10897 | source 6 | ||
10898 | target 0 | ||
10899 | graphics | ||
10900 | [ | ||
10901 | fill "#000000" | ||
10902 | targetArrow "standard" | ||
10903 | ] | ||
10904 | LabelGraphics | ||
10905 | [ | ||
10906 | text "type attribute Function" | ||
10907 | fontSize 14 | ||
10908 | fontName "Consolas" | ||
10909 | configuration "AutoFlippingLabel" | ||
10910 | model "six_pos" | ||
10911 | position "thead" | ||
10912 | ] | ||
10913 | ] | ||
10914 | ] | ||
10915 | graph | ||
10916 | [ | ||
10917 | node | ||
10918 | [ | ||
10919 | id 0 | ||
10920 | graphics | ||
10921 | [ | ||
10922 | w 226.60000000000002 | ||
10923 | h 40 | ||
10924 | type "rectangle" | ||
10925 | fill "#FFFFFF" | ||
10926 | fill2 "#FFFFFF" | ||
10927 | outline "#000000" | ||
10928 | ] | ||
10929 | LabelGraphics | ||
10930 | [ | ||
10931 | text "Root literal FunctionType" | ||
10932 | outline "#000000" | ||
10933 | fill "#FFFFFF" | ||
10934 | fontSize 16 | ||
10935 | fontName "Monospace" | ||
10936 | autoSizePolicy "node_width" | ||
10937 | anchor "t" | ||
10938 | borderDistance 0.0 | ||
10939 | ] | ||
10940 | LabelGraphics | ||
10941 | [ | ||
10942 | text " | ||
10943 | FunctionType enum | ||
10944 | " | ||
10945 | fontSize 14 | ||
10946 | fontName "Consolas" | ||
10947 | alignment "left" | ||
10948 | anchor "tl" | ||
10949 | borderDistance 6 | ||
10950 | ] | ||
10951 | ] | ||
10952 | |||
10953 | node | ||
10954 | [ | ||
10955 | id 1 | ||
10956 | graphics | ||
10957 | [ | ||
10958 | w 297.0 | ||
10959 | h 40 | ||
10960 | type "rectangle" | ||
10961 | fill "#FFFFFF" | ||
10962 | fill2 "#FFFFFF" | ||
10963 | outline "#000000" | ||
10964 | ] | ||
10965 | LabelGraphics | ||
10966 | [ | ||
10967 | text "Intermediate literal FunctionType" | ||
10968 | outline "#000000" | ||
10969 | fill "#FFFFFF" | ||
10970 | fontSize 16 | ||
10971 | fontName "Monospace" | ||
10972 | autoSizePolicy "node_width" | ||
10973 | anchor "t" | ||
10974 | borderDistance 0.0 | ||
10975 | ] | ||
10976 | LabelGraphics | ||
10977 | [ | ||
10978 | text " | ||
10979 | FunctionType enum | ||
10980 | " | ||
10981 | fontSize 14 | ||
10982 | fontName "Consolas" | ||
10983 | alignment "left" | ||
10984 | anchor "tl" | ||
10985 | borderDistance 6 | ||
10986 | ] | ||
10987 | ] | ||
10988 | |||
10989 | node | ||
10990 | [ | ||
10991 | id 2 | ||
10992 | graphics | ||
10993 | [ | ||
10994 | w 226.60000000000002 | ||
10995 | h 40 | ||
10996 | type "rectangle" | ||
10997 | fill "#FFFFFF" | ||
10998 | fill2 "#FFFFFF" | ||
10999 | outline "#000000" | ||
11000 | ] | ||
11001 | LabelGraphics | ||
11002 | [ | ||
11003 | text "Leaf literal FunctionType" | ||
11004 | outline "#000000" | ||
11005 | fill "#FFFFFF" | ||
11006 | fontSize 16 | ||
11007 | fontName "Monospace" | ||
11008 | autoSizePolicy "node_width" | ||
11009 | anchor "t" | ||
11010 | borderDistance 0.0 | ||
11011 | ] | ||
11012 | LabelGraphics | ||
11013 | [ | ||
11014 | text " | ||
11015 | FunctionType enum | ||
11016 | " | ||
11017 | fontSize 14 | ||
11018 | fontName "Consolas" | ||
11019 | alignment "left" | ||
11020 | anchor "tl" | ||
11021 | borderDistance 6 | ||
11022 | ] | ||
11023 | ] | ||
11024 | |||
11025 | node | ||
11026 | [ | ||
11027 | id 3 | ||
11028 | graphics | ||
11029 | [ | ||
11030 | w 361.90000000000003 | ||
11031 | h 54 | ||
11032 | type "rectangle" | ||
11033 | fill "#FFFFFF" | ||
11034 | fill2 "#FFFFFF" | ||
11035 | outline "#000000" | ||
11036 | ] | ||
11037 | LabelGraphics | ||
11038 | [ | ||
11039 | text "o 1" | ||
11040 | outline "#000000" | ||
11041 | fill "#FFFFFF" | ||
11042 | fontSize 16 | ||
11043 | fontName "Monospace" | ||
11044 | autoSizePolicy "node_width" | ||
11045 | anchor "t" | ||
11046 | borderDistance 0.0 | ||
11047 | ] | ||
11048 | LabelGraphics | ||
11049 | [ | ||
11050 | text " | ||
11051 | FunctionalArchitectureModel class DefinedPart | ||
11052 | FunctionalArchitectureModel class | ||
11053 | " | ||
11054 | fontSize 14 | ||
11055 | fontName "Consolas" | ||
11056 | alignment "left" | ||
11057 | anchor "tl" | ||
11058 | borderDistance 6 | ||
11059 | ] | ||
11060 | ] | ||
11061 | |||
11062 | node | ||
11063 | [ | ||
11064 | id 4 | ||
11065 | graphics | ||
11066 | [ | ||
11067 | w 41.800000000000004 | ||
11068 | h 26 | ||
11069 | type "rectangle" | ||
11070 | fill "#FFFFFF" | ||
11071 | fill2 "#FFFFFF" | ||
11072 | outline "#000000" | ||
11073 | ] | ||
11074 | LabelGraphics | ||
11075 | [ | ||
11076 | text "true" | ||
11077 | outline "#000000" | ||
11078 | fill "#FFFFFF" | ||
11079 | fontSize 16 | ||
11080 | fontName "Monospace" | ||
11081 | autoSizePolicy "node_width" | ||
11082 | anchor "t" | ||
11083 | borderDistance 0.0 | ||
11084 | ] | ||
11085 | LabelGraphics | ||
11086 | [ | ||
11087 | text " | ||
11088 | " | ||
11089 | fontSize 14 | ||
11090 | fontName "Consolas" | ||
11091 | alignment "left" | ||
11092 | anchor "tl" | ||
11093 | borderDistance 6 | ||
11094 | ] | ||
11095 | ] | ||
11096 | |||
11097 | node | ||
11098 | [ | ||
11099 | id 5 | ||
11100 | graphics | ||
11101 | [ | ||
11102 | w 50.6 | ||
11103 | h 26 | ||
11104 | type "rectangle" | ||
11105 | fill "#FFFFFF" | ||
11106 | fill2 "#FFFFFF" | ||
11107 | outline "#000000" | ||
11108 | ] | ||
11109 | LabelGraphics | ||
11110 | [ | ||
11111 | text "false" | ||
11112 | outline "#000000" | ||
11113 | fill "#FFFFFF" | ||
11114 | fontSize 16 | ||
11115 | fontName "Monospace" | ||
11116 | autoSizePolicy "node_width" | ||
11117 | anchor "t" | ||
11118 | borderDistance 0.0 | ||
11119 | ] | ||
11120 | LabelGraphics | ||
11121 | [ | ||
11122 | text " | ||
11123 | " | ||
11124 | fontSize 14 | ||
11125 | fontName "Consolas" | ||
11126 | alignment "left" | ||
11127 | anchor "tl" | ||
11128 | borderDistance 6 | ||
11129 | ] | ||
11130 | ] | ||
11131 | |||
11132 | node | ||
11133 | [ | ||
11134 | id 6 | ||
11135 | graphics | ||
11136 | [ | ||
11137 | w 192.50000000000003 | ||
11138 | h 54 | ||
11139 | type "rectangle" | ||
11140 | fill "#FFFFFF" | ||
11141 | fill2 "#FFFFFF" | ||
11142 | outline "#000000" | ||
11143 | ] | ||
11144 | LabelGraphics | ||
11145 | [ | ||
11146 | text "null" | ||
11147 | outline "#000000" | ||
11148 | fill "#FFFFFF" | ||
11149 | fontSize 16 | ||
11150 | fontName "Monospace" | ||
11151 | autoSizePolicy "node_width" | ||
11152 | anchor "t" | ||
11153 | borderDistance 0.0 | ||
11154 | ] | ||
11155 | LabelGraphics | ||
11156 | [ | ||
11157 | text " | ||
11158 | FunctionalElement class | ||
11159 | Function class | ||
11160 | " | ||
11161 | fontSize 14 | ||
11162 | fontName "Consolas" | ||
11163 | alignment "left" | ||
11164 | anchor "tl" | ||
11165 | borderDistance 6 | ||
11166 | ] | ||
11167 | ] | ||
11168 | |||
11169 | node | ||
11170 | [ | ||
11171 | id 7 | ||
11172 | graphics | ||
11173 | [ | ||
11174 | w 207.9 | ||
11175 | h 40 | ||
11176 | type "rectangle" | ||
11177 | fill "#FFFFFF" | ||
11178 | fill2 "#FFFFFF" | ||
11179 | outline "#000000" | ||
11180 | ] | ||
11181 | LabelGraphics | ||
11182 | [ | ||
11183 | text "null" | ||
11184 | outline "#000000" | ||
11185 | fill "#FFFFFF" | ||
11186 | fontSize 16 | ||
11187 | fontName "Monospace" | ||
11188 | autoSizePolicy "node_width" | ||
11189 | anchor "t" | ||
11190 | borderDistance 0.0 | ||
11191 | ] | ||
11192 | LabelGraphics | ||
11193 | [ | ||
11194 | text " | ||
11195 | FunctionalInterface class | ||
11196 | " | ||
11197 | fontSize 14 | ||
11198 | fontName "Consolas" | ||
11199 | alignment "left" | ||
11200 | anchor "tl" | ||
11201 | borderDistance 6 | ||
11202 | ] | ||
11203 | ] | ||
11204 | |||
11205 | node | ||
11206 | [ | ||
11207 | id 8 | ||
11208 | graphics | ||
11209 | [ | ||
11210 | w 184.8 | ||
11211 | h 54 | ||
11212 | type "rectangle" | ||
11213 | fill "#FFFFFF" | ||
11214 | fill2 "#FFFFFF" | ||
11215 | outline "#000000" | ||
11216 | ] | ||
11217 | LabelGraphics | ||
11218 | [ | ||
11219 | text "null" | ||
11220 | outline "#000000" | ||
11221 | fill "#FFFFFF" | ||
11222 | fontSize 16 | ||
11223 | fontName "Monospace" | ||
11224 | autoSizePolicy "node_width" | ||
11225 | anchor "t" | ||
11226 | borderDistance 0.0 | ||
11227 | ] | ||
11228 | LabelGraphics | ||
11229 | [ | ||
11230 | text " | ||
11231 | FunctionalOutput class | ||
11232 | FunctionalData class | ||
11233 | " | ||
11234 | fontSize 14 | ||
11235 | fontName "Consolas" | ||
11236 | alignment "left" | ||
11237 | anchor "tl" | ||
11238 | borderDistance 6 | ||
11239 | ] | ||
11240 | ] | ||
11241 | |||
11242 | node | ||
11243 | [ | ||
11244 | id 9 | ||
11245 | graphics | ||
11246 | [ | ||
11247 | w 161.70000000000002 | ||
11248 | h 40 | ||
11249 | type "rectangle" | ||
11250 | fill "#FFFFFF" | ||
11251 | fill2 "#FFFFFF" | ||
11252 | outline "#000000" | ||
11253 | ] | ||
11254 | LabelGraphics | ||
11255 | [ | ||
11256 | text "null" | ||
11257 | outline "#000000" | ||
11258 | fill "#FFFFFF" | ||
11259 | fontSize 16 | ||
11260 | fontName "Monospace" | ||
11261 | autoSizePolicy "node_width" | ||
11262 | anchor "t" | ||
11263 | borderDistance 0.0 | ||
11264 | ] | ||
11265 | LabelGraphics | ||
11266 | [ | ||
11267 | text " | ||
11268 | FAMTerminator class | ||
11269 | " | ||
11270 | fontSize 14 | ||
11271 | fontName "Consolas" | ||
11272 | alignment "left" | ||
11273 | anchor "tl" | ||
11274 | borderDistance 6 | ||
11275 | ] | ||
11276 | ] | ||
11277 | |||
11278 | node | ||
11279 | [ | ||
11280 | id 10 | ||
11281 | graphics | ||
11282 | [ | ||
11283 | w 184.8 | ||
11284 | h 54 | ||
11285 | type "rectangle" | ||
11286 | fill "#FFFFFF" | ||
11287 | fill2 "#FFFFFF" | ||
11288 | outline "#000000" | ||
11289 | ] | ||
11290 | LabelGraphics | ||
11291 | [ | ||
11292 | text "null" | ||
11293 | outline "#000000" | ||
11294 | fill "#FFFFFF" | ||
11295 | fontSize 16 | ||
11296 | fontName "Monospace" | ||
11297 | autoSizePolicy "node_width" | ||
11298 | anchor "t" | ||
11299 | borderDistance 0.0 | ||
11300 | ] | ||
11301 | LabelGraphics | ||
11302 | [ | ||
11303 | text " | ||
11304 | FunctionalOutput class | ||
11305 | FunctionalData class | ||
11306 | " | ||
11307 | fontSize 14 | ||
11308 | fontName "Consolas" | ||
11309 | alignment "left" | ||
11310 | anchor "tl" | ||
11311 | borderDistance 6 | ||
11312 | ] | ||
11313 | ] | ||
11314 | |||
11315 | node | ||
11316 | [ | ||
11317 | id 11 | ||
11318 | graphics | ||
11319 | [ | ||
11320 | w 192.50000000000003 | ||
11321 | h 54 | ||
11322 | type "rectangle" | ||
11323 | fill "#FFFFFF" | ||
11324 | fill2 "#FFFFFF" | ||
11325 | outline "#000000" | ||
11326 | ] | ||
11327 | LabelGraphics | ||
11328 | [ | ||
11329 | text "null" | ||
11330 | outline "#000000" | ||
11331 | fill "#FFFFFF" | ||
11332 | fontSize 16 | ||
11333 | fontName "Monospace" | ||
11334 | autoSizePolicy "node_width" | ||
11335 | anchor "t" | ||
11336 | borderDistance 0.0 | ||
11337 | ] | ||
11338 | LabelGraphics | ||
11339 | [ | ||
11340 | text " | ||
11341 | FunctionalElement class | ||
11342 | Function class | ||
11343 | " | ||
11344 | fontSize 14 | ||
11345 | fontName "Consolas" | ||
11346 | alignment "left" | ||
11347 | anchor "tl" | ||
11348 | borderDistance 6 | ||
11349 | ] | ||
11350 | ] | ||
11351 | |||
11352 | node | ||
11353 | [ | ||
11354 | id 12 | ||
11355 | graphics | ||
11356 | [ | ||
11357 | w 112.2 | ||
11358 | h 26 | ||
11359 | type "rectangle" | ||
11360 | fill "#FFFFFF" | ||
11361 | fill2 "#FFFFFF" | ||
11362 | outline "#000000" | ||
11363 | ] | ||
11364 | LabelGraphics | ||
11365 | [ | ||
11366 | text "New Integers" | ||
11367 | outline "#000000" | ||
11368 | fill "#FFFFFF" | ||
11369 | fontSize 16 | ||
11370 | fontName "Monospace" | ||
11371 | autoSizePolicy "node_width" | ||
11372 | anchor "t" | ||
11373 | borderDistance 0.0 | ||
11374 | ] | ||
11375 | LabelGraphics | ||
11376 | [ | ||
11377 | text " | ||
11378 | " | ||
11379 | fontSize 14 | ||
11380 | fontName "Consolas" | ||
11381 | alignment "left" | ||
11382 | anchor "tl" | ||
11383 | borderDistance 6 | ||
11384 | ] | ||
11385 | ] | ||
11386 | |||
11387 | node | ||
11388 | [ | ||
11389 | id 13 | ||
11390 | graphics | ||
11391 | [ | ||
11392 | w 85.80000000000001 | ||
11393 | h 26 | ||
11394 | type "rectangle" | ||
11395 | fill "#FFFFFF" | ||
11396 | fill2 "#FFFFFF" | ||
11397 | outline "#000000" | ||
11398 | ] | ||
11399 | LabelGraphics | ||
11400 | [ | ||
11401 | text "New Reals" | ||
11402 | outline "#000000" | ||
11403 | fill "#FFFFFF" | ||
11404 | fontSize 16 | ||
11405 | fontName "Monospace" | ||
11406 | autoSizePolicy "node_width" | ||
11407 | anchor "t" | ||
11408 | borderDistance 0.0 | ||
11409 | ] | ||
11410 | LabelGraphics | ||
11411 | [ | ||
11412 | text " | ||
11413 | " | ||
11414 | fontSize 14 | ||
11415 | fontName "Consolas" | ||
11416 | alignment "left" | ||
11417 | anchor "tl" | ||
11418 | borderDistance 6 | ||
11419 | ] | ||
11420 | ] | ||
11421 | |||
11422 | node | ||
11423 | [ | ||
11424 | id 14 | ||
11425 | graphics | ||
11426 | [ | ||
11427 | w 103.4 | ||
11428 | h 26 | ||
11429 | type "rectangle" | ||
11430 | fill "#FFFFFF" | ||
11431 | fill2 "#FFFFFF" | ||
11432 | outline "#000000" | ||
11433 | ] | ||
11434 | LabelGraphics | ||
11435 | [ | ||
11436 | text "New Strings" | ||
11437 | outline "#000000" | ||
11438 | fill "#FFFFFF" | ||
11439 | fontSize 16 | ||
11440 | fontName "Monospace" | ||
11441 | autoSizePolicy "node_width" | ||
11442 | anchor "t" | ||
11443 | borderDistance 0.0 | ||
11444 | ] | ||
11445 | LabelGraphics | ||
11446 | [ | ||
11447 | text " | ||
11448 | " | ||
11449 | fontSize 14 | ||
11450 | fontName "Consolas" | ||
11451 | alignment "left" | ||
11452 | anchor "tl" | ||
11453 | borderDistance 6 | ||
11454 | ] | ||
11455 | ] | ||
11456 | |||
11457 | node | ||
11458 | [ | ||
11459 | id 15 | ||
11460 | graphics | ||
11461 | [ | ||
11462 | w 103.4 | ||
11463 | h 26 | ||
11464 | type "rectangle" | ||
11465 | fill "#FFFFFF" | ||
11466 | fill2 "#FFFFFF" | ||
11467 | outline "#000000" | ||
11468 | ] | ||
11469 | LabelGraphics | ||
11470 | [ | ||
11471 | text "New Objects" | ||
11472 | outline "#000000" | ||
11473 | fill "#FFFFFF" | ||
11474 | fontSize 16 | ||
11475 | fontName "Monospace" | ||
11476 | autoSizePolicy "node_width" | ||
11477 | anchor "t" | ||
11478 | borderDistance 0.0 | ||
11479 | ] | ||
11480 | LabelGraphics | ||
11481 | [ | ||
11482 | text " | ||
11483 | " | ||
11484 | fontSize 14 | ||
11485 | fontName "Consolas" | ||
11486 | alignment "left" | ||
11487 | anchor "tl" | ||
11488 | borderDistance 6 | ||
11489 | ] | ||
11490 | ] | ||
11491 | edge | ||
11492 | [ | ||
11493 | source 6 | ||
11494 | target 7 | ||
11495 | graphics | ||
11496 | [ | ||
11497 | fill "#000000" | ||
11498 | width 3 | ||
11499 | targetArrow "standard" | ||
11500 | ] | ||
11501 | LabelGraphics | ||
11502 | [ | ||
11503 | text "interface reference FunctionalElement" | ||
11504 | fontSize 14 | ||
11505 | fontName "Consolas" | ||
11506 | configuration "AutoFlippingLabel" | ||
11507 | model "six_pos" | ||
11508 | position "thead" | ||
11509 | ] | ||
11510 | ] | ||
11511 | edge | ||
11512 | [ | ||
11513 | source 6 | ||
11514 | target 3 | ||
11515 | graphics | ||
11516 | [ | ||
11517 | fill "#000000" | ||
11518 | targetArrow "standard" | ||
11519 | ] | ||
11520 | LabelGraphics | ||
11521 | [ | ||
11522 | text "model reference FunctionalElement" | ||
11523 | fontSize 14 | ||
11524 | fontName "Consolas" | ||
11525 | configuration "AutoFlippingLabel" | ||
11526 | model "six_pos" | ||
11527 | position "thead" | ||
11528 | ] | ||
11529 | ] | ||
11530 | edge | ||
11531 | [ | ||
11532 | source 11 | ||
11533 | target 3 | ||
11534 | graphics | ||
11535 | [ | ||
11536 | fill "#000000" | ||
11537 | targetArrow "standard" | ||
11538 | ] | ||
11539 | LabelGraphics | ||
11540 | [ | ||
11541 | text "model reference FunctionalElement" | ||
11542 | fontSize 14 | ||
11543 | fontName "Consolas" | ||
11544 | configuration "AutoFlippingLabel" | ||
11545 | model "six_pos" | ||
11546 | position "thead" | ||
11547 | ] | ||
11548 | ] | ||
11549 | edge | ||
11550 | [ | ||
11551 | source 3 | ||
11552 | target 6 | ||
11553 | graphics | ||
11554 | [ | ||
11555 | fill "#000000" | ||
11556 | width 3 | ||
11557 | targetArrow "standard" | ||
11558 | ] | ||
11559 | LabelGraphics | ||
11560 | [ | ||
11561 | text "rootElements reference FunctionalArchitectureModel" | ||
11562 | fontSize 14 | ||
11563 | fontName "Consolas" | ||
11564 | configuration "AutoFlippingLabel" | ||
11565 | model "six_pos" | ||
11566 | position "thead" | ||
11567 | ] | ||
11568 | ] | ||
11569 | edge | ||
11570 | [ | ||
11571 | source 3 | ||
11572 | target 11 | ||
11573 | graphics | ||
11574 | [ | ||
11575 | fill "#000000" | ||
11576 | width 3 | ||
11577 | targetArrow "standard" | ||
11578 | ] | ||
11579 | LabelGraphics | ||
11580 | [ | ||
11581 | text "rootElements reference FunctionalArchitectureModel" | ||
11582 | fontSize 14 | ||
11583 | fontName "Consolas" | ||
11584 | configuration "AutoFlippingLabel" | ||
11585 | model "six_pos" | ||
11586 | position "thead" | ||
11587 | ] | ||
11588 | ] | ||
11589 | edge | ||
11590 | [ | ||
11591 | source 9 | ||
11592 | target 8 | ||
11593 | graphics | ||
11594 | [ | ||
11595 | fill "#000000" | ||
11596 | targetArrow "standard" | ||
11597 | ] | ||
11598 | LabelGraphics | ||
11599 | [ | ||
11600 | text "data reference FAMTerminator" | ||
11601 | fontSize 14 | ||
11602 | fontName "Consolas" | ||
11603 | configuration "AutoFlippingLabel" | ||
11604 | model "six_pos" | ||
11605 | position "thead" | ||
11606 | ] | ||
11607 | ] | ||
11608 | edge | ||
11609 | [ | ||
11610 | source 7 | ||
11611 | target 8 | ||
11612 | graphics | ||
11613 | [ | ||
11614 | fill "#000000" | ||
11615 | width 3 | ||
11616 | targetArrow "standard" | ||
11617 | ] | ||
11618 | LabelGraphics | ||
11619 | [ | ||
11620 | text "data reference FunctionalInterface" | ||
11621 | fontSize 14 | ||
11622 | fontName "Consolas" | ||
11623 | configuration "AutoFlippingLabel" | ||
11624 | model "six_pos" | ||
11625 | position "thead" | ||
11626 | ] | ||
11627 | ] | ||
11628 | edge | ||
11629 | [ | ||
11630 | source 7 | ||
11631 | target 10 | ||
11632 | graphics | ||
11633 | [ | ||
11634 | fill "#000000" | ||
11635 | width 3 | ||
11636 | targetArrow "standard" | ||
11637 | ] | ||
11638 | LabelGraphics | ||
11639 | [ | ||
11640 | text "data reference FunctionalInterface" | ||
11641 | fontSize 14 | ||
11642 | fontName "Consolas" | ||
11643 | configuration "AutoFlippingLabel" | ||
11644 | model "six_pos" | ||
11645 | position "thead" | ||
11646 | ] | ||
11647 | ] | ||
11648 | edge | ||
11649 | [ | ||
11650 | source 7 | ||
11651 | target 6 | ||
11652 | graphics | ||
11653 | [ | ||
11654 | fill "#000000" | ||
11655 | targetArrow "standard" | ||
11656 | ] | ||
11657 | LabelGraphics | ||
11658 | [ | ||
11659 | text "element reference FunctionalInterface" | ||
11660 | fontSize 14 | ||
11661 | fontName "Consolas" | ||
11662 | configuration "AutoFlippingLabel" | ||
11663 | model "six_pos" | ||
11664 | position "thead" | ||
11665 | ] | ||
11666 | ] | ||
11667 | edge | ||
11668 | [ | ||
11669 | source 8 | ||
11670 | target 9 | ||
11671 | graphics | ||
11672 | [ | ||
11673 | fill "#000000" | ||
11674 | width 3 | ||
11675 | targetArrow "standard" | ||
11676 | ] | ||
11677 | LabelGraphics | ||
11678 | [ | ||
11679 | text "terminator reference FunctionalData" | ||
11680 | fontSize 14 | ||
11681 | fontName "Consolas" | ||
11682 | configuration "AutoFlippingLabel" | ||
11683 | model "six_pos" | ||
11684 | position "thead" | ||
11685 | ] | ||
11686 | ] | ||
11687 | edge | ||
11688 | [ | ||
11689 | source 8 | ||
11690 | target 7 | ||
11691 | graphics | ||
11692 | [ | ||
11693 | fill "#000000" | ||
11694 | targetArrow "standard" | ||
11695 | ] | ||
11696 | LabelGraphics | ||
11697 | [ | ||
11698 | text "interface reference FunctionalData" | ||
11699 | fontSize 14 | ||
11700 | fontName "Consolas" | ||
11701 | configuration "AutoFlippingLabel" | ||
11702 | model "six_pos" | ||
11703 | position "thead" | ||
11704 | ] | ||
11705 | ] | ||
11706 | edge | ||
11707 | [ | ||
11708 | source 10 | ||
11709 | target 7 | ||
11710 | graphics | ||
11711 | [ | ||
11712 | fill "#000000" | ||
11713 | targetArrow "standard" | ||
11714 | ] | ||
11715 | LabelGraphics | ||
11716 | [ | ||
11717 | text "interface reference FunctionalData" | ||
11718 | fontSize 14 | ||
11719 | fontName "Consolas" | ||
11720 | configuration "AutoFlippingLabel" | ||
11721 | model "six_pos" | ||
11722 | position "thead" | ||
11723 | ] | ||
11724 | ] | ||
11725 | edge | ||
11726 | [ | ||
11727 | source 6 | ||
11728 | target 0 | ||
11729 | graphics | ||
11730 | [ | ||
11731 | fill "#000000" | ||
11732 | targetArrow "standard" | ||
11733 | ] | ||
11734 | LabelGraphics | ||
11735 | [ | ||
11736 | text "type attribute Function" | ||
11737 | fontSize 14 | ||
11738 | fontName "Consolas" | ||
11739 | configuration "AutoFlippingLabel" | ||
11740 | model "six_pos" | ||
11741 | position "thead" | ||
11742 | ] | ||
11743 | ] | ||
11744 | edge | ||
11745 | [ | ||
11746 | source 11 | ||
11747 | target 0 | ||
11748 | graphics | ||
11749 | [ | ||
11750 | fill "#000000" | ||
11751 | targetArrow "standard" | ||
11752 | ] | ||
11753 | LabelGraphics | ||
11754 | [ | ||
11755 | text "type attribute Function" | ||
11756 | fontSize 14 | ||
11757 | fontName "Consolas" | ||
11758 | configuration "AutoFlippingLabel" | ||
11759 | model "six_pos" | ||
11760 | position "thead" | ||
11761 | ] | ||
11762 | ] | ||
11763 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png index 5a2af8ba..c58be27f 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi index 4ca54850..c5049270 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/4.xmi | |||
@@ -1,11 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> | 2 | <fam:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> |
3 | <data xsi:type="fam:FunctionalInput" IncomingLinks="//@data.1/@outgoingLinks.0"/> | 3 | <rootElements xsi:type="fam:Function"/> |
4 | <data xsi:type="fam:FunctionalOutput"> | 4 | <rootElements xsi:type="fam:Function"> |
5 | <outgoingLinks to="//@data.0"/> | 5 | <interface> |
6 | </data> | 6 | <data xsi:type="fam:FunctionalOutput"/> |
7 | <data xsi:type="fam:FunctionalOutput"> | 7 | <data xsi:type="fam:FunctionalOutput"> |
8 | <terminator/> | 8 | <terminator/> |
9 | </data> | 9 | </data> |
10 | <data xsi:type="fam:FunctionalOutput"/> | 10 | </interface> |
11 | </fam:FunctionalInterface> | 11 | </rootElements> |
12 | </fam:FunctionalArchitectureModel> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml index 3a9035a7..9bbf93f7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.gml | |||
@@ -8535,3 +8535,3341 @@ graph | |||
8535 | ] | 8535 | ] |
8536 | ] | 8536 | ] |
8537 | ] | 8537 | ] |
8538 | graph | ||
8539 | [ | ||
8540 | node | ||
8541 | [ | ||
8542 | id 0 | ||
8543 | graphics | ||
8544 | [ | ||
8545 | w 226.60000000000002 | ||
8546 | h 40 | ||
8547 | type "rectangle" | ||
8548 | fill "#FFFFFF" | ||
8549 | fill2 "#FFFFFF" | ||
8550 | outline "#000000" | ||
8551 | ] | ||
8552 | LabelGraphics | ||
8553 | [ | ||
8554 | text "Root literal FunctionType" | ||
8555 | outline "#000000" | ||
8556 | fill "#FFFFFF" | ||
8557 | fontSize 16 | ||
8558 | fontName "Monospace" | ||
8559 | autoSizePolicy "node_width" | ||
8560 | anchor "t" | ||
8561 | borderDistance 0.0 | ||
8562 | ] | ||
8563 | LabelGraphics | ||
8564 | [ | ||
8565 | text " | ||
8566 | FunctionType enum | ||
8567 | " | ||
8568 | fontSize 14 | ||
8569 | fontName "Consolas" | ||
8570 | alignment "left" | ||
8571 | anchor "tl" | ||
8572 | borderDistance 6 | ||
8573 | ] | ||
8574 | ] | ||
8575 | |||
8576 | node | ||
8577 | [ | ||
8578 | id 1 | ||
8579 | graphics | ||
8580 | [ | ||
8581 | w 297.0 | ||
8582 | h 40 | ||
8583 | type "rectangle" | ||
8584 | fill "#FFFFFF" | ||
8585 | fill2 "#FFFFFF" | ||
8586 | outline "#000000" | ||
8587 | ] | ||
8588 | LabelGraphics | ||
8589 | [ | ||
8590 | text "Intermediate literal FunctionType" | ||
8591 | outline "#000000" | ||
8592 | fill "#FFFFFF" | ||
8593 | fontSize 16 | ||
8594 | fontName "Monospace" | ||
8595 | autoSizePolicy "node_width" | ||
8596 | anchor "t" | ||
8597 | borderDistance 0.0 | ||
8598 | ] | ||
8599 | LabelGraphics | ||
8600 | [ | ||
8601 | text " | ||
8602 | FunctionType enum | ||
8603 | " | ||
8604 | fontSize 14 | ||
8605 | fontName "Consolas" | ||
8606 | alignment "left" | ||
8607 | anchor "tl" | ||
8608 | borderDistance 6 | ||
8609 | ] | ||
8610 | ] | ||
8611 | |||
8612 | node | ||
8613 | [ | ||
8614 | id 2 | ||
8615 | graphics | ||
8616 | [ | ||
8617 | w 226.60000000000002 | ||
8618 | h 40 | ||
8619 | type "rectangle" | ||
8620 | fill "#FFFFFF" | ||
8621 | fill2 "#FFFFFF" | ||
8622 | outline "#000000" | ||
8623 | ] | ||
8624 | LabelGraphics | ||
8625 | [ | ||
8626 | text "Leaf literal FunctionType" | ||
8627 | outline "#000000" | ||
8628 | fill "#FFFFFF" | ||
8629 | fontSize 16 | ||
8630 | fontName "Monospace" | ||
8631 | autoSizePolicy "node_width" | ||
8632 | anchor "t" | ||
8633 | borderDistance 0.0 | ||
8634 | ] | ||
8635 | LabelGraphics | ||
8636 | [ | ||
8637 | text " | ||
8638 | FunctionType enum | ||
8639 | " | ||
8640 | fontSize 14 | ||
8641 | fontName "Consolas" | ||
8642 | alignment "left" | ||
8643 | anchor "tl" | ||
8644 | borderDistance 6 | ||
8645 | ] | ||
8646 | ] | ||
8647 | |||
8648 | node | ||
8649 | [ | ||
8650 | id 3 | ||
8651 | graphics | ||
8652 | [ | ||
8653 | w 41.800000000000004 | ||
8654 | h 26 | ||
8655 | type "rectangle" | ||
8656 | fill "#FFFFFF" | ||
8657 | fill2 "#FFFFFF" | ||
8658 | outline "#000000" | ||
8659 | ] | ||
8660 | LabelGraphics | ||
8661 | [ | ||
8662 | text "true" | ||
8663 | outline "#000000" | ||
8664 | fill "#FFFFFF" | ||
8665 | fontSize 16 | ||
8666 | fontName "Monospace" | ||
8667 | autoSizePolicy "node_width" | ||
8668 | anchor "t" | ||
8669 | borderDistance 0.0 | ||
8670 | ] | ||
8671 | LabelGraphics | ||
8672 | [ | ||
8673 | text " | ||
8674 | " | ||
8675 | fontSize 14 | ||
8676 | fontName "Consolas" | ||
8677 | alignment "left" | ||
8678 | anchor "tl" | ||
8679 | borderDistance 6 | ||
8680 | ] | ||
8681 | ] | ||
8682 | |||
8683 | node | ||
8684 | [ | ||
8685 | id 4 | ||
8686 | graphics | ||
8687 | [ | ||
8688 | w 50.6 | ||
8689 | h 26 | ||
8690 | type "rectangle" | ||
8691 | fill "#FFFFFF" | ||
8692 | fill2 "#FFFFFF" | ||
8693 | outline "#000000" | ||
8694 | ] | ||
8695 | LabelGraphics | ||
8696 | [ | ||
8697 | text "false" | ||
8698 | outline "#000000" | ||
8699 | fill "#FFFFFF" | ||
8700 | fontSize 16 | ||
8701 | fontName "Monospace" | ||
8702 | autoSizePolicy "node_width" | ||
8703 | anchor "t" | ||
8704 | borderDistance 0.0 | ||
8705 | ] | ||
8706 | LabelGraphics | ||
8707 | [ | ||
8708 | text " | ||
8709 | " | ||
8710 | fontSize 14 | ||
8711 | fontName "Consolas" | ||
8712 | alignment "left" | ||
8713 | anchor "tl" | ||
8714 | borderDistance 6 | ||
8715 | ] | ||
8716 | ] | ||
8717 | |||
8718 | node | ||
8719 | [ | ||
8720 | id 5 | ||
8721 | graphics | ||
8722 | [ | ||
8723 | w 207.9 | ||
8724 | h 40 | ||
8725 | type "rectangle" | ||
8726 | fill "#FFFFFF" | ||
8727 | fill2 "#FFFFFF" | ||
8728 | outline "#000000" | ||
8729 | ] | ||
8730 | LabelGraphics | ||
8731 | [ | ||
8732 | text "null" | ||
8733 | outline "#000000" | ||
8734 | fill "#FFFFFF" | ||
8735 | fontSize 16 | ||
8736 | fontName "Monospace" | ||
8737 | autoSizePolicy "node_width" | ||
8738 | anchor "t" | ||
8739 | borderDistance 0.0 | ||
8740 | ] | ||
8741 | LabelGraphics | ||
8742 | [ | ||
8743 | text " | ||
8744 | FunctionalInterface class | ||
8745 | " | ||
8746 | fontSize 14 | ||
8747 | fontName "Consolas" | ||
8748 | alignment "left" | ||
8749 | anchor "tl" | ||
8750 | borderDistance 6 | ||
8751 | ] | ||
8752 | ] | ||
8753 | |||
8754 | node | ||
8755 | [ | ||
8756 | id 6 | ||
8757 | graphics | ||
8758 | [ | ||
8759 | w 184.8 | ||
8760 | h 54 | ||
8761 | type "rectangle" | ||
8762 | fill "#FFFFFF" | ||
8763 | fill2 "#FFFFFF" | ||
8764 | outline "#000000" | ||
8765 | ] | ||
8766 | LabelGraphics | ||
8767 | [ | ||
8768 | text "null" | ||
8769 | outline "#000000" | ||
8770 | fill "#FFFFFF" | ||
8771 | fontSize 16 | ||
8772 | fontName "Monospace" | ||
8773 | autoSizePolicy "node_width" | ||
8774 | anchor "t" | ||
8775 | borderDistance 0.0 | ||
8776 | ] | ||
8777 | LabelGraphics | ||
8778 | [ | ||
8779 | text " | ||
8780 | FunctionalOutput class | ||
8781 | FunctionalData class | ||
8782 | " | ||
8783 | fontSize 14 | ||
8784 | fontName "Consolas" | ||
8785 | alignment "left" | ||
8786 | anchor "tl" | ||
8787 | borderDistance 6 | ||
8788 | ] | ||
8789 | ] | ||
8790 | |||
8791 | node | ||
8792 | [ | ||
8793 | id 7 | ||
8794 | graphics | ||
8795 | [ | ||
8796 | w 177.10000000000002 | ||
8797 | h 54 | ||
8798 | type "rectangle" | ||
8799 | fill "#FFFFFF" | ||
8800 | fill2 "#FFFFFF" | ||
8801 | outline "#000000" | ||
8802 | ] | ||
8803 | LabelGraphics | ||
8804 | [ | ||
8805 | text "null" | ||
8806 | outline "#000000" | ||
8807 | fill "#FFFFFF" | ||
8808 | fontSize 16 | ||
8809 | fontName "Monospace" | ||
8810 | autoSizePolicy "node_width" | ||
8811 | anchor "t" | ||
8812 | borderDistance 0.0 | ||
8813 | ] | ||
8814 | LabelGraphics | ||
8815 | [ | ||
8816 | text " | ||
8817 | FunctionalInput class | ||
8818 | FunctionalData class | ||
8819 | " | ||
8820 | fontSize 14 | ||
8821 | fontName "Consolas" | ||
8822 | alignment "left" | ||
8823 | anchor "tl" | ||
8824 | borderDistance 6 | ||
8825 | ] | ||
8826 | ] | ||
8827 | |||
8828 | node | ||
8829 | [ | ||
8830 | id 8 | ||
8831 | graphics | ||
8832 | [ | ||
8833 | w 161.70000000000002 | ||
8834 | h 40 | ||
8835 | type "rectangle" | ||
8836 | fill "#FFFFFF" | ||
8837 | fill2 "#FFFFFF" | ||
8838 | outline "#000000" | ||
8839 | ] | ||
8840 | LabelGraphics | ||
8841 | [ | ||
8842 | text "null" | ||
8843 | outline "#000000" | ||
8844 | fill "#FFFFFF" | ||
8845 | fontSize 16 | ||
8846 | fontName "Monospace" | ||
8847 | autoSizePolicy "node_width" | ||
8848 | anchor "t" | ||
8849 | borderDistance 0.0 | ||
8850 | ] | ||
8851 | LabelGraphics | ||
8852 | [ | ||
8853 | text " | ||
8854 | FAMTerminator class | ||
8855 | " | ||
8856 | fontSize 14 | ||
8857 | fontName "Consolas" | ||
8858 | alignment "left" | ||
8859 | anchor "tl" | ||
8860 | borderDistance 6 | ||
8861 | ] | ||
8862 | ] | ||
8863 | |||
8864 | node | ||
8865 | [ | ||
8866 | id 9 | ||
8867 | graphics | ||
8868 | [ | ||
8869 | w 184.8 | ||
8870 | h 54 | ||
8871 | type "rectangle" | ||
8872 | fill "#FFFFFF" | ||
8873 | fill2 "#FFFFFF" | ||
8874 | outline "#000000" | ||
8875 | ] | ||
8876 | LabelGraphics | ||
8877 | [ | ||
8878 | text "null" | ||
8879 | outline "#000000" | ||
8880 | fill "#FFFFFF" | ||
8881 | fontSize 16 | ||
8882 | fontName "Monospace" | ||
8883 | autoSizePolicy "node_width" | ||
8884 | anchor "t" | ||
8885 | borderDistance 0.0 | ||
8886 | ] | ||
8887 | LabelGraphics | ||
8888 | [ | ||
8889 | text " | ||
8890 | FunctionalOutput class | ||
8891 | FunctionalData class | ||
8892 | " | ||
8893 | fontSize 14 | ||
8894 | fontName "Consolas" | ||
8895 | alignment "left" | ||
8896 | anchor "tl" | ||
8897 | borderDistance 6 | ||
8898 | ] | ||
8899 | ] | ||
8900 | |||
8901 | node | ||
8902 | [ | ||
8903 | id 10 | ||
8904 | graphics | ||
8905 | [ | ||
8906 | w 184.8 | ||
8907 | h 54 | ||
8908 | type "rectangle" | ||
8909 | fill "#FFFFFF" | ||
8910 | fill2 "#FFFFFF" | ||
8911 | outline "#000000" | ||
8912 | ] | ||
8913 | LabelGraphics | ||
8914 | [ | ||
8915 | text "null" | ||
8916 | outline "#000000" | ||
8917 | fill "#FFFFFF" | ||
8918 | fontSize 16 | ||
8919 | fontName "Monospace" | ||
8920 | autoSizePolicy "node_width" | ||
8921 | anchor "t" | ||
8922 | borderDistance 0.0 | ||
8923 | ] | ||
8924 | LabelGraphics | ||
8925 | [ | ||
8926 | text " | ||
8927 | FunctionalOutput class | ||
8928 | FunctionalData class | ||
8929 | " | ||
8930 | fontSize 14 | ||
8931 | fontName "Consolas" | ||
8932 | alignment "left" | ||
8933 | anchor "tl" | ||
8934 | borderDistance 6 | ||
8935 | ] | ||
8936 | ] | ||
8937 | |||
8938 | node | ||
8939 | [ | ||
8940 | id 11 | ||
8941 | graphics | ||
8942 | [ | ||
8943 | w 184.8 | ||
8944 | h 54 | ||
8945 | type "rectangle" | ||
8946 | fill "#FFFFFF" | ||
8947 | fill2 "#FFFFFF" | ||
8948 | outline "#000000" | ||
8949 | ] | ||
8950 | LabelGraphics | ||
8951 | [ | ||
8952 | text "null" | ||
8953 | outline "#000000" | ||
8954 | fill "#FFFFFF" | ||
8955 | fontSize 16 | ||
8956 | fontName "Monospace" | ||
8957 | autoSizePolicy "node_width" | ||
8958 | anchor "t" | ||
8959 | borderDistance 0.0 | ||
8960 | ] | ||
8961 | LabelGraphics | ||
8962 | [ | ||
8963 | text " | ||
8964 | FunctionalOutput class | ||
8965 | FunctionalData class | ||
8966 | " | ||
8967 | fontSize 14 | ||
8968 | fontName "Consolas" | ||
8969 | alignment "left" | ||
8970 | anchor "tl" | ||
8971 | borderDistance 6 | ||
8972 | ] | ||
8973 | ] | ||
8974 | |||
8975 | node | ||
8976 | [ | ||
8977 | id 12 | ||
8978 | graphics | ||
8979 | [ | ||
8980 | w 112.2 | ||
8981 | h 26 | ||
8982 | type "rectangle" | ||
8983 | fill "#FFFFFF" | ||
8984 | fill2 "#FFFFFF" | ||
8985 | outline "#000000" | ||
8986 | ] | ||
8987 | LabelGraphics | ||
8988 | [ | ||
8989 | text "New Integers" | ||
8990 | outline "#000000" | ||
8991 | fill "#FFFFFF" | ||
8992 | fontSize 16 | ||
8993 | fontName "Monospace" | ||
8994 | autoSizePolicy "node_width" | ||
8995 | anchor "t" | ||
8996 | borderDistance 0.0 | ||
8997 | ] | ||
8998 | LabelGraphics | ||
8999 | [ | ||
9000 | text " | ||
9001 | " | ||
9002 | fontSize 14 | ||
9003 | fontName "Consolas" | ||
9004 | alignment "left" | ||
9005 | anchor "tl" | ||
9006 | borderDistance 6 | ||
9007 | ] | ||
9008 | ] | ||
9009 | |||
9010 | node | ||
9011 | [ | ||
9012 | id 13 | ||
9013 | graphics | ||
9014 | [ | ||
9015 | w 85.80000000000001 | ||
9016 | h 26 | ||
9017 | type "rectangle" | ||
9018 | fill "#FFFFFF" | ||
9019 | fill2 "#FFFFFF" | ||
9020 | outline "#000000" | ||
9021 | ] | ||
9022 | LabelGraphics | ||
9023 | [ | ||
9024 | text "New Reals" | ||
9025 | outline "#000000" | ||
9026 | fill "#FFFFFF" | ||
9027 | fontSize 16 | ||
9028 | fontName "Monospace" | ||
9029 | autoSizePolicy "node_width" | ||
9030 | anchor "t" | ||
9031 | borderDistance 0.0 | ||
9032 | ] | ||
9033 | LabelGraphics | ||
9034 | [ | ||
9035 | text " | ||
9036 | " | ||
9037 | fontSize 14 | ||
9038 | fontName "Consolas" | ||
9039 | alignment "left" | ||
9040 | anchor "tl" | ||
9041 | borderDistance 6 | ||
9042 | ] | ||
9043 | ] | ||
9044 | |||
9045 | node | ||
9046 | [ | ||
9047 | id 14 | ||
9048 | graphics | ||
9049 | [ | ||
9050 | w 103.4 | ||
9051 | h 26 | ||
9052 | type "rectangle" | ||
9053 | fill "#FFFFFF" | ||
9054 | fill2 "#FFFFFF" | ||
9055 | outline "#000000" | ||
9056 | ] | ||
9057 | LabelGraphics | ||
9058 | [ | ||
9059 | text "New Strings" | ||
9060 | outline "#000000" | ||
9061 | fill "#FFFFFF" | ||
9062 | fontSize 16 | ||
9063 | fontName "Monospace" | ||
9064 | autoSizePolicy "node_width" | ||
9065 | anchor "t" | ||
9066 | borderDistance 0.0 | ||
9067 | ] | ||
9068 | LabelGraphics | ||
9069 | [ | ||
9070 | text " | ||
9071 | " | ||
9072 | fontSize 14 | ||
9073 | fontName "Consolas" | ||
9074 | alignment "left" | ||
9075 | anchor "tl" | ||
9076 | borderDistance 6 | ||
9077 | ] | ||
9078 | ] | ||
9079 | |||
9080 | node | ||
9081 | [ | ||
9082 | id 15 | ||
9083 | graphics | ||
9084 | [ | ||
9085 | w 103.4 | ||
9086 | h 26 | ||
9087 | type "rectangle" | ||
9088 | fill "#FFFFFF" | ||
9089 | fill2 "#FFFFFF" | ||
9090 | outline "#000000" | ||
9091 | ] | ||
9092 | LabelGraphics | ||
9093 | [ | ||
9094 | text "New Objects" | ||
9095 | outline "#000000" | ||
9096 | fill "#FFFFFF" | ||
9097 | fontSize 16 | ||
9098 | fontName "Monospace" | ||
9099 | autoSizePolicy "node_width" | ||
9100 | anchor "t" | ||
9101 | borderDistance 0.0 | ||
9102 | ] | ||
9103 | LabelGraphics | ||
9104 | [ | ||
9105 | text " | ||
9106 | " | ||
9107 | fontSize 14 | ||
9108 | fontName "Consolas" | ||
9109 | alignment "left" | ||
9110 | anchor "tl" | ||
9111 | borderDistance 6 | ||
9112 | ] | ||
9113 | ] | ||
9114 | edge | ||
9115 | [ | ||
9116 | source 8 | ||
9117 | target 6 | ||
9118 | graphics | ||
9119 | [ | ||
9120 | fill "#000000" | ||
9121 | targetArrow "standard" | ||
9122 | ] | ||
9123 | LabelGraphics | ||
9124 | [ | ||
9125 | text "data reference FAMTerminator" | ||
9126 | fontSize 14 | ||
9127 | fontName "Consolas" | ||
9128 | configuration "AutoFlippingLabel" | ||
9129 | model "six_pos" | ||
9130 | position "thead" | ||
9131 | ] | ||
9132 | ] | ||
9133 | edge | ||
9134 | [ | ||
9135 | source 5 | ||
9136 | target 6 | ||
9137 | graphics | ||
9138 | [ | ||
9139 | fill "#000000" | ||
9140 | width 3 | ||
9141 | targetArrow "standard" | ||
9142 | ] | ||
9143 | LabelGraphics | ||
9144 | [ | ||
9145 | text "data reference FunctionalInterface" | ||
9146 | fontSize 14 | ||
9147 | fontName "Consolas" | ||
9148 | configuration "AutoFlippingLabel" | ||
9149 | model "six_pos" | ||
9150 | position "thead" | ||
9151 | ] | ||
9152 | ] | ||
9153 | edge | ||
9154 | [ | ||
9155 | source 5 | ||
9156 | target 7 | ||
9157 | graphics | ||
9158 | [ | ||
9159 | fill "#000000" | ||
9160 | width 3 | ||
9161 | targetArrow "standard" | ||
9162 | ] | ||
9163 | LabelGraphics | ||
9164 | [ | ||
9165 | text "data reference FunctionalInterface" | ||
9166 | fontSize 14 | ||
9167 | fontName "Consolas" | ||
9168 | configuration "AutoFlippingLabel" | ||
9169 | model "six_pos" | ||
9170 | position "thead" | ||
9171 | ] | ||
9172 | ] | ||
9173 | edge | ||
9174 | [ | ||
9175 | source 5 | ||
9176 | target 9 | ||
9177 | graphics | ||
9178 | [ | ||
9179 | fill "#000000" | ||
9180 | width 3 | ||
9181 | targetArrow "standard" | ||
9182 | ] | ||
9183 | LabelGraphics | ||
9184 | [ | ||
9185 | text "data reference FunctionalInterface" | ||
9186 | fontSize 14 | ||
9187 | fontName "Consolas" | ||
9188 | configuration "AutoFlippingLabel" | ||
9189 | model "six_pos" | ||
9190 | position "thead" | ||
9191 | ] | ||
9192 | ] | ||
9193 | edge | ||
9194 | [ | ||
9195 | source 5 | ||
9196 | target 10 | ||
9197 | graphics | ||
9198 | [ | ||
9199 | fill "#000000" | ||
9200 | width 3 | ||
9201 | targetArrow "standard" | ||
9202 | ] | ||
9203 | LabelGraphics | ||
9204 | [ | ||
9205 | text "data reference FunctionalInterface" | ||
9206 | fontSize 14 | ||
9207 | fontName "Consolas" | ||
9208 | configuration "AutoFlippingLabel" | ||
9209 | model "six_pos" | ||
9210 | position "thead" | ||
9211 | ] | ||
9212 | ] | ||
9213 | edge | ||
9214 | [ | ||
9215 | source 5 | ||
9216 | target 11 | ||
9217 | graphics | ||
9218 | [ | ||
9219 | fill "#000000" | ||
9220 | width 3 | ||
9221 | targetArrow "standard" | ||
9222 | ] | ||
9223 | LabelGraphics | ||
9224 | [ | ||
9225 | text "data reference FunctionalInterface" | ||
9226 | fontSize 14 | ||
9227 | fontName "Consolas" | ||
9228 | configuration "AutoFlippingLabel" | ||
9229 | model "six_pos" | ||
9230 | position "thead" | ||
9231 | ] | ||
9232 | ] | ||
9233 | edge | ||
9234 | [ | ||
9235 | source 6 | ||
9236 | target 8 | ||
9237 | graphics | ||
9238 | [ | ||
9239 | fill "#000000" | ||
9240 | width 3 | ||
9241 | targetArrow "standard" | ||
9242 | ] | ||
9243 | LabelGraphics | ||
9244 | [ | ||
9245 | text "terminator reference FunctionalData" | ||
9246 | fontSize 14 | ||
9247 | fontName "Consolas" | ||
9248 | configuration "AutoFlippingLabel" | ||
9249 | model "six_pos" | ||
9250 | position "thead" | ||
9251 | ] | ||
9252 | ] | ||
9253 | edge | ||
9254 | [ | ||
9255 | source 6 | ||
9256 | target 5 | ||
9257 | graphics | ||
9258 | [ | ||
9259 | fill "#000000" | ||
9260 | targetArrow "standard" | ||
9261 | ] | ||
9262 | LabelGraphics | ||
9263 | [ | ||
9264 | text "interface reference FunctionalData" | ||
9265 | fontSize 14 | ||
9266 | fontName "Consolas" | ||
9267 | configuration "AutoFlippingLabel" | ||
9268 | model "six_pos" | ||
9269 | position "thead" | ||
9270 | ] | ||
9271 | ] | ||
9272 | edge | ||
9273 | [ | ||
9274 | source 7 | ||
9275 | target 5 | ||
9276 | graphics | ||
9277 | [ | ||
9278 | fill "#000000" | ||
9279 | targetArrow "standard" | ||
9280 | ] | ||
9281 | LabelGraphics | ||
9282 | [ | ||
9283 | text "interface reference FunctionalData" | ||
9284 | fontSize 14 | ||
9285 | fontName "Consolas" | ||
9286 | configuration "AutoFlippingLabel" | ||
9287 | model "six_pos" | ||
9288 | position "thead" | ||
9289 | ] | ||
9290 | ] | ||
9291 | edge | ||
9292 | [ | ||
9293 | source 9 | ||
9294 | target 5 | ||
9295 | graphics | ||
9296 | [ | ||
9297 | fill "#000000" | ||
9298 | targetArrow "standard" | ||
9299 | ] | ||
9300 | LabelGraphics | ||
9301 | [ | ||
9302 | text "interface reference FunctionalData" | ||
9303 | fontSize 14 | ||
9304 | fontName "Consolas" | ||
9305 | configuration "AutoFlippingLabel" | ||
9306 | model "six_pos" | ||
9307 | position "thead" | ||
9308 | ] | ||
9309 | ] | ||
9310 | edge | ||
9311 | [ | ||
9312 | source 10 | ||
9313 | target 5 | ||
9314 | graphics | ||
9315 | [ | ||
9316 | fill "#000000" | ||
9317 | targetArrow "standard" | ||
9318 | ] | ||
9319 | LabelGraphics | ||
9320 | [ | ||
9321 | text "interface reference FunctionalData" | ||
9322 | fontSize 14 | ||
9323 | fontName "Consolas" | ||
9324 | configuration "AutoFlippingLabel" | ||
9325 | model "six_pos" | ||
9326 | position "thead" | ||
9327 | ] | ||
9328 | ] | ||
9329 | edge | ||
9330 | [ | ||
9331 | source 11 | ||
9332 | target 5 | ||
9333 | graphics | ||
9334 | [ | ||
9335 | fill "#000000" | ||
9336 | targetArrow "standard" | ||
9337 | ] | ||
9338 | LabelGraphics | ||
9339 | [ | ||
9340 | text "interface reference FunctionalData" | ||
9341 | fontSize 14 | ||
9342 | fontName "Consolas" | ||
9343 | configuration "AutoFlippingLabel" | ||
9344 | model "six_pos" | ||
9345 | position "thead" | ||
9346 | ] | ||
9347 | ] | ||
9348 | ] | ||
9349 | graph | ||
9350 | [ | ||
9351 | node | ||
9352 | [ | ||
9353 | id 0 | ||
9354 | graphics | ||
9355 | [ | ||
9356 | w 226.60000000000002 | ||
9357 | h 40 | ||
9358 | type "rectangle" | ||
9359 | fill "#FFFFFF" | ||
9360 | fill2 "#FFFFFF" | ||
9361 | outline "#000000" | ||
9362 | ] | ||
9363 | LabelGraphics | ||
9364 | [ | ||
9365 | text "Root literal FunctionType" | ||
9366 | outline "#000000" | ||
9367 | fill "#FFFFFF" | ||
9368 | fontSize 16 | ||
9369 | fontName "Monospace" | ||
9370 | autoSizePolicy "node_width" | ||
9371 | anchor "t" | ||
9372 | borderDistance 0.0 | ||
9373 | ] | ||
9374 | LabelGraphics | ||
9375 | [ | ||
9376 | text " | ||
9377 | FunctionType enum | ||
9378 | " | ||
9379 | fontSize 14 | ||
9380 | fontName "Consolas" | ||
9381 | alignment "left" | ||
9382 | anchor "tl" | ||
9383 | borderDistance 6 | ||
9384 | ] | ||
9385 | ] | ||
9386 | |||
9387 | node | ||
9388 | [ | ||
9389 | id 1 | ||
9390 | graphics | ||
9391 | [ | ||
9392 | w 297.0 | ||
9393 | h 40 | ||
9394 | type "rectangle" | ||
9395 | fill "#FFFFFF" | ||
9396 | fill2 "#FFFFFF" | ||
9397 | outline "#000000" | ||
9398 | ] | ||
9399 | LabelGraphics | ||
9400 | [ | ||
9401 | text "Intermediate literal FunctionType" | ||
9402 | outline "#000000" | ||
9403 | fill "#FFFFFF" | ||
9404 | fontSize 16 | ||
9405 | fontName "Monospace" | ||
9406 | autoSizePolicy "node_width" | ||
9407 | anchor "t" | ||
9408 | borderDistance 0.0 | ||
9409 | ] | ||
9410 | LabelGraphics | ||
9411 | [ | ||
9412 | text " | ||
9413 | FunctionType enum | ||
9414 | " | ||
9415 | fontSize 14 | ||
9416 | fontName "Consolas" | ||
9417 | alignment "left" | ||
9418 | anchor "tl" | ||
9419 | borderDistance 6 | ||
9420 | ] | ||
9421 | ] | ||
9422 | |||
9423 | node | ||
9424 | [ | ||
9425 | id 2 | ||
9426 | graphics | ||
9427 | [ | ||
9428 | w 226.60000000000002 | ||
9429 | h 40 | ||
9430 | type "rectangle" | ||
9431 | fill "#FFFFFF" | ||
9432 | fill2 "#FFFFFF" | ||
9433 | outline "#000000" | ||
9434 | ] | ||
9435 | LabelGraphics | ||
9436 | [ | ||
9437 | text "Leaf literal FunctionType" | ||
9438 | outline "#000000" | ||
9439 | fill "#FFFFFF" | ||
9440 | fontSize 16 | ||
9441 | fontName "Monospace" | ||
9442 | autoSizePolicy "node_width" | ||
9443 | anchor "t" | ||
9444 | borderDistance 0.0 | ||
9445 | ] | ||
9446 | LabelGraphics | ||
9447 | [ | ||
9448 | text " | ||
9449 | FunctionType enum | ||
9450 | " | ||
9451 | fontSize 14 | ||
9452 | fontName "Consolas" | ||
9453 | alignment "left" | ||
9454 | anchor "tl" | ||
9455 | borderDistance 6 | ||
9456 | ] | ||
9457 | ] | ||
9458 | |||
9459 | node | ||
9460 | [ | ||
9461 | id 3 | ||
9462 | graphics | ||
9463 | [ | ||
9464 | w 41.800000000000004 | ||
9465 | h 26 | ||
9466 | type "rectangle" | ||
9467 | fill "#FFFFFF" | ||
9468 | fill2 "#FFFFFF" | ||
9469 | outline "#000000" | ||
9470 | ] | ||
9471 | LabelGraphics | ||
9472 | [ | ||
9473 | text "true" | ||
9474 | outline "#000000" | ||
9475 | fill "#FFFFFF" | ||
9476 | fontSize 16 | ||
9477 | fontName "Monospace" | ||
9478 | autoSizePolicy "node_width" | ||
9479 | anchor "t" | ||
9480 | borderDistance 0.0 | ||
9481 | ] | ||
9482 | LabelGraphics | ||
9483 | [ | ||
9484 | text " | ||
9485 | " | ||
9486 | fontSize 14 | ||
9487 | fontName "Consolas" | ||
9488 | alignment "left" | ||
9489 | anchor "tl" | ||
9490 | borderDistance 6 | ||
9491 | ] | ||
9492 | ] | ||
9493 | |||
9494 | node | ||
9495 | [ | ||
9496 | id 4 | ||
9497 | graphics | ||
9498 | [ | ||
9499 | w 50.6 | ||
9500 | h 26 | ||
9501 | type "rectangle" | ||
9502 | fill "#FFFFFF" | ||
9503 | fill2 "#FFFFFF" | ||
9504 | outline "#000000" | ||
9505 | ] | ||
9506 | LabelGraphics | ||
9507 | [ | ||
9508 | text "false" | ||
9509 | outline "#000000" | ||
9510 | fill "#FFFFFF" | ||
9511 | fontSize 16 | ||
9512 | fontName "Monospace" | ||
9513 | autoSizePolicy "node_width" | ||
9514 | anchor "t" | ||
9515 | borderDistance 0.0 | ||
9516 | ] | ||
9517 | LabelGraphics | ||
9518 | [ | ||
9519 | text " | ||
9520 | " | ||
9521 | fontSize 14 | ||
9522 | fontName "Consolas" | ||
9523 | alignment "left" | ||
9524 | anchor "tl" | ||
9525 | borderDistance 6 | ||
9526 | ] | ||
9527 | ] | ||
9528 | |||
9529 | node | ||
9530 | [ | ||
9531 | id 5 | ||
9532 | graphics | ||
9533 | [ | ||
9534 | w 207.9 | ||
9535 | h 40 | ||
9536 | type "rectangle" | ||
9537 | fill "#FFFFFF" | ||
9538 | fill2 "#FFFFFF" | ||
9539 | outline "#000000" | ||
9540 | ] | ||
9541 | LabelGraphics | ||
9542 | [ | ||
9543 | text "null" | ||
9544 | outline "#000000" | ||
9545 | fill "#FFFFFF" | ||
9546 | fontSize 16 | ||
9547 | fontName "Monospace" | ||
9548 | autoSizePolicy "node_width" | ||
9549 | anchor "t" | ||
9550 | borderDistance 0.0 | ||
9551 | ] | ||
9552 | LabelGraphics | ||
9553 | [ | ||
9554 | text " | ||
9555 | FunctionalInterface class | ||
9556 | " | ||
9557 | fontSize 14 | ||
9558 | fontName "Consolas" | ||
9559 | alignment "left" | ||
9560 | anchor "tl" | ||
9561 | borderDistance 6 | ||
9562 | ] | ||
9563 | ] | ||
9564 | |||
9565 | node | ||
9566 | [ | ||
9567 | id 6 | ||
9568 | graphics | ||
9569 | [ | ||
9570 | w 177.10000000000002 | ||
9571 | h 54 | ||
9572 | type "rectangle" | ||
9573 | fill "#FFFFFF" | ||
9574 | fill2 "#FFFFFF" | ||
9575 | outline "#000000" | ||
9576 | ] | ||
9577 | LabelGraphics | ||
9578 | [ | ||
9579 | text "null" | ||
9580 | outline "#000000" | ||
9581 | fill "#FFFFFF" | ||
9582 | fontSize 16 | ||
9583 | fontName "Monospace" | ||
9584 | autoSizePolicy "node_width" | ||
9585 | anchor "t" | ||
9586 | borderDistance 0.0 | ||
9587 | ] | ||
9588 | LabelGraphics | ||
9589 | [ | ||
9590 | text " | ||
9591 | FunctionalInput class | ||
9592 | FunctionalData class | ||
9593 | " | ||
9594 | fontSize 14 | ||
9595 | fontName "Consolas" | ||
9596 | alignment "left" | ||
9597 | anchor "tl" | ||
9598 | borderDistance 6 | ||
9599 | ] | ||
9600 | ] | ||
9601 | |||
9602 | node | ||
9603 | [ | ||
9604 | id 7 | ||
9605 | graphics | ||
9606 | [ | ||
9607 | w 177.10000000000002 | ||
9608 | h 54 | ||
9609 | type "rectangle" | ||
9610 | fill "#FFFFFF" | ||
9611 | fill2 "#FFFFFF" | ||
9612 | outline "#000000" | ||
9613 | ] | ||
9614 | LabelGraphics | ||
9615 | [ | ||
9616 | text "null" | ||
9617 | outline "#000000" | ||
9618 | fill "#FFFFFF" | ||
9619 | fontSize 16 | ||
9620 | fontName "Monospace" | ||
9621 | autoSizePolicy "node_width" | ||
9622 | anchor "t" | ||
9623 | borderDistance 0.0 | ||
9624 | ] | ||
9625 | LabelGraphics | ||
9626 | [ | ||
9627 | text " | ||
9628 | FunctionalInput class | ||
9629 | FunctionalData class | ||
9630 | " | ||
9631 | fontSize 14 | ||
9632 | fontName "Consolas" | ||
9633 | alignment "left" | ||
9634 | anchor "tl" | ||
9635 | borderDistance 6 | ||
9636 | ] | ||
9637 | ] | ||
9638 | |||
9639 | node | ||
9640 | [ | ||
9641 | id 8 | ||
9642 | graphics | ||
9643 | [ | ||
9644 | w 177.10000000000002 | ||
9645 | h 54 | ||
9646 | type "rectangle" | ||
9647 | fill "#FFFFFF" | ||
9648 | fill2 "#FFFFFF" | ||
9649 | outline "#000000" | ||
9650 | ] | ||
9651 | LabelGraphics | ||
9652 | [ | ||
9653 | text "null" | ||
9654 | outline "#000000" | ||
9655 | fill "#FFFFFF" | ||
9656 | fontSize 16 | ||
9657 | fontName "Monospace" | ||
9658 | autoSizePolicy "node_width" | ||
9659 | anchor "t" | ||
9660 | borderDistance 0.0 | ||
9661 | ] | ||
9662 | LabelGraphics | ||
9663 | [ | ||
9664 | text " | ||
9665 | FunctionalInput class | ||
9666 | FunctionalData class | ||
9667 | " | ||
9668 | fontSize 14 | ||
9669 | fontName "Consolas" | ||
9670 | alignment "left" | ||
9671 | anchor "tl" | ||
9672 | borderDistance 6 | ||
9673 | ] | ||
9674 | ] | ||
9675 | |||
9676 | node | ||
9677 | [ | ||
9678 | id 9 | ||
9679 | graphics | ||
9680 | [ | ||
9681 | w 161.70000000000002 | ||
9682 | h 40 | ||
9683 | type "rectangle" | ||
9684 | fill "#FFFFFF" | ||
9685 | fill2 "#FFFFFF" | ||
9686 | outline "#000000" | ||
9687 | ] | ||
9688 | LabelGraphics | ||
9689 | [ | ||
9690 | text "null" | ||
9691 | outline "#000000" | ||
9692 | fill "#FFFFFF" | ||
9693 | fontSize 16 | ||
9694 | fontName "Monospace" | ||
9695 | autoSizePolicy "node_width" | ||
9696 | anchor "t" | ||
9697 | borderDistance 0.0 | ||
9698 | ] | ||
9699 | LabelGraphics | ||
9700 | [ | ||
9701 | text " | ||
9702 | FAMTerminator class | ||
9703 | " | ||
9704 | fontSize 14 | ||
9705 | fontName "Consolas" | ||
9706 | alignment "left" | ||
9707 | anchor "tl" | ||
9708 | borderDistance 6 | ||
9709 | ] | ||
9710 | ] | ||
9711 | |||
9712 | node | ||
9713 | [ | ||
9714 | id 10 | ||
9715 | graphics | ||
9716 | [ | ||
9717 | w 177.10000000000002 | ||
9718 | h 54 | ||
9719 | type "rectangle" | ||
9720 | fill "#FFFFFF" | ||
9721 | fill2 "#FFFFFF" | ||
9722 | outline "#000000" | ||
9723 | ] | ||
9724 | LabelGraphics | ||
9725 | [ | ||
9726 | text "null" | ||
9727 | outline "#000000" | ||
9728 | fill "#FFFFFF" | ||
9729 | fontSize 16 | ||
9730 | fontName "Monospace" | ||
9731 | autoSizePolicy "node_width" | ||
9732 | anchor "t" | ||
9733 | borderDistance 0.0 | ||
9734 | ] | ||
9735 | LabelGraphics | ||
9736 | [ | ||
9737 | text " | ||
9738 | FunctionalInput class | ||
9739 | FunctionalData class | ||
9740 | " | ||
9741 | fontSize 14 | ||
9742 | fontName "Consolas" | ||
9743 | alignment "left" | ||
9744 | anchor "tl" | ||
9745 | borderDistance 6 | ||
9746 | ] | ||
9747 | ] | ||
9748 | |||
9749 | node | ||
9750 | [ | ||
9751 | id 11 | ||
9752 | graphics | ||
9753 | [ | ||
9754 | w 184.8 | ||
9755 | h 54 | ||
9756 | type "rectangle" | ||
9757 | fill "#FFFFFF" | ||
9758 | fill2 "#FFFFFF" | ||
9759 | outline "#000000" | ||
9760 | ] | ||
9761 | LabelGraphics | ||
9762 | [ | ||
9763 | text "null" | ||
9764 | outline "#000000" | ||
9765 | fill "#FFFFFF" | ||
9766 | fontSize 16 | ||
9767 | fontName "Monospace" | ||
9768 | autoSizePolicy "node_width" | ||
9769 | anchor "t" | ||
9770 | borderDistance 0.0 | ||
9771 | ] | ||
9772 | LabelGraphics | ||
9773 | [ | ||
9774 | text " | ||
9775 | FunctionalOutput class | ||
9776 | FunctionalData class | ||
9777 | " | ||
9778 | fontSize 14 | ||
9779 | fontName "Consolas" | ||
9780 | alignment "left" | ||
9781 | anchor "tl" | ||
9782 | borderDistance 6 | ||
9783 | ] | ||
9784 | ] | ||
9785 | |||
9786 | node | ||
9787 | [ | ||
9788 | id 12 | ||
9789 | graphics | ||
9790 | [ | ||
9791 | w 112.2 | ||
9792 | h 26 | ||
9793 | type "rectangle" | ||
9794 | fill "#FFFFFF" | ||
9795 | fill2 "#FFFFFF" | ||
9796 | outline "#000000" | ||
9797 | ] | ||
9798 | LabelGraphics | ||
9799 | [ | ||
9800 | text "New Integers" | ||
9801 | outline "#000000" | ||
9802 | fill "#FFFFFF" | ||
9803 | fontSize 16 | ||
9804 | fontName "Monospace" | ||
9805 | autoSizePolicy "node_width" | ||
9806 | anchor "t" | ||
9807 | borderDistance 0.0 | ||
9808 | ] | ||
9809 | LabelGraphics | ||
9810 | [ | ||
9811 | text " | ||
9812 | " | ||
9813 | fontSize 14 | ||
9814 | fontName "Consolas" | ||
9815 | alignment "left" | ||
9816 | anchor "tl" | ||
9817 | borderDistance 6 | ||
9818 | ] | ||
9819 | ] | ||
9820 | |||
9821 | node | ||
9822 | [ | ||
9823 | id 13 | ||
9824 | graphics | ||
9825 | [ | ||
9826 | w 85.80000000000001 | ||
9827 | h 26 | ||
9828 | type "rectangle" | ||
9829 | fill "#FFFFFF" | ||
9830 | fill2 "#FFFFFF" | ||
9831 | outline "#000000" | ||
9832 | ] | ||
9833 | LabelGraphics | ||
9834 | [ | ||
9835 | text "New Reals" | ||
9836 | outline "#000000" | ||
9837 | fill "#FFFFFF" | ||
9838 | fontSize 16 | ||
9839 | fontName "Monospace" | ||
9840 | autoSizePolicy "node_width" | ||
9841 | anchor "t" | ||
9842 | borderDistance 0.0 | ||
9843 | ] | ||
9844 | LabelGraphics | ||
9845 | [ | ||
9846 | text " | ||
9847 | " | ||
9848 | fontSize 14 | ||
9849 | fontName "Consolas" | ||
9850 | alignment "left" | ||
9851 | anchor "tl" | ||
9852 | borderDistance 6 | ||
9853 | ] | ||
9854 | ] | ||
9855 | |||
9856 | node | ||
9857 | [ | ||
9858 | id 14 | ||
9859 | graphics | ||
9860 | [ | ||
9861 | w 103.4 | ||
9862 | h 26 | ||
9863 | type "rectangle" | ||
9864 | fill "#FFFFFF" | ||
9865 | fill2 "#FFFFFF" | ||
9866 | outline "#000000" | ||
9867 | ] | ||
9868 | LabelGraphics | ||
9869 | [ | ||
9870 | text "New Strings" | ||
9871 | outline "#000000" | ||
9872 | fill "#FFFFFF" | ||
9873 | fontSize 16 | ||
9874 | fontName "Monospace" | ||
9875 | autoSizePolicy "node_width" | ||
9876 | anchor "t" | ||
9877 | borderDistance 0.0 | ||
9878 | ] | ||
9879 | LabelGraphics | ||
9880 | [ | ||
9881 | text " | ||
9882 | " | ||
9883 | fontSize 14 | ||
9884 | fontName "Consolas" | ||
9885 | alignment "left" | ||
9886 | anchor "tl" | ||
9887 | borderDistance 6 | ||
9888 | ] | ||
9889 | ] | ||
9890 | |||
9891 | node | ||
9892 | [ | ||
9893 | id 15 | ||
9894 | graphics | ||
9895 | [ | ||
9896 | w 103.4 | ||
9897 | h 26 | ||
9898 | type "rectangle" | ||
9899 | fill "#FFFFFF" | ||
9900 | fill2 "#FFFFFF" | ||
9901 | outline "#000000" | ||
9902 | ] | ||
9903 | LabelGraphics | ||
9904 | [ | ||
9905 | text "New Objects" | ||
9906 | outline "#000000" | ||
9907 | fill "#FFFFFF" | ||
9908 | fontSize 16 | ||
9909 | fontName "Monospace" | ||
9910 | autoSizePolicy "node_width" | ||
9911 | anchor "t" | ||
9912 | borderDistance 0.0 | ||
9913 | ] | ||
9914 | LabelGraphics | ||
9915 | [ | ||
9916 | text " | ||
9917 | " | ||
9918 | fontSize 14 | ||
9919 | fontName "Consolas" | ||
9920 | alignment "left" | ||
9921 | anchor "tl" | ||
9922 | borderDistance 6 | ||
9923 | ] | ||
9924 | ] | ||
9925 | edge | ||
9926 | [ | ||
9927 | source 9 | ||
9928 | target 8 | ||
9929 | graphics | ||
9930 | [ | ||
9931 | fill "#000000" | ||
9932 | targetArrow "standard" | ||
9933 | ] | ||
9934 | LabelGraphics | ||
9935 | [ | ||
9936 | text "data reference FAMTerminator" | ||
9937 | fontSize 14 | ||
9938 | fontName "Consolas" | ||
9939 | configuration "AutoFlippingLabel" | ||
9940 | model "six_pos" | ||
9941 | position "thead" | ||
9942 | ] | ||
9943 | ] | ||
9944 | edge | ||
9945 | [ | ||
9946 | source 5 | ||
9947 | target 6 | ||
9948 | graphics | ||
9949 | [ | ||
9950 | fill "#000000" | ||
9951 | width 3 | ||
9952 | targetArrow "standard" | ||
9953 | ] | ||
9954 | LabelGraphics | ||
9955 | [ | ||
9956 | text "data reference FunctionalInterface" | ||
9957 | fontSize 14 | ||
9958 | fontName "Consolas" | ||
9959 | configuration "AutoFlippingLabel" | ||
9960 | model "six_pos" | ||
9961 | position "thead" | ||
9962 | ] | ||
9963 | ] | ||
9964 | edge | ||
9965 | [ | ||
9966 | source 5 | ||
9967 | target 7 | ||
9968 | graphics | ||
9969 | [ | ||
9970 | fill "#000000" | ||
9971 | width 3 | ||
9972 | targetArrow "standard" | ||
9973 | ] | ||
9974 | LabelGraphics | ||
9975 | [ | ||
9976 | text "data reference FunctionalInterface" | ||
9977 | fontSize 14 | ||
9978 | fontName "Consolas" | ||
9979 | configuration "AutoFlippingLabel" | ||
9980 | model "six_pos" | ||
9981 | position "thead" | ||
9982 | ] | ||
9983 | ] | ||
9984 | edge | ||
9985 | [ | ||
9986 | source 5 | ||
9987 | target 8 | ||
9988 | graphics | ||
9989 | [ | ||
9990 | fill "#000000" | ||
9991 | width 3 | ||
9992 | targetArrow "standard" | ||
9993 | ] | ||
9994 | LabelGraphics | ||
9995 | [ | ||
9996 | text "data reference FunctionalInterface" | ||
9997 | fontSize 14 | ||
9998 | fontName "Consolas" | ||
9999 | configuration "AutoFlippingLabel" | ||
10000 | model "six_pos" | ||
10001 | position "thead" | ||
10002 | ] | ||
10003 | ] | ||
10004 | edge | ||
10005 | [ | ||
10006 | source 5 | ||
10007 | target 10 | ||
10008 | graphics | ||
10009 | [ | ||
10010 | fill "#000000" | ||
10011 | width 3 | ||
10012 | targetArrow "standard" | ||
10013 | ] | ||
10014 | LabelGraphics | ||
10015 | [ | ||
10016 | text "data reference FunctionalInterface" | ||
10017 | fontSize 14 | ||
10018 | fontName "Consolas" | ||
10019 | configuration "AutoFlippingLabel" | ||
10020 | model "six_pos" | ||
10021 | position "thead" | ||
10022 | ] | ||
10023 | ] | ||
10024 | edge | ||
10025 | [ | ||
10026 | source 5 | ||
10027 | target 11 | ||
10028 | graphics | ||
10029 | [ | ||
10030 | fill "#000000" | ||
10031 | width 3 | ||
10032 | targetArrow "standard" | ||
10033 | ] | ||
10034 | LabelGraphics | ||
10035 | [ | ||
10036 | text "data reference FunctionalInterface" | ||
10037 | fontSize 14 | ||
10038 | fontName "Consolas" | ||
10039 | configuration "AutoFlippingLabel" | ||
10040 | model "six_pos" | ||
10041 | position "thead" | ||
10042 | ] | ||
10043 | ] | ||
10044 | edge | ||
10045 | [ | ||
10046 | source 8 | ||
10047 | target 9 | ||
10048 | graphics | ||
10049 | [ | ||
10050 | fill "#000000" | ||
10051 | width 3 | ||
10052 | targetArrow "standard" | ||
10053 | ] | ||
10054 | LabelGraphics | ||
10055 | [ | ||
10056 | text "terminator reference FunctionalData" | ||
10057 | fontSize 14 | ||
10058 | fontName "Consolas" | ||
10059 | configuration "AutoFlippingLabel" | ||
10060 | model "six_pos" | ||
10061 | position "thead" | ||
10062 | ] | ||
10063 | ] | ||
10064 | edge | ||
10065 | [ | ||
10066 | source 6 | ||
10067 | target 5 | ||
10068 | graphics | ||
10069 | [ | ||
10070 | fill "#000000" | ||
10071 | targetArrow "standard" | ||
10072 | ] | ||
10073 | LabelGraphics | ||
10074 | [ | ||
10075 | text "interface reference FunctionalData" | ||
10076 | fontSize 14 | ||
10077 | fontName "Consolas" | ||
10078 | configuration "AutoFlippingLabel" | ||
10079 | model "six_pos" | ||
10080 | position "thead" | ||
10081 | ] | ||
10082 | ] | ||
10083 | edge | ||
10084 | [ | ||
10085 | source 7 | ||
10086 | target 5 | ||
10087 | graphics | ||
10088 | [ | ||
10089 | fill "#000000" | ||
10090 | targetArrow "standard" | ||
10091 | ] | ||
10092 | LabelGraphics | ||
10093 | [ | ||
10094 | text "interface reference FunctionalData" | ||
10095 | fontSize 14 | ||
10096 | fontName "Consolas" | ||
10097 | configuration "AutoFlippingLabel" | ||
10098 | model "six_pos" | ||
10099 | position "thead" | ||
10100 | ] | ||
10101 | ] | ||
10102 | edge | ||
10103 | [ | ||
10104 | source 8 | ||
10105 | target 5 | ||
10106 | graphics | ||
10107 | [ | ||
10108 | fill "#000000" | ||
10109 | targetArrow "standard" | ||
10110 | ] | ||
10111 | LabelGraphics | ||
10112 | [ | ||
10113 | text "interface reference FunctionalData" | ||
10114 | fontSize 14 | ||
10115 | fontName "Consolas" | ||
10116 | configuration "AutoFlippingLabel" | ||
10117 | model "six_pos" | ||
10118 | position "thead" | ||
10119 | ] | ||
10120 | ] | ||
10121 | edge | ||
10122 | [ | ||
10123 | source 10 | ||
10124 | target 5 | ||
10125 | graphics | ||
10126 | [ | ||
10127 | fill "#000000" | ||
10128 | targetArrow "standard" | ||
10129 | ] | ||
10130 | LabelGraphics | ||
10131 | [ | ||
10132 | text "interface reference FunctionalData" | ||
10133 | fontSize 14 | ||
10134 | fontName "Consolas" | ||
10135 | configuration "AutoFlippingLabel" | ||
10136 | model "six_pos" | ||
10137 | position "thead" | ||
10138 | ] | ||
10139 | ] | ||
10140 | edge | ||
10141 | [ | ||
10142 | source 11 | ||
10143 | target 5 | ||
10144 | graphics | ||
10145 | [ | ||
10146 | fill "#000000" | ||
10147 | targetArrow "standard" | ||
10148 | ] | ||
10149 | LabelGraphics | ||
10150 | [ | ||
10151 | text "interface reference FunctionalData" | ||
10152 | fontSize 14 | ||
10153 | fontName "Consolas" | ||
10154 | configuration "AutoFlippingLabel" | ||
10155 | model "six_pos" | ||
10156 | position "thead" | ||
10157 | ] | ||
10158 | ] | ||
10159 | ] | ||
10160 | graph | ||
10161 | [ | ||
10162 | node | ||
10163 | [ | ||
10164 | id 0 | ||
10165 | graphics | ||
10166 | [ | ||
10167 | w 226.60000000000002 | ||
10168 | h 40 | ||
10169 | type "rectangle" | ||
10170 | fill "#FFFFFF" | ||
10171 | fill2 "#FFFFFF" | ||
10172 | outline "#000000" | ||
10173 | ] | ||
10174 | LabelGraphics | ||
10175 | [ | ||
10176 | text "Root literal FunctionType" | ||
10177 | outline "#000000" | ||
10178 | fill "#FFFFFF" | ||
10179 | fontSize 16 | ||
10180 | fontName "Monospace" | ||
10181 | autoSizePolicy "node_width" | ||
10182 | anchor "t" | ||
10183 | borderDistance 0.0 | ||
10184 | ] | ||
10185 | LabelGraphics | ||
10186 | [ | ||
10187 | text " | ||
10188 | FunctionType enum | ||
10189 | " | ||
10190 | fontSize 14 | ||
10191 | fontName "Consolas" | ||
10192 | alignment "left" | ||
10193 | anchor "tl" | ||
10194 | borderDistance 6 | ||
10195 | ] | ||
10196 | ] | ||
10197 | |||
10198 | node | ||
10199 | [ | ||
10200 | id 1 | ||
10201 | graphics | ||
10202 | [ | ||
10203 | w 297.0 | ||
10204 | h 40 | ||
10205 | type "rectangle" | ||
10206 | fill "#FFFFFF" | ||
10207 | fill2 "#FFFFFF" | ||
10208 | outline "#000000" | ||
10209 | ] | ||
10210 | LabelGraphics | ||
10211 | [ | ||
10212 | text "Intermediate literal FunctionType" | ||
10213 | outline "#000000" | ||
10214 | fill "#FFFFFF" | ||
10215 | fontSize 16 | ||
10216 | fontName "Monospace" | ||
10217 | autoSizePolicy "node_width" | ||
10218 | anchor "t" | ||
10219 | borderDistance 0.0 | ||
10220 | ] | ||
10221 | LabelGraphics | ||
10222 | [ | ||
10223 | text " | ||
10224 | FunctionType enum | ||
10225 | " | ||
10226 | fontSize 14 | ||
10227 | fontName "Consolas" | ||
10228 | alignment "left" | ||
10229 | anchor "tl" | ||
10230 | borderDistance 6 | ||
10231 | ] | ||
10232 | ] | ||
10233 | |||
10234 | node | ||
10235 | [ | ||
10236 | id 2 | ||
10237 | graphics | ||
10238 | [ | ||
10239 | w 226.60000000000002 | ||
10240 | h 40 | ||
10241 | type "rectangle" | ||
10242 | fill "#FFFFFF" | ||
10243 | fill2 "#FFFFFF" | ||
10244 | outline "#000000" | ||
10245 | ] | ||
10246 | LabelGraphics | ||
10247 | [ | ||
10248 | text "Leaf literal FunctionType" | ||
10249 | outline "#000000" | ||
10250 | fill "#FFFFFF" | ||
10251 | fontSize 16 | ||
10252 | fontName "Monospace" | ||
10253 | autoSizePolicy "node_width" | ||
10254 | anchor "t" | ||
10255 | borderDistance 0.0 | ||
10256 | ] | ||
10257 | LabelGraphics | ||
10258 | [ | ||
10259 | text " | ||
10260 | FunctionType enum | ||
10261 | " | ||
10262 | fontSize 14 | ||
10263 | fontName "Consolas" | ||
10264 | alignment "left" | ||
10265 | anchor "tl" | ||
10266 | borderDistance 6 | ||
10267 | ] | ||
10268 | ] | ||
10269 | |||
10270 | node | ||
10271 | [ | ||
10272 | id 3 | ||
10273 | graphics | ||
10274 | [ | ||
10275 | w 361.90000000000003 | ||
10276 | h 54 | ||
10277 | type "rectangle" | ||
10278 | fill "#FFFFFF" | ||
10279 | fill2 "#FFFFFF" | ||
10280 | outline "#000000" | ||
10281 | ] | ||
10282 | LabelGraphics | ||
10283 | [ | ||
10284 | text "o 1" | ||
10285 | outline "#000000" | ||
10286 | fill "#FFFFFF" | ||
10287 | fontSize 16 | ||
10288 | fontName "Monospace" | ||
10289 | autoSizePolicy "node_width" | ||
10290 | anchor "t" | ||
10291 | borderDistance 0.0 | ||
10292 | ] | ||
10293 | LabelGraphics | ||
10294 | [ | ||
10295 | text " | ||
10296 | FunctionalArchitectureModel class DefinedPart | ||
10297 | FunctionalArchitectureModel class | ||
10298 | " | ||
10299 | fontSize 14 | ||
10300 | fontName "Consolas" | ||
10301 | alignment "left" | ||
10302 | anchor "tl" | ||
10303 | borderDistance 6 | ||
10304 | ] | ||
10305 | ] | ||
10306 | |||
10307 | node | ||
10308 | [ | ||
10309 | id 4 | ||
10310 | graphics | ||
10311 | [ | ||
10312 | w 41.800000000000004 | ||
10313 | h 26 | ||
10314 | type "rectangle" | ||
10315 | fill "#FFFFFF" | ||
10316 | fill2 "#FFFFFF" | ||
10317 | outline "#000000" | ||
10318 | ] | ||
10319 | LabelGraphics | ||
10320 | [ | ||
10321 | text "true" | ||
10322 | outline "#000000" | ||
10323 | fill "#FFFFFF" | ||
10324 | fontSize 16 | ||
10325 | fontName "Monospace" | ||
10326 | autoSizePolicy "node_width" | ||
10327 | anchor "t" | ||
10328 | borderDistance 0.0 | ||
10329 | ] | ||
10330 | LabelGraphics | ||
10331 | [ | ||
10332 | text " | ||
10333 | " | ||
10334 | fontSize 14 | ||
10335 | fontName "Consolas" | ||
10336 | alignment "left" | ||
10337 | anchor "tl" | ||
10338 | borderDistance 6 | ||
10339 | ] | ||
10340 | ] | ||
10341 | |||
10342 | node | ||
10343 | [ | ||
10344 | id 5 | ||
10345 | graphics | ||
10346 | [ | ||
10347 | w 50.6 | ||
10348 | h 26 | ||
10349 | type "rectangle" | ||
10350 | fill "#FFFFFF" | ||
10351 | fill2 "#FFFFFF" | ||
10352 | outline "#000000" | ||
10353 | ] | ||
10354 | LabelGraphics | ||
10355 | [ | ||
10356 | text "false" | ||
10357 | outline "#000000" | ||
10358 | fill "#FFFFFF" | ||
10359 | fontSize 16 | ||
10360 | fontName "Monospace" | ||
10361 | autoSizePolicy "node_width" | ||
10362 | anchor "t" | ||
10363 | borderDistance 0.0 | ||
10364 | ] | ||
10365 | LabelGraphics | ||
10366 | [ | ||
10367 | text " | ||
10368 | " | ||
10369 | fontSize 14 | ||
10370 | fontName "Consolas" | ||
10371 | alignment "left" | ||
10372 | anchor "tl" | ||
10373 | borderDistance 6 | ||
10374 | ] | ||
10375 | ] | ||
10376 | |||
10377 | node | ||
10378 | [ | ||
10379 | id 6 | ||
10380 | graphics | ||
10381 | [ | ||
10382 | w 192.50000000000003 | ||
10383 | h 54 | ||
10384 | type "rectangle" | ||
10385 | fill "#FFFFFF" | ||
10386 | fill2 "#FFFFFF" | ||
10387 | outline "#000000" | ||
10388 | ] | ||
10389 | LabelGraphics | ||
10390 | [ | ||
10391 | text "null" | ||
10392 | outline "#000000" | ||
10393 | fill "#FFFFFF" | ||
10394 | fontSize 16 | ||
10395 | fontName "Monospace" | ||
10396 | autoSizePolicy "node_width" | ||
10397 | anchor "t" | ||
10398 | borderDistance 0.0 | ||
10399 | ] | ||
10400 | LabelGraphics | ||
10401 | [ | ||
10402 | text " | ||
10403 | FunctionalElement class | ||
10404 | Function class | ||
10405 | " | ||
10406 | fontSize 14 | ||
10407 | fontName "Consolas" | ||
10408 | alignment "left" | ||
10409 | anchor "tl" | ||
10410 | borderDistance 6 | ||
10411 | ] | ||
10412 | ] | ||
10413 | |||
10414 | node | ||
10415 | [ | ||
10416 | id 7 | ||
10417 | graphics | ||
10418 | [ | ||
10419 | w 207.9 | ||
10420 | h 40 | ||
10421 | type "rectangle" | ||
10422 | fill "#FFFFFF" | ||
10423 | fill2 "#FFFFFF" | ||
10424 | outline "#000000" | ||
10425 | ] | ||
10426 | LabelGraphics | ||
10427 | [ | ||
10428 | text "null" | ||
10429 | outline "#000000" | ||
10430 | fill "#FFFFFF" | ||
10431 | fontSize 16 | ||
10432 | fontName "Monospace" | ||
10433 | autoSizePolicy "node_width" | ||
10434 | anchor "t" | ||
10435 | borderDistance 0.0 | ||
10436 | ] | ||
10437 | LabelGraphics | ||
10438 | [ | ||
10439 | text " | ||
10440 | FunctionalInterface class | ||
10441 | " | ||
10442 | fontSize 14 | ||
10443 | fontName "Consolas" | ||
10444 | alignment "left" | ||
10445 | anchor "tl" | ||
10446 | borderDistance 6 | ||
10447 | ] | ||
10448 | ] | ||
10449 | |||
10450 | node | ||
10451 | [ | ||
10452 | id 8 | ||
10453 | graphics | ||
10454 | [ | ||
10455 | w 184.8 | ||
10456 | h 54 | ||
10457 | type "rectangle" | ||
10458 | fill "#FFFFFF" | ||
10459 | fill2 "#FFFFFF" | ||
10460 | outline "#000000" | ||
10461 | ] | ||
10462 | LabelGraphics | ||
10463 | [ | ||
10464 | text "null" | ||
10465 | outline "#000000" | ||
10466 | fill "#FFFFFF" | ||
10467 | fontSize 16 | ||
10468 | fontName "Monospace" | ||
10469 | autoSizePolicy "node_width" | ||
10470 | anchor "t" | ||
10471 | borderDistance 0.0 | ||
10472 | ] | ||
10473 | LabelGraphics | ||
10474 | [ | ||
10475 | text " | ||
10476 | FunctionalOutput class | ||
10477 | FunctionalData class | ||
10478 | " | ||
10479 | fontSize 14 | ||
10480 | fontName "Consolas" | ||
10481 | alignment "left" | ||
10482 | anchor "tl" | ||
10483 | borderDistance 6 | ||
10484 | ] | ||
10485 | ] | ||
10486 | |||
10487 | node | ||
10488 | [ | ||
10489 | id 9 | ||
10490 | graphics | ||
10491 | [ | ||
10492 | w 177.10000000000002 | ||
10493 | h 40 | ||
10494 | type "rectangle" | ||
10495 | fill "#FFFFFF" | ||
10496 | fill2 "#FFFFFF" | ||
10497 | outline "#000000" | ||
10498 | ] | ||
10499 | LabelGraphics | ||
10500 | [ | ||
10501 | text "null" | ||
10502 | outline "#000000" | ||
10503 | fill "#FFFFFF" | ||
10504 | fontSize 16 | ||
10505 | fontName "Monospace" | ||
10506 | autoSizePolicy "node_width" | ||
10507 | anchor "t" | ||
10508 | borderDistance 0.0 | ||
10509 | ] | ||
10510 | LabelGraphics | ||
10511 | [ | ||
10512 | text " | ||
10513 | InformationLink class | ||
10514 | " | ||
10515 | fontSize 14 | ||
10516 | fontName "Consolas" | ||
10517 | alignment "left" | ||
10518 | anchor "tl" | ||
10519 | borderDistance 6 | ||
10520 | ] | ||
10521 | ] | ||
10522 | |||
10523 | node | ||
10524 | [ | ||
10525 | id 10 | ||
10526 | graphics | ||
10527 | [ | ||
10528 | w 177.10000000000002 | ||
10529 | h 54 | ||
10530 | type "rectangle" | ||
10531 | fill "#FFFFFF" | ||
10532 | fill2 "#FFFFFF" | ||
10533 | outline "#000000" | ||
10534 | ] | ||
10535 | LabelGraphics | ||
10536 | [ | ||
10537 | text "null" | ||
10538 | outline "#000000" | ||
10539 | fill "#FFFFFF" | ||
10540 | fontSize 16 | ||
10541 | fontName "Monospace" | ||
10542 | autoSizePolicy "node_width" | ||
10543 | anchor "t" | ||
10544 | borderDistance 0.0 | ||
10545 | ] | ||
10546 | LabelGraphics | ||
10547 | [ | ||
10548 | text " | ||
10549 | FunctionalInput class | ||
10550 | FunctionalData class | ||
10551 | " | ||
10552 | fontSize 14 | ||
10553 | fontName "Consolas" | ||
10554 | alignment "left" | ||
10555 | anchor "tl" | ||
10556 | borderDistance 6 | ||
10557 | ] | ||
10558 | ] | ||
10559 | |||
10560 | node | ||
10561 | [ | ||
10562 | id 11 | ||
10563 | graphics | ||
10564 | [ | ||
10565 | w 161.70000000000002 | ||
10566 | h 40 | ||
10567 | type "rectangle" | ||
10568 | fill "#FFFFFF" | ||
10569 | fill2 "#FFFFFF" | ||
10570 | outline "#000000" | ||
10571 | ] | ||
10572 | LabelGraphics | ||
10573 | [ | ||
10574 | text "null" | ||
10575 | outline "#000000" | ||
10576 | fill "#FFFFFF" | ||
10577 | fontSize 16 | ||
10578 | fontName "Monospace" | ||
10579 | autoSizePolicy "node_width" | ||
10580 | anchor "t" | ||
10581 | borderDistance 0.0 | ||
10582 | ] | ||
10583 | LabelGraphics | ||
10584 | [ | ||
10585 | text " | ||
10586 | FAMTerminator class | ||
10587 | " | ||
10588 | fontSize 14 | ||
10589 | fontName "Consolas" | ||
10590 | alignment "left" | ||
10591 | anchor "tl" | ||
10592 | borderDistance 6 | ||
10593 | ] | ||
10594 | ] | ||
10595 | |||
10596 | node | ||
10597 | [ | ||
10598 | id 12 | ||
10599 | graphics | ||
10600 | [ | ||
10601 | w 112.2 | ||
10602 | h 26 | ||
10603 | type "rectangle" | ||
10604 | fill "#FFFFFF" | ||
10605 | fill2 "#FFFFFF" | ||
10606 | outline "#000000" | ||
10607 | ] | ||
10608 | LabelGraphics | ||
10609 | [ | ||
10610 | text "New Integers" | ||
10611 | outline "#000000" | ||
10612 | fill "#FFFFFF" | ||
10613 | fontSize 16 | ||
10614 | fontName "Monospace" | ||
10615 | autoSizePolicy "node_width" | ||
10616 | anchor "t" | ||
10617 | borderDistance 0.0 | ||
10618 | ] | ||
10619 | LabelGraphics | ||
10620 | [ | ||
10621 | text " | ||
10622 | " | ||
10623 | fontSize 14 | ||
10624 | fontName "Consolas" | ||
10625 | alignment "left" | ||
10626 | anchor "tl" | ||
10627 | borderDistance 6 | ||
10628 | ] | ||
10629 | ] | ||
10630 | |||
10631 | node | ||
10632 | [ | ||
10633 | id 13 | ||
10634 | graphics | ||
10635 | [ | ||
10636 | w 85.80000000000001 | ||
10637 | h 26 | ||
10638 | type "rectangle" | ||
10639 | fill "#FFFFFF" | ||
10640 | fill2 "#FFFFFF" | ||
10641 | outline "#000000" | ||
10642 | ] | ||
10643 | LabelGraphics | ||
10644 | [ | ||
10645 | text "New Reals" | ||
10646 | outline "#000000" | ||
10647 | fill "#FFFFFF" | ||
10648 | fontSize 16 | ||
10649 | fontName "Monospace" | ||
10650 | autoSizePolicy "node_width" | ||
10651 | anchor "t" | ||
10652 | borderDistance 0.0 | ||
10653 | ] | ||
10654 | LabelGraphics | ||
10655 | [ | ||
10656 | text " | ||
10657 | " | ||
10658 | fontSize 14 | ||
10659 | fontName "Consolas" | ||
10660 | alignment "left" | ||
10661 | anchor "tl" | ||
10662 | borderDistance 6 | ||
10663 | ] | ||
10664 | ] | ||
10665 | |||
10666 | node | ||
10667 | [ | ||
10668 | id 14 | ||
10669 | graphics | ||
10670 | [ | ||
10671 | w 103.4 | ||
10672 | h 26 | ||
10673 | type "rectangle" | ||
10674 | fill "#FFFFFF" | ||
10675 | fill2 "#FFFFFF" | ||
10676 | outline "#000000" | ||
10677 | ] | ||
10678 | LabelGraphics | ||
10679 | [ | ||
10680 | text "New Strings" | ||
10681 | outline "#000000" | ||
10682 | fill "#FFFFFF" | ||
10683 | fontSize 16 | ||
10684 | fontName "Monospace" | ||
10685 | autoSizePolicy "node_width" | ||
10686 | anchor "t" | ||
10687 | borderDistance 0.0 | ||
10688 | ] | ||
10689 | LabelGraphics | ||
10690 | [ | ||
10691 | text " | ||
10692 | " | ||
10693 | fontSize 14 | ||
10694 | fontName "Consolas" | ||
10695 | alignment "left" | ||
10696 | anchor "tl" | ||
10697 | borderDistance 6 | ||
10698 | ] | ||
10699 | ] | ||
10700 | |||
10701 | node | ||
10702 | [ | ||
10703 | id 15 | ||
10704 | graphics | ||
10705 | [ | ||
10706 | w 103.4 | ||
10707 | h 26 | ||
10708 | type "rectangle" | ||
10709 | fill "#FFFFFF" | ||
10710 | fill2 "#FFFFFF" | ||
10711 | outline "#000000" | ||
10712 | ] | ||
10713 | LabelGraphics | ||
10714 | [ | ||
10715 | text "New Objects" | ||
10716 | outline "#000000" | ||
10717 | fill "#FFFFFF" | ||
10718 | fontSize 16 | ||
10719 | fontName "Monospace" | ||
10720 | autoSizePolicy "node_width" | ||
10721 | anchor "t" | ||
10722 | borderDistance 0.0 | ||
10723 | ] | ||
10724 | LabelGraphics | ||
10725 | [ | ||
10726 | text " | ||
10727 | " | ||
10728 | fontSize 14 | ||
10729 | fontName "Consolas" | ||
10730 | alignment "left" | ||
10731 | anchor "tl" | ||
10732 | borderDistance 6 | ||
10733 | ] | ||
10734 | ] | ||
10735 | edge | ||
10736 | [ | ||
10737 | source 6 | ||
10738 | target 7 | ||
10739 | graphics | ||
10740 | [ | ||
10741 | fill "#000000" | ||
10742 | width 3 | ||
10743 | targetArrow "standard" | ||
10744 | ] | ||
10745 | LabelGraphics | ||
10746 | [ | ||
10747 | text "interface reference FunctionalElement" | ||
10748 | fontSize 14 | ||
10749 | fontName "Consolas" | ||
10750 | configuration "AutoFlippingLabel" | ||
10751 | model "six_pos" | ||
10752 | position "thead" | ||
10753 | ] | ||
10754 | ] | ||
10755 | edge | ||
10756 | [ | ||
10757 | source 6 | ||
10758 | target 3 | ||
10759 | graphics | ||
10760 | [ | ||
10761 | fill "#000000" | ||
10762 | targetArrow "standard" | ||
10763 | ] | ||
10764 | LabelGraphics | ||
10765 | [ | ||
10766 | text "model reference FunctionalElement" | ||
10767 | fontSize 14 | ||
10768 | fontName "Consolas" | ||
10769 | configuration "AutoFlippingLabel" | ||
10770 | model "six_pos" | ||
10771 | position "thead" | ||
10772 | ] | ||
10773 | ] | ||
10774 | edge | ||
10775 | [ | ||
10776 | source 3 | ||
10777 | target 6 | ||
10778 | graphics | ||
10779 | [ | ||
10780 | fill "#000000" | ||
10781 | width 3 | ||
10782 | targetArrow "standard" | ||
10783 | ] | ||
10784 | LabelGraphics | ||
10785 | [ | ||
10786 | text "rootElements reference FunctionalArchitectureModel" | ||
10787 | fontSize 14 | ||
10788 | fontName "Consolas" | ||
10789 | configuration "AutoFlippingLabel" | ||
10790 | model "six_pos" | ||
10791 | position "thead" | ||
10792 | ] | ||
10793 | ] | ||
10794 | edge | ||
10795 | [ | ||
10796 | source 11 | ||
10797 | target 8 | ||
10798 | graphics | ||
10799 | [ | ||
10800 | fill "#000000" | ||
10801 | targetArrow "standard" | ||
10802 | ] | ||
10803 | LabelGraphics | ||
10804 | [ | ||
10805 | text "data reference FAMTerminator" | ||
10806 | fontSize 14 | ||
10807 | fontName "Consolas" | ||
10808 | configuration "AutoFlippingLabel" | ||
10809 | model "six_pos" | ||
10810 | position "thead" | ||
10811 | ] | ||
10812 | ] | ||
10813 | edge | ||
10814 | [ | ||
10815 | source 9 | ||
10816 | target 8 | ||
10817 | graphics | ||
10818 | [ | ||
10819 | fill "#000000" | ||
10820 | targetArrow "standard" | ||
10821 | ] | ||
10822 | LabelGraphics | ||
10823 | [ | ||
10824 | text "from reference InformationLink" | ||
10825 | fontSize 14 | ||
10826 | fontName "Consolas" | ||
10827 | configuration "AutoFlippingLabel" | ||
10828 | model "six_pos" | ||
10829 | position "thead" | ||
10830 | ] | ||
10831 | ] | ||
10832 | edge | ||
10833 | [ | ||
10834 | source 9 | ||
10835 | target 10 | ||
10836 | graphics | ||
10837 | [ | ||
10838 | fill "#000000" | ||
10839 | targetArrow "standard" | ||
10840 | ] | ||
10841 | LabelGraphics | ||
10842 | [ | ||
10843 | text "to reference InformationLink" | ||
10844 | fontSize 14 | ||
10845 | fontName "Consolas" | ||
10846 | configuration "AutoFlippingLabel" | ||
10847 | model "six_pos" | ||
10848 | position "thead" | ||
10849 | ] | ||
10850 | ] | ||
10851 | edge | ||
10852 | [ | ||
10853 | source 7 | ||
10854 | target 8 | ||
10855 | graphics | ||
10856 | [ | ||
10857 | fill "#000000" | ||
10858 | width 3 | ||
10859 | targetArrow "standard" | ||
10860 | ] | ||
10861 | LabelGraphics | ||
10862 | [ | ||
10863 | text "data reference FunctionalInterface" | ||
10864 | fontSize 14 | ||
10865 | fontName "Consolas" | ||
10866 | configuration "AutoFlippingLabel" | ||
10867 | model "six_pos" | ||
10868 | position "thead" | ||
10869 | ] | ||
10870 | ] | ||
10871 | edge | ||
10872 | [ | ||
10873 | source 7 | ||
10874 | target 10 | ||
10875 | graphics | ||
10876 | [ | ||
10877 | fill "#000000" | ||
10878 | width 3 | ||
10879 | targetArrow "standard" | ||
10880 | ] | ||
10881 | LabelGraphics | ||
10882 | [ | ||
10883 | text "data reference FunctionalInterface" | ||
10884 | fontSize 14 | ||
10885 | fontName "Consolas" | ||
10886 | configuration "AutoFlippingLabel" | ||
10887 | model "six_pos" | ||
10888 | position "thead" | ||
10889 | ] | ||
10890 | ] | ||
10891 | edge | ||
10892 | [ | ||
10893 | source 7 | ||
10894 | target 6 | ||
10895 | graphics | ||
10896 | [ | ||
10897 | fill "#000000" | ||
10898 | targetArrow "standard" | ||
10899 | ] | ||
10900 | LabelGraphics | ||
10901 | [ | ||
10902 | text "element reference FunctionalInterface" | ||
10903 | fontSize 14 | ||
10904 | fontName "Consolas" | ||
10905 | configuration "AutoFlippingLabel" | ||
10906 | model "six_pos" | ||
10907 | position "thead" | ||
10908 | ] | ||
10909 | ] | ||
10910 | edge | ||
10911 | [ | ||
10912 | source 10 | ||
10913 | target 9 | ||
10914 | graphics | ||
10915 | [ | ||
10916 | fill "#000000" | ||
10917 | targetArrow "standard" | ||
10918 | ] | ||
10919 | LabelGraphics | ||
10920 | [ | ||
10921 | text "IncomingLinks reference FunctionalInput" | ||
10922 | fontSize 14 | ||
10923 | fontName "Consolas" | ||
10924 | configuration "AutoFlippingLabel" | ||
10925 | model "six_pos" | ||
10926 | position "thead" | ||
10927 | ] | ||
10928 | ] | ||
10929 | edge | ||
10930 | [ | ||
10931 | source 8 | ||
10932 | target 9 | ||
10933 | graphics | ||
10934 | [ | ||
10935 | fill "#000000" | ||
10936 | width 3 | ||
10937 | targetArrow "standard" | ||
10938 | ] | ||
10939 | LabelGraphics | ||
10940 | [ | ||
10941 | text "outgoingLinks reference FunctionalOutput" | ||
10942 | fontSize 14 | ||
10943 | fontName "Consolas" | ||
10944 | configuration "AutoFlippingLabel" | ||
10945 | model "six_pos" | ||
10946 | position "thead" | ||
10947 | ] | ||
10948 | ] | ||
10949 | edge | ||
10950 | [ | ||
10951 | source 8 | ||
10952 | target 11 | ||
10953 | graphics | ||
10954 | [ | ||
10955 | fill "#000000" | ||
10956 | width 3 | ||
10957 | targetArrow "standard" | ||
10958 | ] | ||
10959 | LabelGraphics | ||
10960 | [ | ||
10961 | text "terminator reference FunctionalData" | ||
10962 | fontSize 14 | ||
10963 | fontName "Consolas" | ||
10964 | configuration "AutoFlippingLabel" | ||
10965 | model "six_pos" | ||
10966 | position "thead" | ||
10967 | ] | ||
10968 | ] | ||
10969 | edge | ||
10970 | [ | ||
10971 | source 8 | ||
10972 | target 7 | ||
10973 | graphics | ||
10974 | [ | ||
10975 | fill "#000000" | ||
10976 | targetArrow "standard" | ||
10977 | ] | ||
10978 | LabelGraphics | ||
10979 | [ | ||
10980 | text "interface reference FunctionalData" | ||
10981 | fontSize 14 | ||
10982 | fontName "Consolas" | ||
10983 | configuration "AutoFlippingLabel" | ||
10984 | model "six_pos" | ||
10985 | position "thead" | ||
10986 | ] | ||
10987 | ] | ||
10988 | edge | ||
10989 | [ | ||
10990 | source 10 | ||
10991 | target 7 | ||
10992 | graphics | ||
10993 | [ | ||
10994 | fill "#000000" | ||
10995 | targetArrow "standard" | ||
10996 | ] | ||
10997 | LabelGraphics | ||
10998 | [ | ||
10999 | text "interface reference FunctionalData" | ||
11000 | fontSize 14 | ||
11001 | fontName "Consolas" | ||
11002 | configuration "AutoFlippingLabel" | ||
11003 | model "six_pos" | ||
11004 | position "thead" | ||
11005 | ] | ||
11006 | ] | ||
11007 | edge | ||
11008 | [ | ||
11009 | source 6 | ||
11010 | target 0 | ||
11011 | graphics | ||
11012 | [ | ||
11013 | fill "#000000" | ||
11014 | targetArrow "standard" | ||
11015 | ] | ||
11016 | LabelGraphics | ||
11017 | [ | ||
11018 | text "type attribute Function" | ||
11019 | fontSize 14 | ||
11020 | fontName "Consolas" | ||
11021 | configuration "AutoFlippingLabel" | ||
11022 | model "six_pos" | ||
11023 | position "thead" | ||
11024 | ] | ||
11025 | ] | ||
11026 | ] | ||
11027 | graph | ||
11028 | [ | ||
11029 | node | ||
11030 | [ | ||
11031 | id 0 | ||
11032 | graphics | ||
11033 | [ | ||
11034 | w 226.60000000000002 | ||
11035 | h 40 | ||
11036 | type "rectangle" | ||
11037 | fill "#FFFFFF" | ||
11038 | fill2 "#FFFFFF" | ||
11039 | outline "#000000" | ||
11040 | ] | ||
11041 | LabelGraphics | ||
11042 | [ | ||
11043 | text "Root literal FunctionType" | ||
11044 | outline "#000000" | ||
11045 | fill "#FFFFFF" | ||
11046 | fontSize 16 | ||
11047 | fontName "Monospace" | ||
11048 | autoSizePolicy "node_width" | ||
11049 | anchor "t" | ||
11050 | borderDistance 0.0 | ||
11051 | ] | ||
11052 | LabelGraphics | ||
11053 | [ | ||
11054 | text " | ||
11055 | FunctionType enum | ||
11056 | " | ||
11057 | fontSize 14 | ||
11058 | fontName "Consolas" | ||
11059 | alignment "left" | ||
11060 | anchor "tl" | ||
11061 | borderDistance 6 | ||
11062 | ] | ||
11063 | ] | ||
11064 | |||
11065 | node | ||
11066 | [ | ||
11067 | id 1 | ||
11068 | graphics | ||
11069 | [ | ||
11070 | w 297.0 | ||
11071 | h 40 | ||
11072 | type "rectangle" | ||
11073 | fill "#FFFFFF" | ||
11074 | fill2 "#FFFFFF" | ||
11075 | outline "#000000" | ||
11076 | ] | ||
11077 | LabelGraphics | ||
11078 | [ | ||
11079 | text "Intermediate literal FunctionType" | ||
11080 | outline "#000000" | ||
11081 | fill "#FFFFFF" | ||
11082 | fontSize 16 | ||
11083 | fontName "Monospace" | ||
11084 | autoSizePolicy "node_width" | ||
11085 | anchor "t" | ||
11086 | borderDistance 0.0 | ||
11087 | ] | ||
11088 | LabelGraphics | ||
11089 | [ | ||
11090 | text " | ||
11091 | FunctionType enum | ||
11092 | " | ||
11093 | fontSize 14 | ||
11094 | fontName "Consolas" | ||
11095 | alignment "left" | ||
11096 | anchor "tl" | ||
11097 | borderDistance 6 | ||
11098 | ] | ||
11099 | ] | ||
11100 | |||
11101 | node | ||
11102 | [ | ||
11103 | id 2 | ||
11104 | graphics | ||
11105 | [ | ||
11106 | w 226.60000000000002 | ||
11107 | h 40 | ||
11108 | type "rectangle" | ||
11109 | fill "#FFFFFF" | ||
11110 | fill2 "#FFFFFF" | ||
11111 | outline "#000000" | ||
11112 | ] | ||
11113 | LabelGraphics | ||
11114 | [ | ||
11115 | text "Leaf literal FunctionType" | ||
11116 | outline "#000000" | ||
11117 | fill "#FFFFFF" | ||
11118 | fontSize 16 | ||
11119 | fontName "Monospace" | ||
11120 | autoSizePolicy "node_width" | ||
11121 | anchor "t" | ||
11122 | borderDistance 0.0 | ||
11123 | ] | ||
11124 | LabelGraphics | ||
11125 | [ | ||
11126 | text " | ||
11127 | FunctionType enum | ||
11128 | " | ||
11129 | fontSize 14 | ||
11130 | fontName "Consolas" | ||
11131 | alignment "left" | ||
11132 | anchor "tl" | ||
11133 | borderDistance 6 | ||
11134 | ] | ||
11135 | ] | ||
11136 | |||
11137 | node | ||
11138 | [ | ||
11139 | id 3 | ||
11140 | graphics | ||
11141 | [ | ||
11142 | w 361.90000000000003 | ||
11143 | h 54 | ||
11144 | type "rectangle" | ||
11145 | fill "#FFFFFF" | ||
11146 | fill2 "#FFFFFF" | ||
11147 | outline "#000000" | ||
11148 | ] | ||
11149 | LabelGraphics | ||
11150 | [ | ||
11151 | text "o 1" | ||
11152 | outline "#000000" | ||
11153 | fill "#FFFFFF" | ||
11154 | fontSize 16 | ||
11155 | fontName "Monospace" | ||
11156 | autoSizePolicy "node_width" | ||
11157 | anchor "t" | ||
11158 | borderDistance 0.0 | ||
11159 | ] | ||
11160 | LabelGraphics | ||
11161 | [ | ||
11162 | text " | ||
11163 | FunctionalArchitectureModel class DefinedPart | ||
11164 | FunctionalArchitectureModel class | ||
11165 | " | ||
11166 | fontSize 14 | ||
11167 | fontName "Consolas" | ||
11168 | alignment "left" | ||
11169 | anchor "tl" | ||
11170 | borderDistance 6 | ||
11171 | ] | ||
11172 | ] | ||
11173 | |||
11174 | node | ||
11175 | [ | ||
11176 | id 4 | ||
11177 | graphics | ||
11178 | [ | ||
11179 | w 41.800000000000004 | ||
11180 | h 26 | ||
11181 | type "rectangle" | ||
11182 | fill "#FFFFFF" | ||
11183 | fill2 "#FFFFFF" | ||
11184 | outline "#000000" | ||
11185 | ] | ||
11186 | LabelGraphics | ||
11187 | [ | ||
11188 | text "true" | ||
11189 | outline "#000000" | ||
11190 | fill "#FFFFFF" | ||
11191 | fontSize 16 | ||
11192 | fontName "Monospace" | ||
11193 | autoSizePolicy "node_width" | ||
11194 | anchor "t" | ||
11195 | borderDistance 0.0 | ||
11196 | ] | ||
11197 | LabelGraphics | ||
11198 | [ | ||
11199 | text " | ||
11200 | " | ||
11201 | fontSize 14 | ||
11202 | fontName "Consolas" | ||
11203 | alignment "left" | ||
11204 | anchor "tl" | ||
11205 | borderDistance 6 | ||
11206 | ] | ||
11207 | ] | ||
11208 | |||
11209 | node | ||
11210 | [ | ||
11211 | id 5 | ||
11212 | graphics | ||
11213 | [ | ||
11214 | w 50.6 | ||
11215 | h 26 | ||
11216 | type "rectangle" | ||
11217 | fill "#FFFFFF" | ||
11218 | fill2 "#FFFFFF" | ||
11219 | outline "#000000" | ||
11220 | ] | ||
11221 | LabelGraphics | ||
11222 | [ | ||
11223 | text "false" | ||
11224 | outline "#000000" | ||
11225 | fill "#FFFFFF" | ||
11226 | fontSize 16 | ||
11227 | fontName "Monospace" | ||
11228 | autoSizePolicy "node_width" | ||
11229 | anchor "t" | ||
11230 | borderDistance 0.0 | ||
11231 | ] | ||
11232 | LabelGraphics | ||
11233 | [ | ||
11234 | text " | ||
11235 | " | ||
11236 | fontSize 14 | ||
11237 | fontName "Consolas" | ||
11238 | alignment "left" | ||
11239 | anchor "tl" | ||
11240 | borderDistance 6 | ||
11241 | ] | ||
11242 | ] | ||
11243 | |||
11244 | node | ||
11245 | [ | ||
11246 | id 6 | ||
11247 | graphics | ||
11248 | [ | ||
11249 | w 192.50000000000003 | ||
11250 | h 54 | ||
11251 | type "rectangle" | ||
11252 | fill "#FFFFFF" | ||
11253 | fill2 "#FFFFFF" | ||
11254 | outline "#000000" | ||
11255 | ] | ||
11256 | LabelGraphics | ||
11257 | [ | ||
11258 | text "null" | ||
11259 | outline "#000000" | ||
11260 | fill "#FFFFFF" | ||
11261 | fontSize 16 | ||
11262 | fontName "Monospace" | ||
11263 | autoSizePolicy "node_width" | ||
11264 | anchor "t" | ||
11265 | borderDistance 0.0 | ||
11266 | ] | ||
11267 | LabelGraphics | ||
11268 | [ | ||
11269 | text " | ||
11270 | FunctionalElement class | ||
11271 | Function class | ||
11272 | " | ||
11273 | fontSize 14 | ||
11274 | fontName "Consolas" | ||
11275 | alignment "left" | ||
11276 | anchor "tl" | ||
11277 | borderDistance 6 | ||
11278 | ] | ||
11279 | ] | ||
11280 | |||
11281 | node | ||
11282 | [ | ||
11283 | id 7 | ||
11284 | graphics | ||
11285 | [ | ||
11286 | w 207.9 | ||
11287 | h 40 | ||
11288 | type "rectangle" | ||
11289 | fill "#FFFFFF" | ||
11290 | fill2 "#FFFFFF" | ||
11291 | outline "#000000" | ||
11292 | ] | ||
11293 | LabelGraphics | ||
11294 | [ | ||
11295 | text "null" | ||
11296 | outline "#000000" | ||
11297 | fill "#FFFFFF" | ||
11298 | fontSize 16 | ||
11299 | fontName "Monospace" | ||
11300 | autoSizePolicy "node_width" | ||
11301 | anchor "t" | ||
11302 | borderDistance 0.0 | ||
11303 | ] | ||
11304 | LabelGraphics | ||
11305 | [ | ||
11306 | text " | ||
11307 | FunctionalInterface class | ||
11308 | " | ||
11309 | fontSize 14 | ||
11310 | fontName "Consolas" | ||
11311 | alignment "left" | ||
11312 | anchor "tl" | ||
11313 | borderDistance 6 | ||
11314 | ] | ||
11315 | ] | ||
11316 | |||
11317 | node | ||
11318 | [ | ||
11319 | id 8 | ||
11320 | graphics | ||
11321 | [ | ||
11322 | w 184.8 | ||
11323 | h 54 | ||
11324 | type "rectangle" | ||
11325 | fill "#FFFFFF" | ||
11326 | fill2 "#FFFFFF" | ||
11327 | outline "#000000" | ||
11328 | ] | ||
11329 | LabelGraphics | ||
11330 | [ | ||
11331 | text "null" | ||
11332 | outline "#000000" | ||
11333 | fill "#FFFFFF" | ||
11334 | fontSize 16 | ||
11335 | fontName "Monospace" | ||
11336 | autoSizePolicy "node_width" | ||
11337 | anchor "t" | ||
11338 | borderDistance 0.0 | ||
11339 | ] | ||
11340 | LabelGraphics | ||
11341 | [ | ||
11342 | text " | ||
11343 | FunctionalOutput class | ||
11344 | FunctionalData class | ||
11345 | " | ||
11346 | fontSize 14 | ||
11347 | fontName "Consolas" | ||
11348 | alignment "left" | ||
11349 | anchor "tl" | ||
11350 | borderDistance 6 | ||
11351 | ] | ||
11352 | ] | ||
11353 | |||
11354 | node | ||
11355 | [ | ||
11356 | id 9 | ||
11357 | graphics | ||
11358 | [ | ||
11359 | w 161.70000000000002 | ||
11360 | h 40 | ||
11361 | type "rectangle" | ||
11362 | fill "#FFFFFF" | ||
11363 | fill2 "#FFFFFF" | ||
11364 | outline "#000000" | ||
11365 | ] | ||
11366 | LabelGraphics | ||
11367 | [ | ||
11368 | text "null" | ||
11369 | outline "#000000" | ||
11370 | fill "#FFFFFF" | ||
11371 | fontSize 16 | ||
11372 | fontName "Monospace" | ||
11373 | autoSizePolicy "node_width" | ||
11374 | anchor "t" | ||
11375 | borderDistance 0.0 | ||
11376 | ] | ||
11377 | LabelGraphics | ||
11378 | [ | ||
11379 | text " | ||
11380 | FAMTerminator class | ||
11381 | " | ||
11382 | fontSize 14 | ||
11383 | fontName "Consolas" | ||
11384 | alignment "left" | ||
11385 | anchor "tl" | ||
11386 | borderDistance 6 | ||
11387 | ] | ||
11388 | ] | ||
11389 | |||
11390 | node | ||
11391 | [ | ||
11392 | id 10 | ||
11393 | graphics | ||
11394 | [ | ||
11395 | w 184.8 | ||
11396 | h 54 | ||
11397 | type "rectangle" | ||
11398 | fill "#FFFFFF" | ||
11399 | fill2 "#FFFFFF" | ||
11400 | outline "#000000" | ||
11401 | ] | ||
11402 | LabelGraphics | ||
11403 | [ | ||
11404 | text "null" | ||
11405 | outline "#000000" | ||
11406 | fill "#FFFFFF" | ||
11407 | fontSize 16 | ||
11408 | fontName "Monospace" | ||
11409 | autoSizePolicy "node_width" | ||
11410 | anchor "t" | ||
11411 | borderDistance 0.0 | ||
11412 | ] | ||
11413 | LabelGraphics | ||
11414 | [ | ||
11415 | text " | ||
11416 | FunctionalOutput class | ||
11417 | FunctionalData class | ||
11418 | " | ||
11419 | fontSize 14 | ||
11420 | fontName "Consolas" | ||
11421 | alignment "left" | ||
11422 | anchor "tl" | ||
11423 | borderDistance 6 | ||
11424 | ] | ||
11425 | ] | ||
11426 | |||
11427 | node | ||
11428 | [ | ||
11429 | id 11 | ||
11430 | graphics | ||
11431 | [ | ||
11432 | w 192.50000000000003 | ||
11433 | h 54 | ||
11434 | type "rectangle" | ||
11435 | fill "#FFFFFF" | ||
11436 | fill2 "#FFFFFF" | ||
11437 | outline "#000000" | ||
11438 | ] | ||
11439 | LabelGraphics | ||
11440 | [ | ||
11441 | text "null" | ||
11442 | outline "#000000" | ||
11443 | fill "#FFFFFF" | ||
11444 | fontSize 16 | ||
11445 | fontName "Monospace" | ||
11446 | autoSizePolicy "node_width" | ||
11447 | anchor "t" | ||
11448 | borderDistance 0.0 | ||
11449 | ] | ||
11450 | LabelGraphics | ||
11451 | [ | ||
11452 | text " | ||
11453 | FunctionalElement class | ||
11454 | Function class | ||
11455 | " | ||
11456 | fontSize 14 | ||
11457 | fontName "Consolas" | ||
11458 | alignment "left" | ||
11459 | anchor "tl" | ||
11460 | borderDistance 6 | ||
11461 | ] | ||
11462 | ] | ||
11463 | |||
11464 | node | ||
11465 | [ | ||
11466 | id 12 | ||
11467 | graphics | ||
11468 | [ | ||
11469 | w 112.2 | ||
11470 | h 26 | ||
11471 | type "rectangle" | ||
11472 | fill "#FFFFFF" | ||
11473 | fill2 "#FFFFFF" | ||
11474 | outline "#000000" | ||
11475 | ] | ||
11476 | LabelGraphics | ||
11477 | [ | ||
11478 | text "New Integers" | ||
11479 | outline "#000000" | ||
11480 | fill "#FFFFFF" | ||
11481 | fontSize 16 | ||
11482 | fontName "Monospace" | ||
11483 | autoSizePolicy "node_width" | ||
11484 | anchor "t" | ||
11485 | borderDistance 0.0 | ||
11486 | ] | ||
11487 | LabelGraphics | ||
11488 | [ | ||
11489 | text " | ||
11490 | " | ||
11491 | fontSize 14 | ||
11492 | fontName "Consolas" | ||
11493 | alignment "left" | ||
11494 | anchor "tl" | ||
11495 | borderDistance 6 | ||
11496 | ] | ||
11497 | ] | ||
11498 | |||
11499 | node | ||
11500 | [ | ||
11501 | id 13 | ||
11502 | graphics | ||
11503 | [ | ||
11504 | w 85.80000000000001 | ||
11505 | h 26 | ||
11506 | type "rectangle" | ||
11507 | fill "#FFFFFF" | ||
11508 | fill2 "#FFFFFF" | ||
11509 | outline "#000000" | ||
11510 | ] | ||
11511 | LabelGraphics | ||
11512 | [ | ||
11513 | text "New Reals" | ||
11514 | outline "#000000" | ||
11515 | fill "#FFFFFF" | ||
11516 | fontSize 16 | ||
11517 | fontName "Monospace" | ||
11518 | autoSizePolicy "node_width" | ||
11519 | anchor "t" | ||
11520 | borderDistance 0.0 | ||
11521 | ] | ||
11522 | LabelGraphics | ||
11523 | [ | ||
11524 | text " | ||
11525 | " | ||
11526 | fontSize 14 | ||
11527 | fontName "Consolas" | ||
11528 | alignment "left" | ||
11529 | anchor "tl" | ||
11530 | borderDistance 6 | ||
11531 | ] | ||
11532 | ] | ||
11533 | |||
11534 | node | ||
11535 | [ | ||
11536 | id 14 | ||
11537 | graphics | ||
11538 | [ | ||
11539 | w 103.4 | ||
11540 | h 26 | ||
11541 | type "rectangle" | ||
11542 | fill "#FFFFFF" | ||
11543 | fill2 "#FFFFFF" | ||
11544 | outline "#000000" | ||
11545 | ] | ||
11546 | LabelGraphics | ||
11547 | [ | ||
11548 | text "New Strings" | ||
11549 | outline "#000000" | ||
11550 | fill "#FFFFFF" | ||
11551 | fontSize 16 | ||
11552 | fontName "Monospace" | ||
11553 | autoSizePolicy "node_width" | ||
11554 | anchor "t" | ||
11555 | borderDistance 0.0 | ||
11556 | ] | ||
11557 | LabelGraphics | ||
11558 | [ | ||
11559 | text " | ||
11560 | " | ||
11561 | fontSize 14 | ||
11562 | fontName "Consolas" | ||
11563 | alignment "left" | ||
11564 | anchor "tl" | ||
11565 | borderDistance 6 | ||
11566 | ] | ||
11567 | ] | ||
11568 | |||
11569 | node | ||
11570 | [ | ||
11571 | id 15 | ||
11572 | graphics | ||
11573 | [ | ||
11574 | w 103.4 | ||
11575 | h 26 | ||
11576 | type "rectangle" | ||
11577 | fill "#FFFFFF" | ||
11578 | fill2 "#FFFFFF" | ||
11579 | outline "#000000" | ||
11580 | ] | ||
11581 | LabelGraphics | ||
11582 | [ | ||
11583 | text "New Objects" | ||
11584 | outline "#000000" | ||
11585 | fill "#FFFFFF" | ||
11586 | fontSize 16 | ||
11587 | fontName "Monospace" | ||
11588 | autoSizePolicy "node_width" | ||
11589 | anchor "t" | ||
11590 | borderDistance 0.0 | ||
11591 | ] | ||
11592 | LabelGraphics | ||
11593 | [ | ||
11594 | text " | ||
11595 | " | ||
11596 | fontSize 14 | ||
11597 | fontName "Consolas" | ||
11598 | alignment "left" | ||
11599 | anchor "tl" | ||
11600 | borderDistance 6 | ||
11601 | ] | ||
11602 | ] | ||
11603 | edge | ||
11604 | [ | ||
11605 | source 6 | ||
11606 | target 7 | ||
11607 | graphics | ||
11608 | [ | ||
11609 | fill "#000000" | ||
11610 | width 3 | ||
11611 | targetArrow "standard" | ||
11612 | ] | ||
11613 | LabelGraphics | ||
11614 | [ | ||
11615 | text "interface reference FunctionalElement" | ||
11616 | fontSize 14 | ||
11617 | fontName "Consolas" | ||
11618 | configuration "AutoFlippingLabel" | ||
11619 | model "six_pos" | ||
11620 | position "thead" | ||
11621 | ] | ||
11622 | ] | ||
11623 | edge | ||
11624 | [ | ||
11625 | source 6 | ||
11626 | target 3 | ||
11627 | graphics | ||
11628 | [ | ||
11629 | fill "#000000" | ||
11630 | targetArrow "standard" | ||
11631 | ] | ||
11632 | LabelGraphics | ||
11633 | [ | ||
11634 | text "model reference FunctionalElement" | ||
11635 | fontSize 14 | ||
11636 | fontName "Consolas" | ||
11637 | configuration "AutoFlippingLabel" | ||
11638 | model "six_pos" | ||
11639 | position "thead" | ||
11640 | ] | ||
11641 | ] | ||
11642 | edge | ||
11643 | [ | ||
11644 | source 11 | ||
11645 | target 3 | ||
11646 | graphics | ||
11647 | [ | ||
11648 | fill "#000000" | ||
11649 | targetArrow "standard" | ||
11650 | ] | ||
11651 | LabelGraphics | ||
11652 | [ | ||
11653 | text "model reference FunctionalElement" | ||
11654 | fontSize 14 | ||
11655 | fontName "Consolas" | ||
11656 | configuration "AutoFlippingLabel" | ||
11657 | model "six_pos" | ||
11658 | position "thead" | ||
11659 | ] | ||
11660 | ] | ||
11661 | edge | ||
11662 | [ | ||
11663 | source 3 | ||
11664 | target 6 | ||
11665 | graphics | ||
11666 | [ | ||
11667 | fill "#000000" | ||
11668 | width 3 | ||
11669 | targetArrow "standard" | ||
11670 | ] | ||
11671 | LabelGraphics | ||
11672 | [ | ||
11673 | text "rootElements reference FunctionalArchitectureModel" | ||
11674 | fontSize 14 | ||
11675 | fontName "Consolas" | ||
11676 | configuration "AutoFlippingLabel" | ||
11677 | model "six_pos" | ||
11678 | position "thead" | ||
11679 | ] | ||
11680 | ] | ||
11681 | edge | ||
11682 | [ | ||
11683 | source 3 | ||
11684 | target 11 | ||
11685 | graphics | ||
11686 | [ | ||
11687 | fill "#000000" | ||
11688 | width 3 | ||
11689 | targetArrow "standard" | ||
11690 | ] | ||
11691 | LabelGraphics | ||
11692 | [ | ||
11693 | text "rootElements reference FunctionalArchitectureModel" | ||
11694 | fontSize 14 | ||
11695 | fontName "Consolas" | ||
11696 | configuration "AutoFlippingLabel" | ||
11697 | model "six_pos" | ||
11698 | position "thead" | ||
11699 | ] | ||
11700 | ] | ||
11701 | edge | ||
11702 | [ | ||
11703 | source 9 | ||
11704 | target 8 | ||
11705 | graphics | ||
11706 | [ | ||
11707 | fill "#000000" | ||
11708 | targetArrow "standard" | ||
11709 | ] | ||
11710 | LabelGraphics | ||
11711 | [ | ||
11712 | text "data reference FAMTerminator" | ||
11713 | fontSize 14 | ||
11714 | fontName "Consolas" | ||
11715 | configuration "AutoFlippingLabel" | ||
11716 | model "six_pos" | ||
11717 | position "thead" | ||
11718 | ] | ||
11719 | ] | ||
11720 | edge | ||
11721 | [ | ||
11722 | source 7 | ||
11723 | target 8 | ||
11724 | graphics | ||
11725 | [ | ||
11726 | fill "#000000" | ||
11727 | width 3 | ||
11728 | targetArrow "standard" | ||
11729 | ] | ||
11730 | LabelGraphics | ||
11731 | [ | ||
11732 | text "data reference FunctionalInterface" | ||
11733 | fontSize 14 | ||
11734 | fontName "Consolas" | ||
11735 | configuration "AutoFlippingLabel" | ||
11736 | model "six_pos" | ||
11737 | position "thead" | ||
11738 | ] | ||
11739 | ] | ||
11740 | edge | ||
11741 | [ | ||
11742 | source 7 | ||
11743 | target 10 | ||
11744 | graphics | ||
11745 | [ | ||
11746 | fill "#000000" | ||
11747 | width 3 | ||
11748 | targetArrow "standard" | ||
11749 | ] | ||
11750 | LabelGraphics | ||
11751 | [ | ||
11752 | text "data reference FunctionalInterface" | ||
11753 | fontSize 14 | ||
11754 | fontName "Consolas" | ||
11755 | configuration "AutoFlippingLabel" | ||
11756 | model "six_pos" | ||
11757 | position "thead" | ||
11758 | ] | ||
11759 | ] | ||
11760 | edge | ||
11761 | [ | ||
11762 | source 7 | ||
11763 | target 6 | ||
11764 | graphics | ||
11765 | [ | ||
11766 | fill "#000000" | ||
11767 | targetArrow "standard" | ||
11768 | ] | ||
11769 | LabelGraphics | ||
11770 | [ | ||
11771 | text "element reference FunctionalInterface" | ||
11772 | fontSize 14 | ||
11773 | fontName "Consolas" | ||
11774 | configuration "AutoFlippingLabel" | ||
11775 | model "six_pos" | ||
11776 | position "thead" | ||
11777 | ] | ||
11778 | ] | ||
11779 | edge | ||
11780 | [ | ||
11781 | source 8 | ||
11782 | target 9 | ||
11783 | graphics | ||
11784 | [ | ||
11785 | fill "#000000" | ||
11786 | width 3 | ||
11787 | targetArrow "standard" | ||
11788 | ] | ||
11789 | LabelGraphics | ||
11790 | [ | ||
11791 | text "terminator reference FunctionalData" | ||
11792 | fontSize 14 | ||
11793 | fontName "Consolas" | ||
11794 | configuration "AutoFlippingLabel" | ||
11795 | model "six_pos" | ||
11796 | position "thead" | ||
11797 | ] | ||
11798 | ] | ||
11799 | edge | ||
11800 | [ | ||
11801 | source 8 | ||
11802 | target 7 | ||
11803 | graphics | ||
11804 | [ | ||
11805 | fill "#000000" | ||
11806 | targetArrow "standard" | ||
11807 | ] | ||
11808 | LabelGraphics | ||
11809 | [ | ||
11810 | text "interface reference FunctionalData" | ||
11811 | fontSize 14 | ||
11812 | fontName "Consolas" | ||
11813 | configuration "AutoFlippingLabel" | ||
11814 | model "six_pos" | ||
11815 | position "thead" | ||
11816 | ] | ||
11817 | ] | ||
11818 | edge | ||
11819 | [ | ||
11820 | source 10 | ||
11821 | target 7 | ||
11822 | graphics | ||
11823 | [ | ||
11824 | fill "#000000" | ||
11825 | targetArrow "standard" | ||
11826 | ] | ||
11827 | LabelGraphics | ||
11828 | [ | ||
11829 | text "interface reference FunctionalData" | ||
11830 | fontSize 14 | ||
11831 | fontName "Consolas" | ||
11832 | configuration "AutoFlippingLabel" | ||
11833 | model "six_pos" | ||
11834 | position "thead" | ||
11835 | ] | ||
11836 | ] | ||
11837 | edge | ||
11838 | [ | ||
11839 | source 6 | ||
11840 | target 0 | ||
11841 | graphics | ||
11842 | [ | ||
11843 | fill "#000000" | ||
11844 | targetArrow "standard" | ||
11845 | ] | ||
11846 | LabelGraphics | ||
11847 | [ | ||
11848 | text "type attribute Function" | ||
11849 | fontSize 14 | ||
11850 | fontName "Consolas" | ||
11851 | configuration "AutoFlippingLabel" | ||
11852 | model "six_pos" | ||
11853 | position "thead" | ||
11854 | ] | ||
11855 | ] | ||
11856 | edge | ||
11857 | [ | ||
11858 | source 11 | ||
11859 | target 2 | ||
11860 | graphics | ||
11861 | [ | ||
11862 | fill "#000000" | ||
11863 | targetArrow "standard" | ||
11864 | ] | ||
11865 | LabelGraphics | ||
11866 | [ | ||
11867 | text "type attribute Function" | ||
11868 | fontSize 14 | ||
11869 | fontName "Consolas" | ||
11870 | configuration "AutoFlippingLabel" | ||
11871 | model "six_pos" | ||
11872 | position "thead" | ||
11873 | ] | ||
11874 | ] | ||
11875 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png index 3c09036a..a141edb0 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi index 21ac69a6..c5049270 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/models/5.xmi | |||
@@ -1,10 +1,12 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <fam:FunctionalInterface xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> | 2 | <fam:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FamMetamodel"> |
3 | <data xsi:type="fam:FunctionalInput"/> | 3 | <rootElements xsi:type="fam:Function"/> |
4 | <data xsi:type="fam:FunctionalInput"/> | 4 | <rootElements xsi:type="fam:Function"> |
5 | <data xsi:type="fam:FunctionalOutput"/> | 5 | <interface> |
6 | <data xsi:type="fam:FunctionalOutput"> | 6 | <data xsi:type="fam:FunctionalOutput"/> |
7 | <terminator/> | 7 | <data xsi:type="fam:FunctionalOutput"> |
8 | </data> | 8 | <terminator/> |
9 | <data xsi:type="fam:FunctionalOutput"/> | 9 | </data> |
10 | </fam:FunctionalInterface> | 10 | </interface> |
11 | </rootElements> | ||
12 | </fam:FunctionalArchitectureModel> | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv index f0a5df58..9f61f0e9 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/statistics.csv | |||
@@ -18,3 +18,11 @@ Task;Run;Result;Domain to logic transformation time;Logic to solver transformati | |||
18 | 1;1;ModelResultImpl;1;928;1173;8877697600;49;109;128;149;167;83;5;2;0;3 | 18 | 1;1;ModelResultImpl;1;928;1173;8877697600;49;109;128;149;167;83;5;2;0;3 |
19 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | 19 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime |
20 | 1;1;ModelResultImpl;2;1070;1291;9164916500;97;114;167;249;276;120;8;3;0;3 | 20 | 1;1;ModelResultImpl;2;1070;1291;9164916500;97;114;167;249;276;120;8;3;0;3 |
21 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
22 | 1;1;ModelResultImpl;2;1595;1756;13001782700;63;89;115;147;177;94;13;3;0;5 | ||
23 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
24 | 1;1;ModelResultImpl;189;2560;2666;10577938300;240;291;346;491;534;277;137;14;0;10 | ||
25 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
26 | 1;1;ModelResultImpl;16;1673;1881;10488189500;142;240;275;311;375;191;21;7;0;5 | ||
27 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
28 | 1;1;ModelResultImpl;47;1835;2309;9517642900;281;405;544;574;580;325;17;13;0;6 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated index 5ac9e1dc..f2e524ab 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generated3valued.vql_deactivated | |||
@@ -26323,3 +26323,2928 @@ pattern refineRelation_incomingTransitions_reference_Vertex_and_target_reference | |||
26323 | find mayInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); | 26323 | find mayInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); |
26324 | neg find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); | 26324 | neg find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); |
26325 | } | 26325 | } |
26326 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
26327 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
26328 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
26329 | |||
26330 | ////////// | ||
26331 | // 0. Util | ||
26332 | ////////// | ||
26333 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26334 | PartialInterpretation.problem(interpretation,problem); | ||
26335 | } | ||
26336 | |||
26337 | ///////////////////////// | ||
26338 | // 0.1 Existence | ||
26339 | ///////////////////////// | ||
26340 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26341 | find interpretation(problem,interpretation); | ||
26342 | LogicProblem.elements(problem,element); | ||
26343 | } or { | ||
26344 | find interpretation(problem,interpretation); | ||
26345 | PartialInterpretation.newElements(interpretation,element); | ||
26346 | } | ||
26347 | |||
26348 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26349 | find mustExist(problem,interpretation,element); | ||
26350 | } or { | ||
26351 | find interpretation(problem,interpretation); | ||
26352 | neg find elementCloseWorld(element); | ||
26353 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26354 | } | ||
26355 | |||
26356 | private pattern elementCloseWorld(element:DefinedElement) { | ||
26357 | PartialInterpretation.openWorldElements(i,element); | ||
26358 | PartialInterpretation.maxNewElements(i,0); | ||
26359 | } or { | ||
26360 | Scope.targetTypeInterpretation(scope,interpretation); | ||
26361 | PartialTypeInterpratation.elements(interpretation,element); | ||
26362 | Scope.maxNewElements(scope,0); | ||
26363 | } | ||
26364 | |||
26365 | //////////////////////// | ||
26366 | // 0.2 Equivalence | ||
26367 | //////////////////////// | ||
26368 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
26369 | find mayExist(problem,interpretation,a); | ||
26370 | find mayExist(problem,interpretation,b); | ||
26371 | a == b; | ||
26372 | } | ||
26373 | |||
26374 | //////////////////////// | ||
26375 | // 0.3 Required Patterns by TypeIndexer | ||
26376 | //////////////////////// | ||
26377 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
26378 | find interpretation(problem,interpretation); | ||
26379 | LogicProblem.types(problem,type); | ||
26380 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
26381 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26382 | } | ||
26383 | |||
26384 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
26385 | find interpretation(problem,interpretation); | ||
26386 | LogicProblem.types(problem,type); | ||
26387 | TypeDefinition.elements(type,element); | ||
26388 | } or { | ||
26389 | find interpretation(problem,interpretation); | ||
26390 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
26391 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
26392 | } | ||
26393 | |||
26394 | private pattern isPrimitive(element: PrimitiveElement) { | ||
26395 | PrimitiveElement(element); | ||
26396 | } | ||
26397 | |||
26398 | ////////// | ||
26399 | // 1. Problem-Specific Base Indexers | ||
26400 | ////////// | ||
26401 | // 1.1 Type Indexers | ||
26402 | ////////// | ||
26403 | // 1.1.1 primitive Type Indexers | ||
26404 | ////////// | ||
26405 | |||
26406 | ////////// | ||
26407 | // 1.1.2 domain-specific Type Indexers | ||
26408 | ////////// | ||
26409 | /** | ||
26410 | * An element must be an instance of type "Pseudostate class". | ||
26411 | */ | ||
26412 | private pattern mustInstanceOfPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26413 | Type.name(type,"Pseudostate class"); | ||
26414 | find directInstanceOf(problem,interpretation,element,type); | ||
26415 | } | ||
26416 | private pattern scopeDisallowsNewPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26417 | find interpretation(problem,interpretation); | ||
26418 | PartialInterpretation.scopes(interpretation,scope); | ||
26419 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26420 | Scope.maxNewElements(scope,0); | ||
26421 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26422 | Type.name(type,"Pseudostate class"); | ||
26423 | } | ||
26424 | |||
26425 | /** | ||
26426 | * An element may be an instance of type "Pseudostate class". | ||
26427 | */ | ||
26428 | private pattern mayInstanceOfPseudostate_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26429 | { | ||
26430 | find interpretation(problem,interpretation); | ||
26431 | PartialInterpretation.newElements(interpretation,element); | ||
26432 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26433 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26434 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26435 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26436 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26437 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26438 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26439 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26440 | neg find scopeDisallowsNewPseudostate_class(problem, interpretation); | ||
26441 | neg find isPrimitive(element); | ||
26442 | } or { | ||
26443 | find interpretation(problem,interpretation); | ||
26444 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26445 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26446 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26447 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26448 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26449 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26450 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26451 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26452 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26453 | neg find scopeDisallowsNewPseudostate_class(problem, interpretation); | ||
26454 | neg find isPrimitive(element); | ||
26455 | } or | ||
26456 | { find mustInstanceOfPseudostate_class(problem,interpretation,element); } | ||
26457 | /** | ||
26458 | * An element must be an instance of type "Vertex class". | ||
26459 | */ | ||
26460 | private pattern mustInstanceOfVertex_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26461 | Type.name(type,"Vertex class"); | ||
26462 | find directInstanceOf(problem,interpretation,element,type); | ||
26463 | } | ||
26464 | private pattern scopeDisallowsNewVertex_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26465 | find interpretation(problem,interpretation); | ||
26466 | PartialInterpretation.scopes(interpretation,scope); | ||
26467 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26468 | Scope.maxNewElements(scope,0); | ||
26469 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26470 | Type.name(type,"Vertex class"); | ||
26471 | } | ||
26472 | |||
26473 | /** | ||
26474 | * An element may be an instance of type "Vertex class". | ||
26475 | */ | ||
26476 | private pattern mayInstanceOfVertex_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26477 | { | ||
26478 | find interpretation(problem,interpretation); | ||
26479 | PartialInterpretation.newElements(interpretation,element); | ||
26480 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26481 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26482 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26483 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26484 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26485 | neg find scopeDisallowsNewVertex_class(problem, interpretation); | ||
26486 | neg find isPrimitive(element); | ||
26487 | } or { | ||
26488 | find interpretation(problem,interpretation); | ||
26489 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26490 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26491 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26492 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26493 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26494 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26495 | neg find scopeDisallowsNewVertex_class(problem, interpretation); | ||
26496 | neg find isPrimitive(element); | ||
26497 | } or | ||
26498 | { find mustInstanceOfVertex_class(problem,interpretation,element); } | ||
26499 | /** | ||
26500 | * An element must be an instance of type "Region class". | ||
26501 | */ | ||
26502 | private pattern mustInstanceOfRegion_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26503 | Type.name(type,"Region class"); | ||
26504 | find directInstanceOf(problem,interpretation,element,type); | ||
26505 | } | ||
26506 | private pattern scopeDisallowsNewRegion_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26507 | find interpretation(problem,interpretation); | ||
26508 | PartialInterpretation.scopes(interpretation,scope); | ||
26509 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26510 | Scope.maxNewElements(scope,0); | ||
26511 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26512 | Type.name(type,"Region class"); | ||
26513 | } | ||
26514 | |||
26515 | /** | ||
26516 | * An element may be an instance of type "Region class". | ||
26517 | */ | ||
26518 | private pattern mayInstanceOfRegion_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26519 | { | ||
26520 | find interpretation(problem,interpretation); | ||
26521 | PartialInterpretation.newElements(interpretation,element); | ||
26522 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26523 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26524 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26525 | neg find scopeDisallowsNewRegion_class(problem, interpretation); | ||
26526 | neg find isPrimitive(element); | ||
26527 | } or { | ||
26528 | find interpretation(problem,interpretation); | ||
26529 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26530 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26531 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26532 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26533 | neg find scopeDisallowsNewRegion_class(problem, interpretation); | ||
26534 | neg find isPrimitive(element); | ||
26535 | } or | ||
26536 | { find mustInstanceOfRegion_class(problem,interpretation,element); } | ||
26537 | /** | ||
26538 | * An element must be an instance of type "Transition class". | ||
26539 | */ | ||
26540 | private pattern mustInstanceOfTransition_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26541 | Type.name(type,"Transition class"); | ||
26542 | find directInstanceOf(problem,interpretation,element,type); | ||
26543 | } | ||
26544 | private pattern scopeDisallowsNewTransition_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26545 | find interpretation(problem,interpretation); | ||
26546 | PartialInterpretation.scopes(interpretation,scope); | ||
26547 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26548 | Scope.maxNewElements(scope,0); | ||
26549 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26550 | Type.name(type,"Transition class"); | ||
26551 | } | ||
26552 | |||
26553 | /** | ||
26554 | * An element may be an instance of type "Transition class". | ||
26555 | */ | ||
26556 | private pattern mayInstanceOfTransition_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26557 | { | ||
26558 | find interpretation(problem,interpretation); | ||
26559 | PartialInterpretation.newElements(interpretation,element); | ||
26560 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26561 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26562 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26563 | neg find scopeDisallowsNewTransition_class(problem, interpretation); | ||
26564 | neg find isPrimitive(element); | ||
26565 | } or { | ||
26566 | find interpretation(problem,interpretation); | ||
26567 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26568 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26569 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26570 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26571 | neg find scopeDisallowsNewTransition_class(problem, interpretation); | ||
26572 | neg find isPrimitive(element); | ||
26573 | } or | ||
26574 | { find mustInstanceOfTransition_class(problem,interpretation,element); } | ||
26575 | /** | ||
26576 | * An element must be an instance of type "Statechart class". | ||
26577 | */ | ||
26578 | private pattern mustInstanceOfStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26579 | Type.name(type,"Statechart class"); | ||
26580 | find directInstanceOf(problem,interpretation,element,type); | ||
26581 | } | ||
26582 | private pattern scopeDisallowsNewStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26583 | find interpretation(problem,interpretation); | ||
26584 | PartialInterpretation.scopes(interpretation,scope); | ||
26585 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26586 | Scope.maxNewElements(scope,0); | ||
26587 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26588 | Type.name(type,"Statechart class"); | ||
26589 | } | ||
26590 | |||
26591 | /** | ||
26592 | * An element may be an instance of type "Statechart class". | ||
26593 | */ | ||
26594 | private pattern mayInstanceOfStatechart_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26595 | { | ||
26596 | find interpretation(problem,interpretation); | ||
26597 | PartialInterpretation.newElements(interpretation,element); | ||
26598 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26599 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26600 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26601 | neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element); | ||
26602 | neg find scopeDisallowsNewStatechart_class(problem, interpretation); | ||
26603 | neg find isPrimitive(element); | ||
26604 | } or { | ||
26605 | find interpretation(problem,interpretation); | ||
26606 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26607 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26608 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26609 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26610 | neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element); | ||
26611 | neg find scopeDisallowsNewStatechart_class(problem, interpretation); | ||
26612 | neg find isPrimitive(element); | ||
26613 | } or | ||
26614 | { find mustInstanceOfStatechart_class(problem,interpretation,element); } | ||
26615 | /** | ||
26616 | * An element must be an instance of type "Entry class". | ||
26617 | */ | ||
26618 | private pattern mustInstanceOfEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26619 | Type.name(type,"Entry class"); | ||
26620 | find directInstanceOf(problem,interpretation,element,type); | ||
26621 | } | ||
26622 | private pattern scopeDisallowsNewEntry_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26623 | find interpretation(problem,interpretation); | ||
26624 | PartialInterpretation.scopes(interpretation,scope); | ||
26625 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26626 | Scope.maxNewElements(scope,0); | ||
26627 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26628 | Type.name(type,"Entry class"); | ||
26629 | } | ||
26630 | |||
26631 | /** | ||
26632 | * An element may be an instance of type "Entry class". | ||
26633 | */ | ||
26634 | private pattern mayInstanceOfEntry_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26635 | { | ||
26636 | find interpretation(problem,interpretation); | ||
26637 | PartialInterpretation.newElements(interpretation,element); | ||
26638 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26639 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26640 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26641 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26642 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26643 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26644 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26645 | neg find scopeDisallowsNewEntry_class(problem, interpretation); | ||
26646 | neg find isPrimitive(element); | ||
26647 | } or { | ||
26648 | find interpretation(problem,interpretation); | ||
26649 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26650 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26651 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26652 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26653 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26654 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26655 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26656 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26657 | neg find scopeDisallowsNewEntry_class(problem, interpretation); | ||
26658 | neg find isPrimitive(element); | ||
26659 | } or | ||
26660 | { find mustInstanceOfEntry_class(problem,interpretation,element); } | ||
26661 | /** | ||
26662 | * An element must be an instance of type "Synchronization class". | ||
26663 | */ | ||
26664 | private pattern mustInstanceOfSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26665 | Type.name(type,"Synchronization class"); | ||
26666 | find directInstanceOf(problem,interpretation,element,type); | ||
26667 | } | ||
26668 | private pattern scopeDisallowsNewSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26669 | find interpretation(problem,interpretation); | ||
26670 | PartialInterpretation.scopes(interpretation,scope); | ||
26671 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26672 | Scope.maxNewElements(scope,0); | ||
26673 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26674 | Type.name(type,"Synchronization class"); | ||
26675 | } | ||
26676 | |||
26677 | /** | ||
26678 | * An element may be an instance of type "Synchronization class". | ||
26679 | */ | ||
26680 | private pattern mayInstanceOfSynchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26681 | { | ||
26682 | find interpretation(problem,interpretation); | ||
26683 | PartialInterpretation.newElements(interpretation,element); | ||
26684 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26685 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26686 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26687 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26688 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26689 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26690 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26691 | neg find scopeDisallowsNewSynchronization_class(problem, interpretation); | ||
26692 | neg find isPrimitive(element); | ||
26693 | } or { | ||
26694 | find interpretation(problem,interpretation); | ||
26695 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26696 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26697 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26698 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26699 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26700 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26701 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26702 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26703 | neg find scopeDisallowsNewSynchronization_class(problem, interpretation); | ||
26704 | neg find isPrimitive(element); | ||
26705 | } or | ||
26706 | { find mustInstanceOfSynchronization_class(problem,interpretation,element); } | ||
26707 | /** | ||
26708 | * An element must be an instance of type "State class". | ||
26709 | */ | ||
26710 | private pattern mustInstanceOfState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26711 | Type.name(type,"State class"); | ||
26712 | find directInstanceOf(problem,interpretation,element,type); | ||
26713 | } | ||
26714 | private pattern scopeDisallowsNewState_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26715 | find interpretation(problem,interpretation); | ||
26716 | PartialInterpretation.scopes(interpretation,scope); | ||
26717 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26718 | Scope.maxNewElements(scope,0); | ||
26719 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26720 | Type.name(type,"State class"); | ||
26721 | } | ||
26722 | |||
26723 | /** | ||
26724 | * An element may be an instance of type "State class". | ||
26725 | */ | ||
26726 | private pattern mayInstanceOfState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26727 | { | ||
26728 | find interpretation(problem,interpretation); | ||
26729 | PartialInterpretation.newElements(interpretation,element); | ||
26730 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26731 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26732 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
26733 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26734 | neg find mustInstanceOfFinalState_class(problem,interpretation,element); | ||
26735 | neg find scopeDisallowsNewState_class(problem, interpretation); | ||
26736 | neg find isPrimitive(element); | ||
26737 | } or { | ||
26738 | find interpretation(problem,interpretation); | ||
26739 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26740 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26741 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26742 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
26743 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26744 | neg find mustInstanceOfFinalState_class(problem,interpretation,element); | ||
26745 | neg find scopeDisallowsNewState_class(problem, interpretation); | ||
26746 | neg find isPrimitive(element); | ||
26747 | } or | ||
26748 | { find mustInstanceOfState_class(problem,interpretation,element); } | ||
26749 | /** | ||
26750 | * An element must be an instance of type "RegularState class". | ||
26751 | */ | ||
26752 | private pattern mustInstanceOfRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26753 | Type.name(type,"RegularState class"); | ||
26754 | find directInstanceOf(problem,interpretation,element,type); | ||
26755 | } | ||
26756 | private pattern scopeDisallowsNewRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26757 | find interpretation(problem,interpretation); | ||
26758 | PartialInterpretation.scopes(interpretation,scope); | ||
26759 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26760 | Scope.maxNewElements(scope,0); | ||
26761 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26762 | Type.name(type,"RegularState class"); | ||
26763 | } | ||
26764 | |||
26765 | /** | ||
26766 | * An element may be an instance of type "RegularState class". | ||
26767 | */ | ||
26768 | private pattern mayInstanceOfRegularState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26769 | { | ||
26770 | find interpretation(problem,interpretation); | ||
26771 | PartialInterpretation.newElements(interpretation,element); | ||
26772 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26773 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26774 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26775 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26776 | neg find mustInstanceOfFinalState_class(problem,interpretation,element); | ||
26777 | neg find scopeDisallowsNewRegularState_class(problem, interpretation); | ||
26778 | neg find isPrimitive(element); | ||
26779 | } or { | ||
26780 | find interpretation(problem,interpretation); | ||
26781 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26782 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26783 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26784 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26785 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26786 | neg find mustInstanceOfFinalState_class(problem,interpretation,element); | ||
26787 | neg find scopeDisallowsNewRegularState_class(problem, interpretation); | ||
26788 | neg find isPrimitive(element); | ||
26789 | } or | ||
26790 | { find mustInstanceOfRegularState_class(problem,interpretation,element); } | ||
26791 | /** | ||
26792 | * An element must be an instance of type "CompositeElement class". | ||
26793 | */ | ||
26794 | private pattern mustInstanceOfCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26795 | Type.name(type,"CompositeElement class"); | ||
26796 | find directInstanceOf(problem,interpretation,element,type); | ||
26797 | } | ||
26798 | private pattern scopeDisallowsNewCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26799 | find interpretation(problem,interpretation); | ||
26800 | PartialInterpretation.scopes(interpretation,scope); | ||
26801 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26802 | Scope.maxNewElements(scope,0); | ||
26803 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26804 | Type.name(type,"CompositeElement class"); | ||
26805 | } | ||
26806 | |||
26807 | /** | ||
26808 | * An element may be an instance of type "CompositeElement class". | ||
26809 | */ | ||
26810 | private pattern mayInstanceOfCompositeElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26811 | { | ||
26812 | find interpretation(problem,interpretation); | ||
26813 | PartialInterpretation.newElements(interpretation,element); | ||
26814 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26815 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
26816 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26817 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26818 | neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element); | ||
26819 | neg find scopeDisallowsNewCompositeElement_class(problem, interpretation); | ||
26820 | neg find isPrimitive(element); | ||
26821 | } or { | ||
26822 | find interpretation(problem,interpretation); | ||
26823 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26824 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26825 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
26826 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26827 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
26828 | neg find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element); | ||
26829 | neg find scopeDisallowsNewCompositeElement_class(problem, interpretation); | ||
26830 | neg find isPrimitive(element); | ||
26831 | } or | ||
26832 | { find mustInstanceOfCompositeElement_class(problem,interpretation,element); } | ||
26833 | /** | ||
26834 | * An element must be an instance of type "Choice class". | ||
26835 | */ | ||
26836 | private pattern mustInstanceOfChoice_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26837 | Type.name(type,"Choice class"); | ||
26838 | find directInstanceOf(problem,interpretation,element,type); | ||
26839 | } | ||
26840 | private pattern scopeDisallowsNewChoice_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26841 | find interpretation(problem,interpretation); | ||
26842 | PartialInterpretation.scopes(interpretation,scope); | ||
26843 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26844 | Scope.maxNewElements(scope,0); | ||
26845 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26846 | Type.name(type,"Choice class"); | ||
26847 | } | ||
26848 | |||
26849 | /** | ||
26850 | * An element may be an instance of type "Choice class". | ||
26851 | */ | ||
26852 | private pattern mayInstanceOfChoice_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26853 | { | ||
26854 | find interpretation(problem,interpretation); | ||
26855 | PartialInterpretation.newElements(interpretation,element); | ||
26856 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26857 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26858 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26859 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26860 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26861 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26862 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26863 | neg find scopeDisallowsNewChoice_class(problem, interpretation); | ||
26864 | neg find isPrimitive(element); | ||
26865 | } or { | ||
26866 | find interpretation(problem,interpretation); | ||
26867 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26868 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26869 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26870 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26871 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26872 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26873 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26874 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
26875 | neg find scopeDisallowsNewChoice_class(problem, interpretation); | ||
26876 | neg find isPrimitive(element); | ||
26877 | } or | ||
26878 | { find mustInstanceOfChoice_class(problem,interpretation,element); } | ||
26879 | /** | ||
26880 | * An element must be an instance of type "Exit class". | ||
26881 | */ | ||
26882 | private pattern mustInstanceOfExit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26883 | Type.name(type,"Exit class"); | ||
26884 | find directInstanceOf(problem,interpretation,element,type); | ||
26885 | } | ||
26886 | private pattern scopeDisallowsNewExit_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26887 | find interpretation(problem,interpretation); | ||
26888 | PartialInterpretation.scopes(interpretation,scope); | ||
26889 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26890 | Scope.maxNewElements(scope,0); | ||
26891 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26892 | Type.name(type,"Exit class"); | ||
26893 | } | ||
26894 | |||
26895 | /** | ||
26896 | * An element may be an instance of type "Exit class". | ||
26897 | */ | ||
26898 | private pattern mayInstanceOfExit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26899 | { | ||
26900 | find interpretation(problem,interpretation); | ||
26901 | PartialInterpretation.newElements(interpretation,element); | ||
26902 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26903 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26904 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26905 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26906 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26907 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26908 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26909 | neg find scopeDisallowsNewExit_class(problem, interpretation); | ||
26910 | neg find isPrimitive(element); | ||
26911 | } or { | ||
26912 | find interpretation(problem,interpretation); | ||
26913 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26914 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26915 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26916 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
26917 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26918 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
26919 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
26920 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
26921 | neg find scopeDisallowsNewExit_class(problem, interpretation); | ||
26922 | neg find isPrimitive(element); | ||
26923 | } or | ||
26924 | { find mustInstanceOfExit_class(problem,interpretation,element); } | ||
26925 | /** | ||
26926 | * An element must be an instance of type "FinalState class". | ||
26927 | */ | ||
26928 | private pattern mustInstanceOfFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26929 | Type.name(type,"FinalState class"); | ||
26930 | find directInstanceOf(problem,interpretation,element,type); | ||
26931 | } | ||
26932 | private pattern scopeDisallowsNewFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26933 | find interpretation(problem,interpretation); | ||
26934 | PartialInterpretation.scopes(interpretation,scope); | ||
26935 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26936 | Scope.maxNewElements(scope,0); | ||
26937 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26938 | Type.name(type,"FinalState class"); | ||
26939 | } | ||
26940 | |||
26941 | /** | ||
26942 | * An element may be an instance of type "FinalState class". | ||
26943 | */ | ||
26944 | private pattern mayInstanceOfFinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26945 | { | ||
26946 | find interpretation(problem,interpretation); | ||
26947 | PartialInterpretation.newElements(interpretation,element); | ||
26948 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26949 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26950 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26951 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26952 | neg find scopeDisallowsNewFinalState_class(problem, interpretation); | ||
26953 | neg find isPrimitive(element); | ||
26954 | } or { | ||
26955 | find interpretation(problem,interpretation); | ||
26956 | PartialInterpretation.openWorldElements(interpretation,element); | ||
26957 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
26958 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
26959 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
26960 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
26961 | neg find scopeDisallowsNewFinalState_class(problem, interpretation); | ||
26962 | neg find isPrimitive(element); | ||
26963 | } or | ||
26964 | { find mustInstanceOfFinalState_class(problem,interpretation,element); } | ||
26965 | /** | ||
26966 | * An element must be an instance of type "Statechart class DefinedPart". | ||
26967 | */ | ||
26968 | private pattern mustInstanceOfStatechart_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26969 | Type.name(type,"Statechart class DefinedPart"); | ||
26970 | find directInstanceOf(problem,interpretation,element,type); | ||
26971 | } | ||
26972 | private pattern scopeDisallowsNewStatechart_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26973 | find interpretation(problem,interpretation); | ||
26974 | PartialInterpretation.scopes(interpretation,scope); | ||
26975 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26976 | Scope.maxNewElements(scope,0); | ||
26977 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26978 | Type.name(type,"Statechart class DefinedPart"); | ||
26979 | } | ||
26980 | |||
26981 | /** | ||
26982 | * An element may be an instance of type "Statechart class DefinedPart". | ||
26983 | */ | ||
26984 | private pattern mayInstanceOfStatechart_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
26985 | { find mustInstanceOfStatechart_class_DefinedPart(problem,interpretation,element); } | ||
26986 | /** | ||
26987 | * An element must be an instance of type "Statechart class UndefinedPart". | ||
26988 | */ | ||
26989 | private pattern mustInstanceOfStatechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26990 | Type.name(type,"Statechart class UndefinedPart"); | ||
26991 | find directInstanceOf(problem,interpretation,element,type); | ||
26992 | } | ||
26993 | private pattern scopeDisallowsNewStatechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
26994 | find interpretation(problem,interpretation); | ||
26995 | PartialInterpretation.scopes(interpretation,scope); | ||
26996 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
26997 | Scope.maxNewElements(scope,0); | ||
26998 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
26999 | Type.name(type,"Statechart class UndefinedPart"); | ||
27000 | } | ||
27001 | |||
27002 | /** | ||
27003 | * An element may be an instance of type "Statechart class UndefinedPart". | ||
27004 | */ | ||
27005 | private pattern mayInstanceOfStatechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
27006 | { | ||
27007 | find interpretation(problem,interpretation); | ||
27008 | PartialInterpretation.newElements(interpretation,element); | ||
27009 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
27010 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
27011 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
27012 | neg find scopeDisallowsNewStatechart_class_UndefinedPart(problem, interpretation); | ||
27013 | neg find isPrimitive(element); | ||
27014 | } or { | ||
27015 | find interpretation(problem,interpretation); | ||
27016 | PartialInterpretation.openWorldElements(interpretation,element); | ||
27017 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
27018 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
27019 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
27020 | neg find scopeDisallowsNewStatechart_class_UndefinedPart(problem, interpretation); | ||
27021 | neg find isPrimitive(element); | ||
27022 | } or | ||
27023 | { find mustInstanceOfStatechart_class_UndefinedPart(problem,interpretation,element); } | ||
27024 | /** | ||
27025 | * An element must be an instance of type "CompositeElement class DefinedPart". | ||
27026 | */ | ||
27027 | private pattern mustInstanceOfCompositeElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
27028 | Type.name(type,"CompositeElement class DefinedPart"); | ||
27029 | find directInstanceOf(problem,interpretation,element,type); | ||
27030 | } | ||
27031 | private pattern scopeDisallowsNewCompositeElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
27032 | find interpretation(problem,interpretation); | ||
27033 | PartialInterpretation.scopes(interpretation,scope); | ||
27034 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
27035 | Scope.maxNewElements(scope,0); | ||
27036 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
27037 | Type.name(type,"CompositeElement class DefinedPart"); | ||
27038 | } | ||
27039 | |||
27040 | /** | ||
27041 | * An element may be an instance of type "CompositeElement class DefinedPart". | ||
27042 | */ | ||
27043 | private pattern mayInstanceOfCompositeElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
27044 | { find mustInstanceOfCompositeElement_class_DefinedPart(problem,interpretation,element); } | ||
27045 | /** | ||
27046 | * An element must be an instance of type "CompositeElement class UndefinedPart". | ||
27047 | */ | ||
27048 | private pattern mustInstanceOfCompositeElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
27049 | Type.name(type,"CompositeElement class UndefinedPart"); | ||
27050 | find directInstanceOf(problem,interpretation,element,type); | ||
27051 | } | ||
27052 | private pattern scopeDisallowsNewCompositeElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
27053 | find interpretation(problem,interpretation); | ||
27054 | PartialInterpretation.scopes(interpretation,scope); | ||
27055 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
27056 | Scope.maxNewElements(scope,0); | ||
27057 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
27058 | Type.name(type,"CompositeElement class UndefinedPart"); | ||
27059 | } | ||
27060 | |||
27061 | /** | ||
27062 | * An element may be an instance of type "CompositeElement class UndefinedPart". | ||
27063 | */ | ||
27064 | private pattern mayInstanceOfCompositeElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
27065 | { | ||
27066 | find interpretation(problem,interpretation); | ||
27067 | PartialInterpretation.newElements(interpretation,element); | ||
27068 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
27069 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
27070 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
27071 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
27072 | neg find scopeDisallowsNewCompositeElement_class_UndefinedPart(problem, interpretation); | ||
27073 | neg find isPrimitive(element); | ||
27074 | } or { | ||
27075 | find interpretation(problem,interpretation); | ||
27076 | PartialInterpretation.openWorldElements(interpretation,element); | ||
27077 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
27078 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
27079 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
27080 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
27081 | neg find scopeDisallowsNewCompositeElement_class_UndefinedPart(problem, interpretation); | ||
27082 | neg find isPrimitive(element); | ||
27083 | } or | ||
27084 | { find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,element); } | ||
27085 | |||
27086 | ////////// | ||
27087 | // 1.2 Relation Declaration Indexers | ||
27088 | ////////// | ||
27089 | /** | ||
27090 | * Matcher for detecting tuples t where []incomingTransitions reference Vertex(source,target) | ||
27091 | */ | ||
27092 | private pattern mustInRelationincomingTransitions_reference_Vertex( | ||
27093 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27094 | source: DefinedElement, target:DefinedElement) | ||
27095 | { | ||
27096 | find interpretation(problem,interpretation); | ||
27097 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27098 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"incomingTransitions reference Vertex"); | ||
27099 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
27100 | BinaryElementRelationLink.param1(link,source); | ||
27101 | BinaryElementRelationLink.param2(link,target); | ||
27102 | } | ||
27103 | /** | ||
27104 | * Matcher for detecting tuples t where <>incomingTransitions reference Vertex(source,target) | ||
27105 | */ | ||
27106 | private pattern mayInRelationincomingTransitions_reference_Vertex( | ||
27107 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27108 | source: DefinedElement, target:DefinedElement) | ||
27109 | { | ||
27110 | find interpretation(problem,interpretation); | ||
27111 | // The two endpoint of the link have to exist | ||
27112 | find mayExist(problem, interpretation, source); | ||
27113 | find mayExist(problem, interpretation, target); | ||
27114 | // Type consistency | ||
27115 | find mayInstanceOfVertex_class(problem,interpretation,source); | ||
27116 | find mayInstanceOfTransition_class(problem,interpretation,target); | ||
27117 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
27118 | // the upper bound of the opposite reference multiplicity should be considered. | ||
27119 | numberOfExistingOppositeReferences == count find mustInRelationtarget_reference_Transition(problem,interpretation,target,_); | ||
27120 | check(numberOfExistingOppositeReferences < 1); | ||
27121 | } or { | ||
27122 | find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,source,target); | ||
27123 | } | ||
27124 | /** | ||
27125 | * Matcher for detecting tuples t where []outgoingTransitions reference Vertex(source,target) | ||
27126 | */ | ||
27127 | private pattern mustInRelationoutgoingTransitions_reference_Vertex( | ||
27128 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27129 | source: DefinedElement, target:DefinedElement) | ||
27130 | { | ||
27131 | find interpretation(problem,interpretation); | ||
27132 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27133 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"outgoingTransitions reference Vertex"); | ||
27134 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
27135 | BinaryElementRelationLink.param1(link,source); | ||
27136 | BinaryElementRelationLink.param2(link,target); | ||
27137 | } | ||
27138 | /** | ||
27139 | * Matcher for detecting tuples t where <>outgoingTransitions reference Vertex(source,target) | ||
27140 | */ | ||
27141 | private pattern mayInRelationoutgoingTransitions_reference_Vertex( | ||
27142 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27143 | source: DefinedElement, target:DefinedElement) | ||
27144 | { | ||
27145 | find interpretation(problem,interpretation); | ||
27146 | // The two endpoint of the link have to exist | ||
27147 | find mayExist(problem, interpretation, source); | ||
27148 | find mayExist(problem, interpretation, target); | ||
27149 | // Type consistency | ||
27150 | find mayInstanceOfVertex_class(problem,interpretation,source); | ||
27151 | find mayInstanceOfTransition_class(problem,interpretation,target); | ||
27152 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
27153 | // the upper bound of the opposite reference multiplicity should be considered. | ||
27154 | numberOfExistingOppositeReferences == count find mustInRelationsource_reference_Transition(problem,interpretation,target,_); | ||
27155 | check(numberOfExistingOppositeReferences < 1); | ||
27156 | // The reference is containment, then a new reference cannot be create if: | ||
27157 | // 1. Multiple parents | ||
27158 | neg find mustContains4(problem,interpretation,_,target); | ||
27159 | // 2. Circle in the containment hierarchy | ||
27160 | neg find mustTransitiveContains(source,target); | ||
27161 | } or { | ||
27162 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,source,target); | ||
27163 | } | ||
27164 | /** | ||
27165 | * Matcher for detecting tuples t where []vertices reference Region(source,target) | ||
27166 | */ | ||
27167 | private pattern mustInRelationvertices_reference_Region( | ||
27168 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27169 | source: DefinedElement, target:DefinedElement) | ||
27170 | { | ||
27171 | find interpretation(problem,interpretation); | ||
27172 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27173 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"vertices reference Region"); | ||
27174 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
27175 | BinaryElementRelationLink.param1(link,source); | ||
27176 | BinaryElementRelationLink.param2(link,target); | ||
27177 | } | ||
27178 | /** | ||
27179 | * Matcher for detecting tuples t where <>vertices reference Region(source,target) | ||
27180 | */ | ||
27181 | private pattern mayInRelationvertices_reference_Region( | ||
27182 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27183 | source: DefinedElement, target:DefinedElement) | ||
27184 | { | ||
27185 | find interpretation(problem,interpretation); | ||
27186 | // The two endpoint of the link have to exist | ||
27187 | find mayExist(problem, interpretation, source); | ||
27188 | find mayExist(problem, interpretation, target); | ||
27189 | // Type consistency | ||
27190 | find mayInstanceOfRegion_class(problem,interpretation,source); | ||
27191 | find mayInstanceOfVertex_class(problem,interpretation,target); | ||
27192 | // The reference is containment, then a new reference cannot be create if: | ||
27193 | // 1. Multiple parents | ||
27194 | neg find mustContains4(problem,interpretation,_,target); | ||
27195 | // 2. Circle in the containment hierarchy | ||
27196 | neg find mustTransitiveContains(source,target); | ||
27197 | } or { | ||
27198 | find mustInRelationvertices_reference_Region(problem,interpretation,source,target); | ||
27199 | } | ||
27200 | /** | ||
27201 | * Matcher for detecting tuples t where []target reference Transition(source,target) | ||
27202 | */ | ||
27203 | private pattern mustInRelationtarget_reference_Transition( | ||
27204 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27205 | source: DefinedElement, target:DefinedElement) | ||
27206 | { | ||
27207 | find interpretation(problem,interpretation); | ||
27208 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27209 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference Transition"); | ||
27210 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
27211 | BinaryElementRelationLink.param1(link,source); | ||
27212 | BinaryElementRelationLink.param2(link,target); | ||
27213 | } | ||
27214 | /** | ||
27215 | * Matcher for detecting tuples t where <>target reference Transition(source,target) | ||
27216 | */ | ||
27217 | private pattern mayInRelationtarget_reference_Transition( | ||
27218 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27219 | source: DefinedElement, target:DefinedElement) | ||
27220 | { | ||
27221 | find interpretation(problem,interpretation); | ||
27222 | // The two endpoint of the link have to exist | ||
27223 | find mayExist(problem, interpretation, source); | ||
27224 | find mayExist(problem, interpretation, target); | ||
27225 | // Type consistency | ||
27226 | find mayInstanceOfTransition_class(problem,interpretation,source); | ||
27227 | find mayInstanceOfVertex_class(problem,interpretation,target); | ||
27228 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
27229 | // the upper bound of the multiplicity should be considered. | ||
27230 | numberOfExistingReferences == count find mustInRelationtarget_reference_Transition(problem,interpretation,source,_); | ||
27231 | check(numberOfExistingReferences < 1); | ||
27232 | } or { | ||
27233 | find mustInRelationtarget_reference_Transition(problem,interpretation,source,target); | ||
27234 | } | ||
27235 | /** | ||
27236 | * Matcher for detecting tuples t where []source reference Transition(source,target) | ||
27237 | */ | ||
27238 | private pattern mustInRelationsource_reference_Transition( | ||
27239 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27240 | source: DefinedElement, target:DefinedElement) | ||
27241 | { | ||
27242 | find interpretation(problem,interpretation); | ||
27243 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27244 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"source reference Transition"); | ||
27245 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
27246 | BinaryElementRelationLink.param1(link,source); | ||
27247 | BinaryElementRelationLink.param2(link,target); | ||
27248 | } | ||
27249 | /** | ||
27250 | * Matcher for detecting tuples t where <>source reference Transition(source,target) | ||
27251 | */ | ||
27252 | private pattern mayInRelationsource_reference_Transition( | ||
27253 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27254 | source: DefinedElement, target:DefinedElement) | ||
27255 | { | ||
27256 | find interpretation(problem,interpretation); | ||
27257 | // The two endpoint of the link have to exist | ||
27258 | find mayExist(problem, interpretation, source); | ||
27259 | find mayExist(problem, interpretation, target); | ||
27260 | // Type consistency | ||
27261 | find mayInstanceOfTransition_class(problem,interpretation,source); | ||
27262 | find mayInstanceOfVertex_class(problem,interpretation,target); | ||
27263 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
27264 | // the upper bound of the multiplicity should be considered. | ||
27265 | numberOfExistingReferences == count find mustInRelationsource_reference_Transition(problem,interpretation,source,_); | ||
27266 | check(numberOfExistingReferences < 1); | ||
27267 | // The eOpposite of the reference is containment, then a referene cannot be created if | ||
27268 | // 1. Multiple parents | ||
27269 | neg find mustContains4(problem,interpretation,source,_); | ||
27270 | // 2. Circle in the containment hierarchy | ||
27271 | neg find mustTransitiveContains(source,target); | ||
27272 | } or { | ||
27273 | find mustInRelationsource_reference_Transition(problem,interpretation,source,target); | ||
27274 | } | ||
27275 | /** | ||
27276 | * Matcher for detecting tuples t where []regions reference CompositeElement(source,target) | ||
27277 | */ | ||
27278 | private pattern mustInRelationregions_reference_CompositeElement( | ||
27279 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27280 | source: DefinedElement, target:DefinedElement) | ||
27281 | { | ||
27282 | find interpretation(problem,interpretation); | ||
27283 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
27284 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"regions reference CompositeElement"); | ||
27285 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
27286 | BinaryElementRelationLink.param1(link,source); | ||
27287 | BinaryElementRelationLink.param2(link,target); | ||
27288 | } | ||
27289 | /** | ||
27290 | * Matcher for detecting tuples t where <>regions reference CompositeElement(source,target) | ||
27291 | */ | ||
27292 | private pattern mayInRelationregions_reference_CompositeElement( | ||
27293 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27294 | source: DefinedElement, target:DefinedElement) | ||
27295 | { | ||
27296 | find interpretation(problem,interpretation); | ||
27297 | // The two endpoint of the link have to exist | ||
27298 | find mayExist(problem, interpretation, source); | ||
27299 | find mayExist(problem, interpretation, target); | ||
27300 | // Type consistency | ||
27301 | find mayInstanceOfCompositeElement_class(problem,interpretation,source); | ||
27302 | find mayInstanceOfRegion_class(problem,interpretation,target); | ||
27303 | // The reference is containment, then a new reference cannot be create if: | ||
27304 | // 1. Multiple parents | ||
27305 | neg find mustContains4(problem,interpretation,_,target); | ||
27306 | // 2. Circle in the containment hierarchy | ||
27307 | neg find mustTransitiveContains(source,target); | ||
27308 | } or { | ||
27309 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,source,target); | ||
27310 | } | ||
27311 | |||
27312 | ////////// | ||
27313 | // 1.3 Relation Definition Indexers | ||
27314 | ////////// | ||
27315 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries entryInRegion | ||
27316 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion( | ||
27317 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27318 | var_r1, var_e1) | ||
27319 | { | ||
27320 | find interpretation(problem,interpretation); | ||
27321 | find mustInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27322 | find mustInstanceOfEntry_class(problem,interpretation,var_e1); | ||
27323 | // r1 is exported | ||
27324 | // e1 is exported | ||
27325 | find mustInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27326 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r1,var_virtual0); | ||
27327 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27328 | var_virtual0 == var_e1; | ||
27329 | } | ||
27330 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion( | ||
27331 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27332 | var_r1, var_e1) | ||
27333 | { | ||
27334 | find interpretation(problem,interpretation); | ||
27335 | find mayInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27336 | find mayInstanceOfEntry_class(problem,interpretation,var_e1); | ||
27337 | // r1 is exported | ||
27338 | // e1 is exported | ||
27339 | find mayInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27340 | find mayInRelationvertices_reference_Region(problem,interpretation,var_r1,var_virtual0); | ||
27341 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27342 | find mayEquivalent(problem, interpretation, var_virtual0, var_e1); | ||
27343 | } | ||
27344 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion( | ||
27345 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27346 | var_r1, var_e1) | ||
27347 | { | ||
27348 | find interpretation(problem,interpretation); | ||
27349 | find mustInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27350 | find mustInstanceOfEntry_class(problem,interpretation,var_e1); | ||
27351 | // r1 is exported | ||
27352 | // e1 is exported | ||
27353 | find mustInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27354 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r1,var_virtual0); | ||
27355 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27356 | var_virtual0 == var_e1; | ||
27357 | } | ||
27358 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries noEntryInRegion | ||
27359 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion( | ||
27360 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27361 | var_r1) | ||
27362 | { | ||
27363 | find interpretation(problem,interpretation); | ||
27364 | find mustInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27365 | // r1 is exported | ||
27366 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r1,_var__0); | ||
27367 | } | ||
27368 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion( | ||
27369 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27370 | var_r1) | ||
27371 | { | ||
27372 | find interpretation(problem,interpretation); | ||
27373 | find mayInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27374 | // r1 is exported | ||
27375 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r1,_var__0); | ||
27376 | } | ||
27377 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion( | ||
27378 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27379 | var_r1) | ||
27380 | { | ||
27381 | find interpretation(problem,interpretation); | ||
27382 | find mustInstanceOfRegion_class(problem,interpretation,var_r1); | ||
27383 | // r1 is exported | ||
27384 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r1,_var__0); | ||
27385 | } | ||
27386 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries multipleEntryInRegion | ||
27387 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion( | ||
27388 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27389 | var_r) | ||
27390 | { | ||
27391 | find interpretation(problem,interpretation); | ||
27392 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27393 | // r is exported | ||
27394 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e1); | ||
27395 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e2); | ||
27396 | neg find mayEquivalent(problem, interpretation, var_e1, var_e2); | ||
27397 | } | ||
27398 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion( | ||
27399 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27400 | var_r) | ||
27401 | { | ||
27402 | find interpretation(problem,interpretation); | ||
27403 | find mayInstanceOfRegion_class(problem,interpretation,var_r); | ||
27404 | // r is exported | ||
27405 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e1); | ||
27406 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e2); | ||
27407 | var_e1 != var_e2; | ||
27408 | } | ||
27409 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion( | ||
27410 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27411 | var_r) | ||
27412 | { | ||
27413 | find interpretation(problem,interpretation); | ||
27414 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27415 | // r is exported | ||
27416 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e1); | ||
27417 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_entryInRegion(problem,interpretation,var_r,var_e2); | ||
27418 | var_e1 != var_e2; | ||
27419 | } | ||
27420 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries transition | ||
27421 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition( | ||
27422 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27423 | var_t, var_src, var_trg) | ||
27424 | { | ||
27425 | find interpretation(problem,interpretation); | ||
27426 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27427 | find mustInstanceOfVertex_class(problem,interpretation,var_src); | ||
27428 | find mustInstanceOfVertex_class(problem,interpretation,var_trg); | ||
27429 | // t is exported | ||
27430 | // src is exported | ||
27431 | // trg is exported | ||
27432 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27433 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t,var_virtual0); | ||
27434 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27435 | var_virtual0 == var_src; | ||
27436 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27437 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t,var_virtual1); | ||
27438 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27439 | var_virtual1 == var_trg; | ||
27440 | } | ||
27441 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition( | ||
27442 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27443 | var_t, var_src, var_trg) | ||
27444 | { | ||
27445 | find interpretation(problem,interpretation); | ||
27446 | find mayInstanceOfTransition_class(problem,interpretation,var_t); | ||
27447 | find mayInstanceOfVertex_class(problem,interpretation,var_src); | ||
27448 | find mayInstanceOfVertex_class(problem,interpretation,var_trg); | ||
27449 | // t is exported | ||
27450 | // src is exported | ||
27451 | // trg is exported | ||
27452 | find mayInstanceOfTransition_class(problem,interpretation,var_t); | ||
27453 | find mayInRelationsource_reference_Transition(problem,interpretation,var_t,var_virtual0); | ||
27454 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27455 | find mayEquivalent(problem, interpretation, var_virtual0, var_src); | ||
27456 | find mayInstanceOfTransition_class(problem,interpretation,var_t); | ||
27457 | find mayInRelationtarget_reference_Transition(problem,interpretation,var_t,var_virtual1); | ||
27458 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27459 | find mayEquivalent(problem, interpretation, var_virtual1, var_trg); | ||
27460 | } | ||
27461 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition( | ||
27462 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27463 | var_t, var_src, var_trg) | ||
27464 | { | ||
27465 | find interpretation(problem,interpretation); | ||
27466 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27467 | find mustInstanceOfVertex_class(problem,interpretation,var_src); | ||
27468 | find mustInstanceOfVertex_class(problem,interpretation,var_trg); | ||
27469 | // t is exported | ||
27470 | // src is exported | ||
27471 | // trg is exported | ||
27472 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27473 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t,var_virtual0); | ||
27474 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27475 | var_virtual0 == var_src; | ||
27476 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27477 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t,var_virtual1); | ||
27478 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27479 | var_virtual1 == var_trg; | ||
27480 | } | ||
27481 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries incomingToEntry | ||
27482 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry( | ||
27483 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27484 | var_t, var_e) | ||
27485 | { | ||
27486 | find interpretation(problem,interpretation); | ||
27487 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27488 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27489 | // t is exported | ||
27490 | // e is exported | ||
27491 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t,_var__0,var_e); | ||
27492 | } | ||
27493 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry( | ||
27494 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27495 | var_t, var_e) | ||
27496 | { | ||
27497 | find interpretation(problem,interpretation); | ||
27498 | find mayInstanceOfTransition_class(problem,interpretation,var_t); | ||
27499 | find mayInstanceOfEntry_class(problem,interpretation,var_e); | ||
27500 | // t is exported | ||
27501 | // e is exported | ||
27502 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t,_var__0,var_e); | ||
27503 | } | ||
27504 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry( | ||
27505 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27506 | var_t, var_e) | ||
27507 | { | ||
27508 | find interpretation(problem,interpretation); | ||
27509 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27510 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27511 | // t is exported | ||
27512 | // e is exported | ||
27513 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t,_var__0,var_e); | ||
27514 | } | ||
27515 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries noOutgoingTransitionFromEntry | ||
27516 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry( | ||
27517 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27518 | var_e) | ||
27519 | { | ||
27520 | find interpretation(problem,interpretation); | ||
27521 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27522 | // e is exported | ||
27523 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_e,_var__1); | ||
27524 | } | ||
27525 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry( | ||
27526 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27527 | var_e) | ||
27528 | { | ||
27529 | find interpretation(problem,interpretation); | ||
27530 | find mayInstanceOfEntry_class(problem,interpretation,var_e); | ||
27531 | // e is exported | ||
27532 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_e,_var__1); | ||
27533 | } | ||
27534 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry( | ||
27535 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27536 | var_e) | ||
27537 | { | ||
27538 | find interpretation(problem,interpretation); | ||
27539 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27540 | // e is exported | ||
27541 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_e,_var__1); | ||
27542 | } | ||
27543 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries multipleTransitionFromEntry | ||
27544 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry( | ||
27545 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27546 | var_e, var_t1, var_t2) | ||
27547 | { | ||
27548 | find interpretation(problem,interpretation); | ||
27549 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27550 | find mustInstanceOfTransition_class(problem,interpretation,var_t1); | ||
27551 | find mustInstanceOfTransition_class(problem,interpretation,var_t2); | ||
27552 | // e is exported | ||
27553 | // t1 is exported | ||
27554 | // t2 is exported | ||
27555 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27556 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0); | ||
27557 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27558 | var_virtual0 == var_t1; | ||
27559 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27560 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual1); | ||
27561 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual1); | ||
27562 | var_virtual1 == var_t2; | ||
27563 | neg find mayEquivalent(problem, interpretation, var_t1, var_t2); | ||
27564 | } | ||
27565 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry( | ||
27566 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27567 | var_e, var_t1, var_t2) | ||
27568 | { | ||
27569 | find interpretation(problem,interpretation); | ||
27570 | find mayInstanceOfEntry_class(problem,interpretation,var_e); | ||
27571 | find mayInstanceOfTransition_class(problem,interpretation,var_t1); | ||
27572 | find mayInstanceOfTransition_class(problem,interpretation,var_t2); | ||
27573 | // e is exported | ||
27574 | // t1 is exported | ||
27575 | // t2 is exported | ||
27576 | find mayInstanceOfEntry_class(problem,interpretation,var_e); | ||
27577 | find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0); | ||
27578 | find mayInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27579 | find mayEquivalent(problem, interpretation, var_virtual0, var_t1); | ||
27580 | find mayInstanceOfEntry_class(problem,interpretation,var_e); | ||
27581 | find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual1); | ||
27582 | find mayInstanceOfTransition_class(problem,interpretation,var_virtual1); | ||
27583 | find mayEquivalent(problem, interpretation, var_virtual1, var_t2); | ||
27584 | var_t1 != var_t2; | ||
27585 | } | ||
27586 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry( | ||
27587 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27588 | var_e, var_t1, var_t2) | ||
27589 | { | ||
27590 | find interpretation(problem,interpretation); | ||
27591 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27592 | find mustInstanceOfTransition_class(problem,interpretation,var_t1); | ||
27593 | find mustInstanceOfTransition_class(problem,interpretation,var_t2); | ||
27594 | // e is exported | ||
27595 | // t1 is exported | ||
27596 | // t2 is exported | ||
27597 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27598 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0); | ||
27599 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27600 | var_virtual0 == var_t1; | ||
27601 | find mustInstanceOfEntry_class(problem,interpretation,var_e); | ||
27602 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual1); | ||
27603 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual1); | ||
27604 | var_virtual1 == var_t2; | ||
27605 | var_t1 != var_t2; | ||
27606 | } | ||
27607 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries outgoingFromExit | ||
27608 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit( | ||
27609 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27610 | var_t, var_e) | ||
27611 | { | ||
27612 | find interpretation(problem,interpretation); | ||
27613 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27614 | find mustInstanceOfExit_class(problem,interpretation,var_e); | ||
27615 | // t is exported | ||
27616 | // e is exported | ||
27617 | find mustInstanceOfExit_class(problem,interpretation,var_e); | ||
27618 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0); | ||
27619 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27620 | var_virtual0 == var_t; | ||
27621 | } | ||
27622 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit( | ||
27623 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27624 | var_t, var_e) | ||
27625 | { | ||
27626 | find interpretation(problem,interpretation); | ||
27627 | find mayInstanceOfTransition_class(problem,interpretation,var_t); | ||
27628 | find mayInstanceOfExit_class(problem,interpretation,var_e); | ||
27629 | // t is exported | ||
27630 | // e is exported | ||
27631 | find mayInstanceOfExit_class(problem,interpretation,var_e); | ||
27632 | find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0); | ||
27633 | find mayInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27634 | find mayEquivalent(problem, interpretation, var_virtual0, var_t); | ||
27635 | } | ||
27636 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit( | ||
27637 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27638 | var_t, var_e) | ||
27639 | { | ||
27640 | find interpretation(problem,interpretation); | ||
27641 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27642 | find mustInstanceOfExit_class(problem,interpretation,var_e); | ||
27643 | // t is exported | ||
27644 | // e is exported | ||
27645 | find mustInstanceOfExit_class(problem,interpretation,var_e); | ||
27646 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_e,var_virtual0); | ||
27647 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27648 | var_virtual0 == var_t; | ||
27649 | } | ||
27650 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries outgoingFromFinal | ||
27651 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal( | ||
27652 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27653 | var_t, var_f) | ||
27654 | { | ||
27655 | find interpretation(problem,interpretation); | ||
27656 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27657 | find mustInstanceOfFinalState_class(problem,interpretation,var_f); | ||
27658 | // t is exported | ||
27659 | // f is exported | ||
27660 | find mustInstanceOfFinalState_class(problem,interpretation,var_f); | ||
27661 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_f,var_virtual0); | ||
27662 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27663 | var_virtual0 == var_t; | ||
27664 | } | ||
27665 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal( | ||
27666 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27667 | var_t, var_f) | ||
27668 | { | ||
27669 | find interpretation(problem,interpretation); | ||
27670 | find mayInstanceOfTransition_class(problem,interpretation,var_t); | ||
27671 | find mayInstanceOfFinalState_class(problem,interpretation,var_f); | ||
27672 | // t is exported | ||
27673 | // f is exported | ||
27674 | find mayInstanceOfFinalState_class(problem,interpretation,var_f); | ||
27675 | find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_f,var_virtual0); | ||
27676 | find mayInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27677 | find mayEquivalent(problem, interpretation, var_virtual0, var_t); | ||
27678 | } | ||
27679 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal( | ||
27680 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27681 | var_t, var_f) | ||
27682 | { | ||
27683 | find interpretation(problem,interpretation); | ||
27684 | find mustInstanceOfTransition_class(problem,interpretation,var_t); | ||
27685 | find mustInstanceOfFinalState_class(problem,interpretation,var_f); | ||
27686 | // t is exported | ||
27687 | // f is exported | ||
27688 | find mustInstanceOfFinalState_class(problem,interpretation,var_f); | ||
27689 | find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,var_f,var_virtual0); | ||
27690 | find mustInstanceOfTransition_class(problem,interpretation,var_virtual0); | ||
27691 | var_virtual0 == var_t; | ||
27692 | } | ||
27693 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries noStateInRegion | ||
27694 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion( | ||
27695 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27696 | var_region) | ||
27697 | { | ||
27698 | find interpretation(problem,interpretation); | ||
27699 | find mustInstanceOfRegion_class(problem,interpretation,var_region); | ||
27700 | // region is exported | ||
27701 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(problem,interpretation,var_region,_var__0); | ||
27702 | } | ||
27703 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion( | ||
27704 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27705 | var_region) | ||
27706 | { | ||
27707 | find interpretation(problem,interpretation); | ||
27708 | find mayInstanceOfRegion_class(problem,interpretation,var_region); | ||
27709 | // region is exported | ||
27710 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(problem,interpretation,var_region,_var__0); | ||
27711 | } | ||
27712 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion( | ||
27713 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27714 | var_region) | ||
27715 | { | ||
27716 | find interpretation(problem,interpretation); | ||
27717 | find mustInstanceOfRegion_class(problem,interpretation,var_region); | ||
27718 | // region is exported | ||
27719 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion(problem,interpretation,var_region,_var__0); | ||
27720 | } | ||
27721 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries StateInRegion | ||
27722 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion( | ||
27723 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27724 | var_region, var_state) | ||
27725 | { | ||
27726 | find interpretation(problem,interpretation); | ||
27727 | find mustInstanceOfRegion_class(problem,interpretation,var_region); | ||
27728 | find mustInstanceOfState_class(problem,interpretation,var_state); | ||
27729 | // region is exported | ||
27730 | // state is exported | ||
27731 | find mustInstanceOfRegion_class(problem,interpretation,var_region); | ||
27732 | find mustInRelationvertices_reference_Region(problem,interpretation,var_region,var_virtual0); | ||
27733 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27734 | var_virtual0 == var_state; | ||
27735 | } | ||
27736 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion( | ||
27737 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27738 | var_region, var_state) | ||
27739 | { | ||
27740 | find interpretation(problem,interpretation); | ||
27741 | find mayInstanceOfRegion_class(problem,interpretation,var_region); | ||
27742 | find mayInstanceOfState_class(problem,interpretation,var_state); | ||
27743 | // region is exported | ||
27744 | // state is exported | ||
27745 | find mayInstanceOfRegion_class(problem,interpretation,var_region); | ||
27746 | find mayInRelationvertices_reference_Region(problem,interpretation,var_region,var_virtual0); | ||
27747 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27748 | find mayEquivalent(problem, interpretation, var_virtual0, var_state); | ||
27749 | } | ||
27750 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_StateInRegion( | ||
27751 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27752 | var_region, var_state) | ||
27753 | { | ||
27754 | find interpretation(problem,interpretation); | ||
27755 | find mustInstanceOfRegion_class(problem,interpretation,var_region); | ||
27756 | find mustInstanceOfState_class(problem,interpretation,var_state); | ||
27757 | // region is exported | ||
27758 | // state is exported | ||
27759 | find mustInstanceOfRegion_class(problem,interpretation,var_region); | ||
27760 | find mustInRelationvertices_reference_Region(problem,interpretation,var_region,var_virtual0); | ||
27761 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27762 | var_virtual0 == var_state; | ||
27763 | } | ||
27764 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries choiceHasNoOutgoing | ||
27765 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing( | ||
27766 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27767 | var_c) | ||
27768 | { | ||
27769 | find interpretation(problem,interpretation); | ||
27770 | find mustInstanceOfChoice_class(problem,interpretation,var_c); | ||
27771 | // c is exported | ||
27772 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_c,_var__1); | ||
27773 | } | ||
27774 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing( | ||
27775 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27776 | var_c) | ||
27777 | { | ||
27778 | find interpretation(problem,interpretation); | ||
27779 | find mayInstanceOfChoice_class(problem,interpretation,var_c); | ||
27780 | // c is exported | ||
27781 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_c,_var__1); | ||
27782 | } | ||
27783 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing( | ||
27784 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27785 | var_c) | ||
27786 | { | ||
27787 | find interpretation(problem,interpretation); | ||
27788 | find mustInstanceOfChoice_class(problem,interpretation,var_c); | ||
27789 | // c is exported | ||
27790 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_c,_var__1); | ||
27791 | } | ||
27792 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries choiceHasNoIncoming | ||
27793 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming( | ||
27794 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27795 | var_c) | ||
27796 | { | ||
27797 | find interpretation(problem,interpretation); | ||
27798 | find mustInstanceOfChoice_class(problem,interpretation,var_c); | ||
27799 | // c is exported | ||
27800 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_c); | ||
27801 | } | ||
27802 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming( | ||
27803 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27804 | var_c) | ||
27805 | { | ||
27806 | find interpretation(problem,interpretation); | ||
27807 | find mayInstanceOfChoice_class(problem,interpretation,var_c); | ||
27808 | // c is exported | ||
27809 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_c); | ||
27810 | } | ||
27811 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming( | ||
27812 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27813 | var_c) | ||
27814 | { | ||
27815 | find interpretation(problem,interpretation); | ||
27816 | find mustInstanceOfChoice_class(problem,interpretation,var_c); | ||
27817 | // c is exported | ||
27818 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_c); | ||
27819 | } | ||
27820 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries synchHasNoOutgoing | ||
27821 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing( | ||
27822 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27823 | var_s) | ||
27824 | { | ||
27825 | find interpretation(problem,interpretation); | ||
27826 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27827 | // s is exported | ||
27828 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,_var__1); | ||
27829 | } | ||
27830 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing( | ||
27831 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27832 | var_s) | ||
27833 | { | ||
27834 | find interpretation(problem,interpretation); | ||
27835 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27836 | // s is exported | ||
27837 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,_var__1); | ||
27838 | } | ||
27839 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing( | ||
27840 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27841 | var_s) | ||
27842 | { | ||
27843 | find interpretation(problem,interpretation); | ||
27844 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27845 | // s is exported | ||
27846 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,_var__1); | ||
27847 | } | ||
27848 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries synchHasNoIncoming | ||
27849 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming( | ||
27850 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27851 | var_s) | ||
27852 | { | ||
27853 | find interpretation(problem,interpretation); | ||
27854 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27855 | // s is exported | ||
27856 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_s); | ||
27857 | } | ||
27858 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming( | ||
27859 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27860 | var_s) | ||
27861 | { | ||
27862 | find interpretation(problem,interpretation); | ||
27863 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27864 | // s is exported | ||
27865 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_s); | ||
27866 | } | ||
27867 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming( | ||
27868 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27869 | var_s) | ||
27870 | { | ||
27871 | find interpretation(problem,interpretation); | ||
27872 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27873 | // s is exported | ||
27874 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,_var__1,var_s); | ||
27875 | } | ||
27876 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries SynchronizedIncomingInSameRegion | ||
27877 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion( | ||
27878 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27879 | var_s, var_v1, var_v2) | ||
27880 | { | ||
27881 | find interpretation(problem,interpretation); | ||
27882 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27883 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
27884 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
27885 | // s is exported | ||
27886 | // v1 is exported | ||
27887 | // v2 is exported | ||
27888 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_v1,var_s); | ||
27889 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_v2,var_s); | ||
27890 | neg find mayEquivalent(problem, interpretation, var_t1, var_t2); | ||
27891 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27892 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0); | ||
27893 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27894 | var_virtual0 == var_v1; | ||
27895 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27896 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1); | ||
27897 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27898 | var_virtual1 == var_v2; | ||
27899 | }or{ | ||
27900 | find interpretation(problem,interpretation); | ||
27901 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27902 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
27903 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
27904 | // s is exported | ||
27905 | // v1 is exported | ||
27906 | // v2 is exported | ||
27907 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_s,var_v1); | ||
27908 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_s,var_v2); | ||
27909 | neg find mayEquivalent(problem, interpretation, var_t1, var_t2); | ||
27910 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27911 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0); | ||
27912 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27913 | var_virtual0 == var_v1; | ||
27914 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27915 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1); | ||
27916 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27917 | var_virtual1 == var_v2; | ||
27918 | } | ||
27919 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion( | ||
27920 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27921 | var_s, var_v1, var_v2) | ||
27922 | { | ||
27923 | find interpretation(problem,interpretation); | ||
27924 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27925 | find mayInstanceOfVertex_class(problem,interpretation,var_v1); | ||
27926 | find mayInstanceOfVertex_class(problem,interpretation,var_v2); | ||
27927 | // s is exported | ||
27928 | // v1 is exported | ||
27929 | // v2 is exported | ||
27930 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_v1,var_s); | ||
27931 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_v2,var_s); | ||
27932 | var_t1 != var_t2; | ||
27933 | find mayInstanceOfRegion_class(problem,interpretation,var_r); | ||
27934 | find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0); | ||
27935 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27936 | find mayEquivalent(problem, interpretation, var_virtual0, var_v1); | ||
27937 | find mayInstanceOfRegion_class(problem,interpretation,var_r); | ||
27938 | find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1); | ||
27939 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27940 | find mayEquivalent(problem, interpretation, var_virtual1, var_v2); | ||
27941 | }or{ | ||
27942 | find interpretation(problem,interpretation); | ||
27943 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27944 | find mayInstanceOfVertex_class(problem,interpretation,var_v1); | ||
27945 | find mayInstanceOfVertex_class(problem,interpretation,var_v2); | ||
27946 | // s is exported | ||
27947 | // v1 is exported | ||
27948 | // v2 is exported | ||
27949 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_s,var_v1); | ||
27950 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_s,var_v2); | ||
27951 | var_t1 != var_t2; | ||
27952 | find mayInstanceOfRegion_class(problem,interpretation,var_r); | ||
27953 | find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0); | ||
27954 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27955 | find mayEquivalent(problem, interpretation, var_virtual0, var_v1); | ||
27956 | find mayInstanceOfRegion_class(problem,interpretation,var_r); | ||
27957 | find mayInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1); | ||
27958 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27959 | find mayEquivalent(problem, interpretation, var_virtual1, var_v2); | ||
27960 | } | ||
27961 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion( | ||
27962 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
27963 | var_s, var_v1, var_v2) | ||
27964 | { | ||
27965 | find interpretation(problem,interpretation); | ||
27966 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27967 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
27968 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
27969 | // s is exported | ||
27970 | // v1 is exported | ||
27971 | // v2 is exported | ||
27972 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_v1,var_s); | ||
27973 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_v2,var_s); | ||
27974 | var_t1 != var_t2; | ||
27975 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27976 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0); | ||
27977 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27978 | var_virtual0 == var_v1; | ||
27979 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27980 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1); | ||
27981 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
27982 | var_virtual1 == var_v2; | ||
27983 | }or{ | ||
27984 | find interpretation(problem,interpretation); | ||
27985 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
27986 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
27987 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
27988 | // s is exported | ||
27989 | // v1 is exported | ||
27990 | // v2 is exported | ||
27991 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t1,var_s,var_v1); | ||
27992 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,var_t2,var_s,var_v2); | ||
27993 | var_t1 != var_t2; | ||
27994 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27995 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual0); | ||
27996 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
27997 | var_virtual0 == var_v1; | ||
27998 | find mustInstanceOfRegion_class(problem,interpretation,var_r); | ||
27999 | find mustInRelationvertices_reference_Region(problem,interpretation,var_r,var_virtual1); | ||
28000 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28001 | var_virtual1 == var_v2; | ||
28002 | } | ||
28003 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries notSynchronizingStates | ||
28004 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates( | ||
28005 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28006 | var_s) | ||
28007 | { | ||
28008 | find interpretation(problem,interpretation); | ||
28009 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28010 | // s is exported | ||
28011 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(problem,interpretation,var_s); | ||
28012 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(problem,interpretation,var_s); | ||
28013 | } | ||
28014 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates( | ||
28015 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28016 | var_s) | ||
28017 | { | ||
28018 | find interpretation(problem,interpretation); | ||
28019 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28020 | // s is exported | ||
28021 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(problem,interpretation,var_s); | ||
28022 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(problem,interpretation,var_s); | ||
28023 | } | ||
28024 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates( | ||
28025 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28026 | var_s) | ||
28027 | { | ||
28028 | find interpretation(problem,interpretation); | ||
28029 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28030 | // s is exported | ||
28031 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition(problem,interpretation,var_s); | ||
28032 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition(problem,interpretation,var_s); | ||
28033 | } | ||
28034 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries hasMultipleOutgoingTrainsition | ||
28035 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition( | ||
28036 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28037 | var_v) | ||
28038 | { | ||
28039 | find interpretation(problem,interpretation); | ||
28040 | find mustInstanceOfSynchronization_class(problem,interpretation,var_v); | ||
28041 | // v is exported | ||
28042 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_trg1); | ||
28043 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v,var_trg2); | ||
28044 | neg find mayEquivalent(problem, interpretation, var_trg1, var_trg2); | ||
28045 | } | ||
28046 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition( | ||
28047 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28048 | var_v) | ||
28049 | { | ||
28050 | find interpretation(problem,interpretation); | ||
28051 | find mayInstanceOfSynchronization_class(problem,interpretation,var_v); | ||
28052 | // v is exported | ||
28053 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_trg1); | ||
28054 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v,var_trg2); | ||
28055 | var_trg1 != var_trg2; | ||
28056 | } | ||
28057 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleOutgoingTrainsition( | ||
28058 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28059 | var_v) | ||
28060 | { | ||
28061 | find interpretation(problem,interpretation); | ||
28062 | find mustInstanceOfSynchronization_class(problem,interpretation,var_v); | ||
28063 | // v is exported | ||
28064 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_trg1); | ||
28065 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v,var_trg2); | ||
28066 | var_trg1 != var_trg2; | ||
28067 | } | ||
28068 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries hasMultipleIncomingTrainsition | ||
28069 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition( | ||
28070 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28071 | var_v) | ||
28072 | { | ||
28073 | find interpretation(problem,interpretation); | ||
28074 | find mustInstanceOfSynchronization_class(problem,interpretation,var_v); | ||
28075 | // v is exported | ||
28076 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_src1,var_v); | ||
28077 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_src2,var_v); | ||
28078 | neg find mayEquivalent(problem, interpretation, var_src1, var_src2); | ||
28079 | } | ||
28080 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition( | ||
28081 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28082 | var_v) | ||
28083 | { | ||
28084 | find interpretation(problem,interpretation); | ||
28085 | find mayInstanceOfSynchronization_class(problem,interpretation,var_v); | ||
28086 | // v is exported | ||
28087 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_src1,var_v); | ||
28088 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_src2,var_v); | ||
28089 | var_src1 != var_src2; | ||
28090 | } | ||
28091 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleIncomingTrainsition( | ||
28092 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28093 | var_v) | ||
28094 | { | ||
28095 | find interpretation(problem,interpretation); | ||
28096 | find mustInstanceOfSynchronization_class(problem,interpretation,var_v); | ||
28097 | // v is exported | ||
28098 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_src1,var_v); | ||
28099 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_src2,var_v); | ||
28100 | var_src1 != var_src2; | ||
28101 | } | ||
28102 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries SynchronizedRegionsAreNotSiblings | ||
28103 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings( | ||
28104 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28105 | var_s, var_v1, var_v2) | ||
28106 | { | ||
28107 | find interpretation(problem,interpretation); | ||
28108 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28109 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
28110 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
28111 | // s is exported | ||
28112 | // v1 is exported | ||
28113 | // v2 is exported | ||
28114 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v1,var_s); | ||
28115 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v2,var_s); | ||
28116 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1); | ||
28117 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0); | ||
28118 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28119 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28120 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28121 | var_virtual1 == var_v1; | ||
28122 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2); | ||
28123 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2); | ||
28124 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual2); | ||
28125 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3); | ||
28126 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual3); | ||
28127 | var_virtual3 == var_v2; | ||
28128 | neg find mayEquivalent(problem, interpretation, var_r1, var_r2); | ||
28129 | }or{ | ||
28130 | find interpretation(problem,interpretation); | ||
28131 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28132 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
28133 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
28134 | // s is exported | ||
28135 | // v1 is exported | ||
28136 | // v2 is exported | ||
28137 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v1); | ||
28138 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_s,var_v2); | ||
28139 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1); | ||
28140 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0); | ||
28141 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28142 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28143 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28144 | var_virtual1 == var_v1; | ||
28145 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2); | ||
28146 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2); | ||
28147 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual2); | ||
28148 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3); | ||
28149 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual3); | ||
28150 | var_virtual3 == var_v2; | ||
28151 | neg find mayEquivalent(problem, interpretation, var_r1, var_r2); | ||
28152 | } | ||
28153 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings( | ||
28154 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28155 | var_s, var_v1, var_v2) | ||
28156 | { | ||
28157 | find interpretation(problem,interpretation); | ||
28158 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28159 | find mayInstanceOfVertex_class(problem,interpretation,var_v1); | ||
28160 | find mayInstanceOfVertex_class(problem,interpretation,var_v2); | ||
28161 | // s is exported | ||
28162 | // v1 is exported | ||
28163 | // v2 is exported | ||
28164 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v1,var_s); | ||
28165 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v2,var_s); | ||
28166 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_r1); | ||
28167 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0); | ||
28168 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28169 | find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28170 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28171 | find mayEquivalent(problem, interpretation, var_virtual1, var_v1); | ||
28172 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_r2); | ||
28173 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2); | ||
28174 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual2); | ||
28175 | find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3); | ||
28176 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual3); | ||
28177 | find mayEquivalent(problem, interpretation, var_virtual3, var_v2); | ||
28178 | var_r1 != var_r2; | ||
28179 | }or{ | ||
28180 | find interpretation(problem,interpretation); | ||
28181 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28182 | find mayInstanceOfVertex_class(problem,interpretation,var_v1); | ||
28183 | find mayInstanceOfVertex_class(problem,interpretation,var_v2); | ||
28184 | // s is exported | ||
28185 | // v1 is exported | ||
28186 | // v2 is exported | ||
28187 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v1); | ||
28188 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_s,var_v2); | ||
28189 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_r1); | ||
28190 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0); | ||
28191 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28192 | find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28193 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28194 | find mayEquivalent(problem, interpretation, var_virtual1, var_v1); | ||
28195 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_r2); | ||
28196 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2); | ||
28197 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual2); | ||
28198 | find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3); | ||
28199 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual3); | ||
28200 | find mayEquivalent(problem, interpretation, var_virtual3, var_v2); | ||
28201 | var_r1 != var_r2; | ||
28202 | } | ||
28203 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings( | ||
28204 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28205 | var_s, var_v1, var_v2) | ||
28206 | { | ||
28207 | find interpretation(problem,interpretation); | ||
28208 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28209 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
28210 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
28211 | // s is exported | ||
28212 | // v1 is exported | ||
28213 | // v2 is exported | ||
28214 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v1,var_s); | ||
28215 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_v2,var_s); | ||
28216 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1); | ||
28217 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0); | ||
28218 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28219 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28220 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28221 | var_virtual1 == var_v1; | ||
28222 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2); | ||
28223 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2); | ||
28224 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual2); | ||
28225 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3); | ||
28226 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual3); | ||
28227 | var_virtual3 == var_v2; | ||
28228 | var_r1 != var_r2; | ||
28229 | }or{ | ||
28230 | find interpretation(problem,interpretation); | ||
28231 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28232 | find mustInstanceOfVertex_class(problem,interpretation,var_v1); | ||
28233 | find mustInstanceOfVertex_class(problem,interpretation,var_v2); | ||
28234 | // s is exported | ||
28235 | // v1 is exported | ||
28236 | // v2 is exported | ||
28237 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v1); | ||
28238 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__1,var_s,var_v2); | ||
28239 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r1); | ||
28240 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r1,var_virtual0); | ||
28241 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28242 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28243 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28244 | var_virtual1 == var_v1; | ||
28245 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_r2); | ||
28246 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_r2,var_virtual2); | ||
28247 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual2); | ||
28248 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual2,var_virtual3); | ||
28249 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual3); | ||
28250 | var_virtual3 == var_v2; | ||
28251 | var_r1 != var_r2; | ||
28252 | } | ||
28253 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries child | ||
28254 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child( | ||
28255 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28256 | var_parent, var_child) | ||
28257 | { | ||
28258 | find interpretation(problem,interpretation); | ||
28259 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent); | ||
28260 | find mustInstanceOfVertex_class(problem,interpretation,var_child); | ||
28261 | // parent is exported | ||
28262 | // child is exported | ||
28263 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent); | ||
28264 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_parent,var_virtual0); | ||
28265 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28266 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28267 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28268 | var_virtual1 == var_child; | ||
28269 | } | ||
28270 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child( | ||
28271 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28272 | var_parent, var_child) | ||
28273 | { | ||
28274 | find interpretation(problem,interpretation); | ||
28275 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_parent); | ||
28276 | find mayInstanceOfVertex_class(problem,interpretation,var_child); | ||
28277 | // parent is exported | ||
28278 | // child is exported | ||
28279 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_parent); | ||
28280 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_parent,var_virtual0); | ||
28281 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28282 | find mayInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28283 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28284 | find mayEquivalent(problem, interpretation, var_virtual1, var_child); | ||
28285 | } | ||
28286 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child( | ||
28287 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28288 | var_parent, var_child) | ||
28289 | { | ||
28290 | find interpretation(problem,interpretation); | ||
28291 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent); | ||
28292 | find mustInstanceOfVertex_class(problem,interpretation,var_child); | ||
28293 | // parent is exported | ||
28294 | // child is exported | ||
28295 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_parent); | ||
28296 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_parent,var_virtual0); | ||
28297 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28298 | find mustInRelationvertices_reference_Region(problem,interpretation,var_virtual0,var_virtual1); | ||
28299 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28300 | var_virtual1 == var_child; | ||
28301 | } | ||
28302 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries SynchronizedRegionDoesNotHaveMultipleRegions | ||
28303 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions( | ||
28304 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28305 | var_s, var_v) | ||
28306 | { | ||
28307 | find interpretation(problem,interpretation); | ||
28308 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28309 | find mustInstanceOfVertex_class(problem,interpretation,var_v); | ||
28310 | // s is exported | ||
28311 | // v is exported | ||
28312 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_s); | ||
28313 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v); | ||
28314 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c); | ||
28315 | }or{ | ||
28316 | find interpretation(problem,interpretation); | ||
28317 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28318 | find mustInstanceOfVertex_class(problem,interpretation,var_v); | ||
28319 | // s is exported | ||
28320 | // v is exported | ||
28321 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v); | ||
28322 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v); | ||
28323 | neg find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c); | ||
28324 | } | ||
28325 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions( | ||
28326 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28327 | var_s, var_v) | ||
28328 | { | ||
28329 | find interpretation(problem,interpretation); | ||
28330 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28331 | find mayInstanceOfVertex_class(problem,interpretation,var_v); | ||
28332 | // s is exported | ||
28333 | // v is exported | ||
28334 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_s); | ||
28335 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v); | ||
28336 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c); | ||
28337 | }or{ | ||
28338 | find interpretation(problem,interpretation); | ||
28339 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28340 | find mayInstanceOfVertex_class(problem,interpretation,var_v); | ||
28341 | // s is exported | ||
28342 | // v is exported | ||
28343 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v); | ||
28344 | find mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v); | ||
28345 | neg find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c); | ||
28346 | } | ||
28347 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions( | ||
28348 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28349 | var_s, var_v) | ||
28350 | { | ||
28351 | find interpretation(problem,interpretation); | ||
28352 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28353 | find mustInstanceOfVertex_class(problem,interpretation,var_v); | ||
28354 | // s is exported | ||
28355 | // v is exported | ||
28356 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_v,var_s); | ||
28357 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v); | ||
28358 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c); | ||
28359 | }or{ | ||
28360 | find interpretation(problem,interpretation); | ||
28361 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28362 | find mustInstanceOfVertex_class(problem,interpretation,var_v); | ||
28363 | // s is exported | ||
28364 | // v is exported | ||
28365 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_transition(problem,interpretation,_var__0,var_s,var_v); | ||
28366 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_child(problem,interpretation,var_c,var_v); | ||
28367 | neg find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions(problem,interpretation,var_c); | ||
28368 | } | ||
28369 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries hasMultipleRegions | ||
28370 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions( | ||
28371 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28372 | var_composite) | ||
28373 | { | ||
28374 | find interpretation(problem,interpretation); | ||
28375 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28376 | // composite is exported | ||
28377 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28378 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual0); | ||
28379 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28380 | var_virtual0 == var_region1; | ||
28381 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28382 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual1); | ||
28383 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual1); | ||
28384 | var_virtual1 == var_region2; | ||
28385 | neg find mayEquivalent(problem, interpretation, var_region1, var_region2); | ||
28386 | } | ||
28387 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions( | ||
28388 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28389 | var_composite) | ||
28390 | { | ||
28391 | find interpretation(problem,interpretation); | ||
28392 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28393 | // composite is exported | ||
28394 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28395 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual0); | ||
28396 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28397 | find mayEquivalent(problem, interpretation, var_virtual0, var_region1); | ||
28398 | find mayInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28399 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual1); | ||
28400 | find mayInstanceOfRegion_class(problem,interpretation,var_virtual1); | ||
28401 | find mayEquivalent(problem, interpretation, var_virtual1, var_region2); | ||
28402 | var_region1 != var_region2; | ||
28403 | } | ||
28404 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_hasMultipleRegions( | ||
28405 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28406 | var_composite) | ||
28407 | { | ||
28408 | find interpretation(problem,interpretation); | ||
28409 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28410 | // composite is exported | ||
28411 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28412 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual0); | ||
28413 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual0); | ||
28414 | var_virtual0 == var_region1; | ||
28415 | find mustInstanceOfCompositeElement_class(problem,interpretation,var_composite); | ||
28416 | find mustInRelationregions_reference_CompositeElement(problem,interpretation,var_composite,var_virtual1); | ||
28417 | find mustInstanceOfRegion_class(problem,interpretation,var_virtual1); | ||
28418 | var_virtual1 == var_region2; | ||
28419 | var_region1 != var_region2; | ||
28420 | } | ||
28421 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries synchThree | ||
28422 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree( | ||
28423 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28424 | var_s) | ||
28425 | { | ||
28426 | find interpretation(problem,interpretation); | ||
28427 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28428 | // s is exported | ||
28429 | find mustInstanceOfTransition_class(problem,interpretation,var_t1); | ||
28430 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t1,var_virtual0); | ||
28431 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
28432 | var_virtual0 == var_s; | ||
28433 | find mustInstanceOfTransition_class(problem,interpretation,var_t2); | ||
28434 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t2,var_virtual1); | ||
28435 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28436 | var_virtual1 == var_s; | ||
28437 | find mustInstanceOfTransition_class(problem,interpretation,var_t3); | ||
28438 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t3,var_virtual2); | ||
28439 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual2); | ||
28440 | var_virtual2 == var_s; | ||
28441 | neg find mayEquivalent(problem, interpretation, var_t1, var_t2); | ||
28442 | neg find mayEquivalent(problem, interpretation, var_t2, var_t3); | ||
28443 | neg find mayEquivalent(problem, interpretation, var_t1, var_t3); | ||
28444 | }or{ | ||
28445 | find interpretation(problem,interpretation); | ||
28446 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28447 | // s is exported | ||
28448 | find mustInstanceOfTransition_class(problem,interpretation,var_t1); | ||
28449 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t1,var_virtual0); | ||
28450 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
28451 | var_virtual0 == var_s; | ||
28452 | find mustInstanceOfTransition_class(problem,interpretation,var_t2); | ||
28453 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t2,var_virtual1); | ||
28454 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28455 | var_virtual1 == var_s; | ||
28456 | find mustInstanceOfTransition_class(problem,interpretation,var_t3); | ||
28457 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t3,var_virtual2); | ||
28458 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual2); | ||
28459 | var_virtual2 == var_s; | ||
28460 | neg find mayEquivalent(problem, interpretation, var_t1, var_t2); | ||
28461 | neg find mayEquivalent(problem, interpretation, var_t2, var_t3); | ||
28462 | neg find mayEquivalent(problem, interpretation, var_t1, var_t3); | ||
28463 | } | ||
28464 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree( | ||
28465 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28466 | var_s) | ||
28467 | { | ||
28468 | find interpretation(problem,interpretation); | ||
28469 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28470 | // s is exported | ||
28471 | find mayInstanceOfTransition_class(problem,interpretation,var_t1); | ||
28472 | find mayInRelationtarget_reference_Transition(problem,interpretation,var_t1,var_virtual0); | ||
28473 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
28474 | find mayEquivalent(problem, interpretation, var_virtual0, var_s); | ||
28475 | find mayInstanceOfTransition_class(problem,interpretation,var_t2); | ||
28476 | find mayInRelationtarget_reference_Transition(problem,interpretation,var_t2,var_virtual1); | ||
28477 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28478 | find mayEquivalent(problem, interpretation, var_virtual1, var_s); | ||
28479 | find mayInstanceOfTransition_class(problem,interpretation,var_t3); | ||
28480 | find mayInRelationtarget_reference_Transition(problem,interpretation,var_t3,var_virtual2); | ||
28481 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual2); | ||
28482 | find mayEquivalent(problem, interpretation, var_virtual2, var_s); | ||
28483 | var_t1 != var_t2; | ||
28484 | var_t2 != var_t3; | ||
28485 | var_t1 != var_t3; | ||
28486 | }or{ | ||
28487 | find interpretation(problem,interpretation); | ||
28488 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28489 | // s is exported | ||
28490 | find mayInstanceOfTransition_class(problem,interpretation,var_t1); | ||
28491 | find mayInRelationsource_reference_Transition(problem,interpretation,var_t1,var_virtual0); | ||
28492 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
28493 | find mayEquivalent(problem, interpretation, var_virtual0, var_s); | ||
28494 | find mayInstanceOfTransition_class(problem,interpretation,var_t2); | ||
28495 | find mayInRelationsource_reference_Transition(problem,interpretation,var_t2,var_virtual1); | ||
28496 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28497 | find mayEquivalent(problem, interpretation, var_virtual1, var_s); | ||
28498 | find mayInstanceOfTransition_class(problem,interpretation,var_t3); | ||
28499 | find mayInRelationsource_reference_Transition(problem,interpretation,var_t3,var_virtual2); | ||
28500 | find mayInstanceOfVertex_class(problem,interpretation,var_virtual2); | ||
28501 | find mayEquivalent(problem, interpretation, var_virtual2, var_s); | ||
28502 | var_t1 != var_t2; | ||
28503 | var_t2 != var_t3; | ||
28504 | var_t1 != var_t3; | ||
28505 | } | ||
28506 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree( | ||
28507 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28508 | var_s) | ||
28509 | { | ||
28510 | find interpretation(problem,interpretation); | ||
28511 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28512 | // s is exported | ||
28513 | find mustInstanceOfTransition_class(problem,interpretation,var_t1); | ||
28514 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t1,var_virtual0); | ||
28515 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
28516 | var_virtual0 == var_s; | ||
28517 | find mustInstanceOfTransition_class(problem,interpretation,var_t2); | ||
28518 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t2,var_virtual1); | ||
28519 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28520 | var_virtual1 == var_s; | ||
28521 | find mustInstanceOfTransition_class(problem,interpretation,var_t3); | ||
28522 | find mustInRelationtarget_reference_Transition(problem,interpretation,var_t3,var_virtual2); | ||
28523 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual2); | ||
28524 | var_virtual2 == var_s; | ||
28525 | var_t1 != var_t2; | ||
28526 | var_t2 != var_t3; | ||
28527 | var_t1 != var_t3; | ||
28528 | }or{ | ||
28529 | find interpretation(problem,interpretation); | ||
28530 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s); | ||
28531 | // s is exported | ||
28532 | find mustInstanceOfTransition_class(problem,interpretation,var_t1); | ||
28533 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t1,var_virtual0); | ||
28534 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual0); | ||
28535 | var_virtual0 == var_s; | ||
28536 | find mustInstanceOfTransition_class(problem,interpretation,var_t2); | ||
28537 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t2,var_virtual1); | ||
28538 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual1); | ||
28539 | var_virtual1 == var_s; | ||
28540 | find mustInstanceOfTransition_class(problem,interpretation,var_t3); | ||
28541 | find mustInRelationsource_reference_Transition(problem,interpretation,var_t3,var_virtual2); | ||
28542 | find mustInstanceOfVertex_class(problem,interpretation,var_virtual2); | ||
28543 | var_virtual2 == var_s; | ||
28544 | var_t1 != var_t2; | ||
28545 | var_t2 != var_t3; | ||
28546 | var_t1 != var_t3; | ||
28547 | } | ||
28548 | // Must, May and Current queries for pattern ca mcgill ecse dslreasoner standalone test yakindu queries twoSynch | ||
28549 | private pattern mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch( | ||
28550 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28551 | var_s1, var_s2) | ||
28552 | { | ||
28553 | find interpretation(problem,interpretation); | ||
28554 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s1); | ||
28555 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s2); | ||
28556 | // s1 is exported | ||
28557 | // s2 is exported | ||
28558 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s1); | ||
28559 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s2); | ||
28560 | neg find mayEquivalent(problem, interpretation, var_s1, var_s2); | ||
28561 | } | ||
28562 | private pattern mayInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch( | ||
28563 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28564 | var_s1, var_s2) | ||
28565 | { | ||
28566 | find interpretation(problem,interpretation); | ||
28567 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s1); | ||
28568 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s2); | ||
28569 | // s1 is exported | ||
28570 | // s2 is exported | ||
28571 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s1); | ||
28572 | find mayInstanceOfSynchronization_class(problem,interpretation,var_s2); | ||
28573 | var_s1 != var_s2; | ||
28574 | } | ||
28575 | private pattern currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch( | ||
28576 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28577 | var_s1, var_s2) | ||
28578 | { | ||
28579 | find interpretation(problem,interpretation); | ||
28580 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s1); | ||
28581 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s2); | ||
28582 | // s1 is exported | ||
28583 | // s2 is exported | ||
28584 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s1); | ||
28585 | find mustInstanceOfSynchronization_class(problem,interpretation,var_s2); | ||
28586 | var_s1 != var_s2; | ||
28587 | } | ||
28588 | |||
28589 | ////////// | ||
28590 | // 1.4 Containment Indexer | ||
28591 | ////////// | ||
28592 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
28593 | find mustContains4(_,_,source,target); | ||
28594 | } | ||
28595 | |||
28596 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28597 | source: DefinedElement, target: DefinedElement) | ||
28598 | { find mustInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,source,target); }or | ||
28599 | |||
28600 | { find mustInRelationvertices_reference_Region(problem,interpretation,source,target); }or | ||
28601 | |||
28602 | { find mustInRelationregions_reference_CompositeElement(problem,interpretation,source,target); } | ||
28603 | |||
28604 | private pattern mustTransitiveContains(source,target) { | ||
28605 | find mustContains2+(source,target); | ||
28606 | } | ||
28607 | |||
28608 | ////////// | ||
28609 | // 2. Invalidation Indexers | ||
28610 | ////////// | ||
28611 | // 2.1 Invalidated by WF Queries | ||
28612 | ////////// | ||
28613 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28614 | var_r1) | ||
28615 | { | ||
28616 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem,interpretation,var_r1); | ||
28617 | } | ||
28618 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28619 | var_r) | ||
28620 | { | ||
28621 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem,interpretation,var_r); | ||
28622 | } | ||
28623 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28624 | var_t, var_e) | ||
28625 | { | ||
28626 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem,interpretation,var_t,var_e); | ||
28627 | } | ||
28628 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28629 | var_e) | ||
28630 | { | ||
28631 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem,interpretation,var_e); | ||
28632 | } | ||
28633 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28634 | var_e, var_t1, var_t2) | ||
28635 | { | ||
28636 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem,interpretation,var_e,var_t1,var_t2); | ||
28637 | } | ||
28638 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28639 | var_t, var_e) | ||
28640 | { | ||
28641 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem,interpretation,var_t,var_e); | ||
28642 | } | ||
28643 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28644 | var_t, var_f) | ||
28645 | { | ||
28646 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem,interpretation,var_t,var_f); | ||
28647 | } | ||
28648 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28649 | var_region) | ||
28650 | { | ||
28651 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem,interpretation,var_region); | ||
28652 | } | ||
28653 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28654 | var_c) | ||
28655 | { | ||
28656 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem,interpretation,var_c); | ||
28657 | } | ||
28658 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28659 | var_c) | ||
28660 | { | ||
28661 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem,interpretation,var_c); | ||
28662 | } | ||
28663 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28664 | var_s) | ||
28665 | { | ||
28666 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem,interpretation,var_s); | ||
28667 | } | ||
28668 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28669 | var_s) | ||
28670 | { | ||
28671 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem,interpretation,var_s); | ||
28672 | } | ||
28673 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28674 | var_s, var_v1, var_v2) | ||
28675 | { | ||
28676 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem,interpretation,var_s,var_v1,var_v2); | ||
28677 | } | ||
28678 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28679 | var_s) | ||
28680 | { | ||
28681 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem,interpretation,var_s); | ||
28682 | } | ||
28683 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28684 | var_s, var_v1, var_v2) | ||
28685 | { | ||
28686 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem,interpretation,var_s,var_v1,var_v2); | ||
28687 | } | ||
28688 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28689 | var_s, var_v) | ||
28690 | { | ||
28691 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem,interpretation,var_s,var_v); | ||
28692 | } | ||
28693 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28694 | var_s) | ||
28695 | { | ||
28696 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem,interpretation,var_s); | ||
28697 | } | ||
28698 | pattern invalidatedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28699 | var_s1, var_s2) | ||
28700 | { | ||
28701 | find mustInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem,interpretation,var_s1,var_s2); | ||
28702 | } | ||
28703 | |||
28704 | ////////// | ||
28705 | // 3. Unfinishedness Indexers | ||
28706 | ////////// | ||
28707 | // 3.1 Unfinishedness Measured by Multiplicity | ||
28708 | ////////// | ||
28709 | pattern unfinishedLowerMultiplicity_target_reference_Transition(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) { | ||
28710 | find interpretation(problem,interpretation); | ||
28711 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
28712 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference Transition"); | ||
28713 | find mustInstanceOfTransition_class(problem,interpretation,object); | ||
28714 | numberOfExistingReferences == count find mustInRelationtarget_reference_Transition(problem,interpretation,object,_); | ||
28715 | check(numberOfExistingReferences < 1); | ||
28716 | missingMultiplicity == eval(1-numberOfExistingReferences); | ||
28717 | } | ||
28718 | |||
28719 | ////////// | ||
28720 | // 3.2 Unfinishedness Measured by WF Queries | ||
28721 | ////////// | ||
28722 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28723 | var_r1) | ||
28724 | { | ||
28725 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noEntryInRegion(problem,interpretation,var_r1); | ||
28726 | } | ||
28727 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28728 | var_r) | ||
28729 | { | ||
28730 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleEntryInRegion(problem,interpretation,var_r); | ||
28731 | } | ||
28732 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28733 | var_t, var_e) | ||
28734 | { | ||
28735 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_incomingToEntry(problem,interpretation,var_t,var_e); | ||
28736 | } | ||
28737 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28738 | var_e) | ||
28739 | { | ||
28740 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noOutgoingTransitionFromEntry(problem,interpretation,var_e); | ||
28741 | } | ||
28742 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28743 | var_e, var_t1, var_t2) | ||
28744 | { | ||
28745 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_multipleTransitionFromEntry(problem,interpretation,var_e,var_t1,var_t2); | ||
28746 | } | ||
28747 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28748 | var_t, var_e) | ||
28749 | { | ||
28750 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromExit(problem,interpretation,var_t,var_e); | ||
28751 | } | ||
28752 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28753 | var_t, var_f) | ||
28754 | { | ||
28755 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_outgoingFromFinal(problem,interpretation,var_t,var_f); | ||
28756 | } | ||
28757 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28758 | var_region) | ||
28759 | { | ||
28760 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_noStateInRegion(problem,interpretation,var_region); | ||
28761 | } | ||
28762 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28763 | var_c) | ||
28764 | { | ||
28765 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoOutgoing(problem,interpretation,var_c); | ||
28766 | } | ||
28767 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28768 | var_c) | ||
28769 | { | ||
28770 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_choiceHasNoIncoming(problem,interpretation,var_c); | ||
28771 | } | ||
28772 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28773 | var_s) | ||
28774 | { | ||
28775 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoOutgoing(problem,interpretation,var_s); | ||
28776 | } | ||
28777 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28778 | var_s) | ||
28779 | { | ||
28780 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchHasNoIncoming(problem,interpretation,var_s); | ||
28781 | } | ||
28782 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28783 | var_s, var_v1, var_v2) | ||
28784 | { | ||
28785 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedIncomingInSameRegion(problem,interpretation,var_s,var_v1,var_v2); | ||
28786 | } | ||
28787 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28788 | var_s) | ||
28789 | { | ||
28790 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_notSynchronizingStates(problem,interpretation,var_s); | ||
28791 | } | ||
28792 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28793 | var_s, var_v1, var_v2) | ||
28794 | { | ||
28795 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionsAreNotSiblings(problem,interpretation,var_s,var_v1,var_v2); | ||
28796 | } | ||
28797 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28798 | var_s, var_v) | ||
28799 | { | ||
28800 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_SynchronizedRegionDoesNotHaveMultipleRegions(problem,interpretation,var_s,var_v); | ||
28801 | } | ||
28802 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28803 | var_s) | ||
28804 | { | ||
28805 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_synchThree(problem,interpretation,var_s); | ||
28806 | } | ||
28807 | pattern unfinishedBy_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem:LogicProblem, interpretation:PartialInterpretation, | ||
28808 | var_s1, var_s2) | ||
28809 | { | ||
28810 | find currentInRelation_pattern_ca_mcgill_ecse_dslreasoner_standalone_test_yakindu_queries_twoSynch(problem,interpretation,var_s1,var_s2); | ||
28811 | } | ||
28812 | |||
28813 | ////////// | ||
28814 | // 4. Refinement Indexers | ||
28815 | ////////// | ||
28816 | // 4.1 Object constructors | ||
28817 | ////////// | ||
28818 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
28819 | { | ||
28820 | find interpretation(problem,interpretation); | ||
28821 | find mustInstanceOfState_class(problem,interpretation,root); | ||
28822 | find mustExist(problem, interpretation, root); | ||
28823 | }or{ | ||
28824 | find interpretation(problem,interpretation); | ||
28825 | find mustInstanceOfRegion_class(problem,interpretation,root); | ||
28826 | find mustExist(problem, interpretation, root); | ||
28827 | }or{ | ||
28828 | find interpretation(problem,interpretation); | ||
28829 | find mustInstanceOfStatechart_class(problem,interpretation,root); | ||
28830 | find mustExist(problem, interpretation, root); | ||
28831 | }or{ | ||
28832 | find interpretation(problem,interpretation); | ||
28833 | find mustInstanceOfSynchronization_class(problem,interpretation,root); | ||
28834 | find mustExist(problem, interpretation, root); | ||
28835 | }or{ | ||
28836 | find interpretation(problem,interpretation); | ||
28837 | find mustInstanceOfChoice_class(problem,interpretation,root); | ||
28838 | find mustExist(problem, interpretation, root); | ||
28839 | }or{ | ||
28840 | find interpretation(problem,interpretation); | ||
28841 | find mustInstanceOfVertex_class(problem,interpretation,root); | ||
28842 | find mustExist(problem, interpretation, root); | ||
28843 | }or{ | ||
28844 | find interpretation(problem,interpretation); | ||
28845 | find mustInstanceOfRegularState_class(problem,interpretation,root); | ||
28846 | find mustExist(problem, interpretation, root); | ||
28847 | }or{ | ||
28848 | find interpretation(problem,interpretation); | ||
28849 | find mustInstanceOfEntry_class(problem,interpretation,root); | ||
28850 | find mustExist(problem, interpretation, root); | ||
28851 | }or{ | ||
28852 | find interpretation(problem,interpretation); | ||
28853 | find mustInstanceOfPseudostate_class(problem,interpretation,root); | ||
28854 | find mustExist(problem, interpretation, root); | ||
28855 | }or{ | ||
28856 | find interpretation(problem,interpretation); | ||
28857 | find mustInstanceOfFinalState_class(problem,interpretation,root); | ||
28858 | find mustExist(problem, interpretation, root); | ||
28859 | }or{ | ||
28860 | find interpretation(problem,interpretation); | ||
28861 | find mustInstanceOfExit_class(problem,interpretation,root); | ||
28862 | find mustExist(problem, interpretation, root); | ||
28863 | }or{ | ||
28864 | find interpretation(problem,interpretation); | ||
28865 | find mustInstanceOfTransition_class(problem,interpretation,root); | ||
28866 | find mustExist(problem, interpretation, root); | ||
28867 | }or{ | ||
28868 | find interpretation(problem,interpretation); | ||
28869 | find mustInstanceOfCompositeElement_class(problem,interpretation,root); | ||
28870 | find mustExist(problem, interpretation, root); | ||
28871 | }or{ | ||
28872 | find interpretation(problem,interpretation); | ||
28873 | find mustInstanceOfStatechart_class_DefinedPart(problem,interpretation,root); | ||
28874 | find mustExist(problem, interpretation, root); | ||
28875 | }or{ | ||
28876 | find interpretation(problem,interpretation); | ||
28877 | find mustInstanceOfStatechart_class_UndefinedPart(problem,interpretation,root); | ||
28878 | find mustExist(problem, interpretation, root); | ||
28879 | }or{ | ||
28880 | find interpretation(problem,interpretation); | ||
28881 | find mustInstanceOfCompositeElement_class_DefinedPart(problem,interpretation,root); | ||
28882 | find mustExist(problem, interpretation, root); | ||
28883 | }or{ | ||
28884 | find interpretation(problem,interpretation); | ||
28885 | find mustInstanceOfCompositeElement_class_UndefinedPart(problem,interpretation,root); | ||
28886 | find mustExist(problem, interpretation, root); | ||
28887 | } | ||
28888 | pattern createObject_Transition_class_by_outgoingTransitions_reference_Vertex_with_source_reference_Transition( | ||
28889 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28890 | relationInterpretation:PartialRelationInterpretation, inverseInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
28891 | container:DefinedElement) | ||
28892 | { | ||
28893 | find interpretation(problem,interpretation); | ||
28894 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28895 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Transition class"); | ||
28896 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
28897 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"outgoingTransitions reference Vertex"); | ||
28898 | PartialInterpretation.partialrelationinterpretation(interpretation,inverseInterpretation); | ||
28899 | PartialRelationInterpretation.interpretationOf.name(inverseInterpretation,"source reference Transition"); | ||
28900 | find mustInstanceOfVertex_class(problem,interpretation,container); | ||
28901 | find mayInstanceOfTransition_class(problem,interpretation,newObject); | ||
28902 | find mayInRelationoutgoingTransitions_reference_Vertex(problem,interpretation,container,newObject); | ||
28903 | find mustExist(problem, interpretation, container); | ||
28904 | neg find mustExist(problem, interpretation, newObject); | ||
28905 | } | ||
28906 | pattern createObject_Transition_class( | ||
28907 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28908 | typeInterpretation:PartialComplexTypeInterpretation) | ||
28909 | { | ||
28910 | find interpretation(problem,interpretation); | ||
28911 | neg find hasElementInContainment(problem,interpretation); | ||
28912 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28913 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Transition class"); | ||
28914 | find mayInstanceOfTransition_class(problem,interpretation,newObject); | ||
28915 | find mayExist(problem, interpretation, newObject); | ||
28916 | neg find mustExist(problem, interpretation, newObject); | ||
28917 | } | ||
28918 | pattern createObject_Entry_class_by_vertices_reference_Region( | ||
28919 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28920 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
28921 | container:DefinedElement) | ||
28922 | { | ||
28923 | find interpretation(problem,interpretation); | ||
28924 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28925 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Entry class"); | ||
28926 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
28927 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region"); | ||
28928 | find mustInstanceOfRegion_class(problem,interpretation,container); | ||
28929 | find mayInstanceOfEntry_class(problem,interpretation,newObject); | ||
28930 | find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject); | ||
28931 | find mustExist(problem, interpretation, container); | ||
28932 | neg find mustExist(problem, interpretation, newObject); | ||
28933 | } | ||
28934 | pattern createObject_Entry_class( | ||
28935 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28936 | typeInterpretation:PartialComplexTypeInterpretation) | ||
28937 | { | ||
28938 | find interpretation(problem,interpretation); | ||
28939 | neg find hasElementInContainment(problem,interpretation); | ||
28940 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28941 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Entry class"); | ||
28942 | find mayInstanceOfEntry_class(problem,interpretation,newObject); | ||
28943 | find mayExist(problem, interpretation, newObject); | ||
28944 | neg find mustExist(problem, interpretation, newObject); | ||
28945 | } | ||
28946 | pattern createObject_Region_class_by_regions_reference_CompositeElement( | ||
28947 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28948 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
28949 | container:DefinedElement) | ||
28950 | { | ||
28951 | find interpretation(problem,interpretation); | ||
28952 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28953 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Region class"); | ||
28954 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
28955 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"regions reference CompositeElement"); | ||
28956 | find mustInstanceOfCompositeElement_class(problem,interpretation,container); | ||
28957 | find mayInstanceOfRegion_class(problem,interpretation,newObject); | ||
28958 | find mayInRelationregions_reference_CompositeElement(problem,interpretation,container,newObject); | ||
28959 | find mustExist(problem, interpretation, container); | ||
28960 | neg find mustExist(problem, interpretation, newObject); | ||
28961 | } | ||
28962 | pattern createObject_Region_class( | ||
28963 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28964 | typeInterpretation:PartialComplexTypeInterpretation) | ||
28965 | { | ||
28966 | find interpretation(problem,interpretation); | ||
28967 | neg find hasElementInContainment(problem,interpretation); | ||
28968 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28969 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Region class"); | ||
28970 | find mayInstanceOfRegion_class(problem,interpretation,newObject); | ||
28971 | find mayExist(problem, interpretation, newObject); | ||
28972 | neg find mustExist(problem, interpretation, newObject); | ||
28973 | } | ||
28974 | pattern createObject_Choice_class_by_vertices_reference_Region( | ||
28975 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28976 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
28977 | container:DefinedElement) | ||
28978 | { | ||
28979 | find interpretation(problem,interpretation); | ||
28980 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28981 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Choice class"); | ||
28982 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
28983 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region"); | ||
28984 | find mustInstanceOfRegion_class(problem,interpretation,container); | ||
28985 | find mayInstanceOfChoice_class(problem,interpretation,newObject); | ||
28986 | find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject); | ||
28987 | find mustExist(problem, interpretation, container); | ||
28988 | neg find mustExist(problem, interpretation, newObject); | ||
28989 | } | ||
28990 | pattern createObject_Choice_class( | ||
28991 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
28992 | typeInterpretation:PartialComplexTypeInterpretation) | ||
28993 | { | ||
28994 | find interpretation(problem,interpretation); | ||
28995 | neg find hasElementInContainment(problem,interpretation); | ||
28996 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
28997 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Choice class"); | ||
28998 | find mayInstanceOfChoice_class(problem,interpretation,newObject); | ||
28999 | find mayExist(problem, interpretation, newObject); | ||
29000 | neg find mustExist(problem, interpretation, newObject); | ||
29001 | } | ||
29002 | pattern createObject_Synchronization_class_by_vertices_reference_Region( | ||
29003 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29004 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
29005 | container:DefinedElement) | ||
29006 | { | ||
29007 | find interpretation(problem,interpretation); | ||
29008 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29009 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Synchronization class"); | ||
29010 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
29011 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region"); | ||
29012 | find mustInstanceOfRegion_class(problem,interpretation,container); | ||
29013 | find mayInstanceOfSynchronization_class(problem,interpretation,newObject); | ||
29014 | find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject); | ||
29015 | find mustExist(problem, interpretation, container); | ||
29016 | neg find mustExist(problem, interpretation, newObject); | ||
29017 | } | ||
29018 | pattern createObject_Synchronization_class( | ||
29019 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29020 | typeInterpretation:PartialComplexTypeInterpretation) | ||
29021 | { | ||
29022 | find interpretation(problem,interpretation); | ||
29023 | neg find hasElementInContainment(problem,interpretation); | ||
29024 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29025 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Synchronization class"); | ||
29026 | find mayInstanceOfSynchronization_class(problem,interpretation,newObject); | ||
29027 | find mayExist(problem, interpretation, newObject); | ||
29028 | neg find mustExist(problem, interpretation, newObject); | ||
29029 | } | ||
29030 | pattern createObject_Statechart_class_UndefinedPart( | ||
29031 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29032 | typeInterpretation:PartialComplexTypeInterpretation) | ||
29033 | { | ||
29034 | find interpretation(problem,interpretation); | ||
29035 | neg find hasElementInContainment(problem,interpretation); | ||
29036 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29037 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Statechart class UndefinedPart"); | ||
29038 | find mayInstanceOfStatechart_class_UndefinedPart(problem,interpretation,newObject); | ||
29039 | find mayExist(problem, interpretation, newObject); | ||
29040 | neg find mustExist(problem, interpretation, newObject); | ||
29041 | } | ||
29042 | pattern createObject_State_class_by_vertices_reference_Region( | ||
29043 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29044 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
29045 | container:DefinedElement) | ||
29046 | { | ||
29047 | find interpretation(problem,interpretation); | ||
29048 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29049 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"State class"); | ||
29050 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
29051 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region"); | ||
29052 | find mustInstanceOfRegion_class(problem,interpretation,container); | ||
29053 | find mayInstanceOfState_class(problem,interpretation,newObject); | ||
29054 | find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject); | ||
29055 | find mustExist(problem, interpretation, container); | ||
29056 | neg find mustExist(problem, interpretation, newObject); | ||
29057 | } | ||
29058 | pattern createObject_State_class( | ||
29059 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29060 | typeInterpretation:PartialComplexTypeInterpretation) | ||
29061 | { | ||
29062 | find interpretation(problem,interpretation); | ||
29063 | neg find hasElementInContainment(problem,interpretation); | ||
29064 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29065 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"State class"); | ||
29066 | find mayInstanceOfState_class(problem,interpretation,newObject); | ||
29067 | find mayExist(problem, interpretation, newObject); | ||
29068 | neg find mustExist(problem, interpretation, newObject); | ||
29069 | } | ||
29070 | pattern createObject_Exit_class_by_vertices_reference_Region( | ||
29071 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29072 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
29073 | container:DefinedElement) | ||
29074 | { | ||
29075 | find interpretation(problem,interpretation); | ||
29076 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29077 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Exit class"); | ||
29078 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
29079 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region"); | ||
29080 | find mustInstanceOfRegion_class(problem,interpretation,container); | ||
29081 | find mayInstanceOfExit_class(problem,interpretation,newObject); | ||
29082 | find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject); | ||
29083 | find mustExist(problem, interpretation, container); | ||
29084 | neg find mustExist(problem, interpretation, newObject); | ||
29085 | } | ||
29086 | pattern createObject_Exit_class( | ||
29087 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29088 | typeInterpretation:PartialComplexTypeInterpretation) | ||
29089 | { | ||
29090 | find interpretation(problem,interpretation); | ||
29091 | neg find hasElementInContainment(problem,interpretation); | ||
29092 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29093 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Exit class"); | ||
29094 | find mayInstanceOfExit_class(problem,interpretation,newObject); | ||
29095 | find mayExist(problem, interpretation, newObject); | ||
29096 | neg find mustExist(problem, interpretation, newObject); | ||
29097 | } | ||
29098 | pattern createObject_FinalState_class_by_vertices_reference_Region( | ||
29099 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29100 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
29101 | container:DefinedElement) | ||
29102 | { | ||
29103 | find interpretation(problem,interpretation); | ||
29104 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29105 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FinalState class"); | ||
29106 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
29107 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"vertices reference Region"); | ||
29108 | find mustInstanceOfRegion_class(problem,interpretation,container); | ||
29109 | find mayInstanceOfFinalState_class(problem,interpretation,newObject); | ||
29110 | find mayInRelationvertices_reference_Region(problem,interpretation,container,newObject); | ||
29111 | find mustExist(problem, interpretation, container); | ||
29112 | neg find mustExist(problem, interpretation, newObject); | ||
29113 | } | ||
29114 | pattern createObject_FinalState_class( | ||
29115 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29116 | typeInterpretation:PartialComplexTypeInterpretation) | ||
29117 | { | ||
29118 | find interpretation(problem,interpretation); | ||
29119 | neg find hasElementInContainment(problem,interpretation); | ||
29120 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
29121 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FinalState class"); | ||
29122 | find mayInstanceOfFinalState_class(problem,interpretation,newObject); | ||
29123 | find mayExist(problem, interpretation, newObject); | ||
29124 | neg find mustExist(problem, interpretation, newObject); | ||
29125 | } | ||
29126 | |||
29127 | ////////// | ||
29128 | // 4.2 Type refinement | ||
29129 | ////////// | ||
29130 | pattern refineTypeTo_Transition_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29131 | find interpretation(problem,interpretation); | ||
29132 | PartialInterpretation.newElements(interpretation,element); | ||
29133 | find mayInstanceOfTransition_class(problem,interpretation,element); | ||
29134 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29135 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29136 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29137 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
29138 | } | ||
29139 | pattern refineTypeTo_Entry_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29140 | find interpretation(problem,interpretation); | ||
29141 | PartialInterpretation.newElements(interpretation,element); | ||
29142 | find mayInstanceOfEntry_class(problem,interpretation,element); | ||
29143 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29144 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29145 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
29146 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29147 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
29148 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
29149 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
29150 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
29151 | } | ||
29152 | pattern refineTypeTo_Region_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29153 | find interpretation(problem,interpretation); | ||
29154 | PartialInterpretation.newElements(interpretation,element); | ||
29155 | find mayInstanceOfRegion_class(problem,interpretation,element); | ||
29156 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29157 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29158 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29159 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
29160 | } | ||
29161 | pattern refineTypeTo_Choice_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29162 | find interpretation(problem,interpretation); | ||
29163 | PartialInterpretation.newElements(interpretation,element); | ||
29164 | find mayInstanceOfChoice_class(problem,interpretation,element); | ||
29165 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29166 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29167 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
29168 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29169 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
29170 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
29171 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
29172 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
29173 | } | ||
29174 | pattern refineTypeTo_Synchronization_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29175 | find interpretation(problem,interpretation); | ||
29176 | PartialInterpretation.newElements(interpretation,element); | ||
29177 | find mayInstanceOfSynchronization_class(problem,interpretation,element); | ||
29178 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29179 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29180 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
29181 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29182 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
29183 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
29184 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
29185 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
29186 | } | ||
29187 | pattern refineTypeTo_Statechart_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29188 | find interpretation(problem,interpretation); | ||
29189 | PartialInterpretation.newElements(interpretation,element); | ||
29190 | find mayInstanceOfStatechart_class_UndefinedPart(problem,interpretation,element); | ||
29191 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29192 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29193 | neg find mustInstanceOfVertex_class(problem,interpretation,element); | ||
29194 | neg find mustInstanceOfStatechart_class_UndefinedPart(problem,interpretation,element); | ||
29195 | } | ||
29196 | pattern refineTypeTo_State_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29197 | find interpretation(problem,interpretation); | ||
29198 | PartialInterpretation.newElements(interpretation,element); | ||
29199 | find mayInstanceOfState_class(problem,interpretation,element); | ||
29200 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
29201 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29202 | neg find mustInstanceOfStatechart_class(problem,interpretation,element); | ||
29203 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29204 | neg find mustInstanceOfState_class(problem,interpretation,element); | ||
29205 | neg find mustInstanceOfFinalState_class(problem,interpretation,element); | ||
29206 | } | ||
29207 | pattern refineTypeTo_Exit_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29208 | find interpretation(problem,interpretation); | ||
29209 | PartialInterpretation.newElements(interpretation,element); | ||
29210 | find mayInstanceOfExit_class(problem,interpretation,element); | ||
29211 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29212 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29213 | neg find mustInstanceOfEntry_class(problem,interpretation,element); | ||
29214 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29215 | neg find mustInstanceOfChoice_class(problem,interpretation,element); | ||
29216 | neg find mustInstanceOfRegularState_class(problem,interpretation,element); | ||
29217 | neg find mustInstanceOfSynchronization_class(problem,interpretation,element); | ||
29218 | neg find mustInstanceOfExit_class(problem,interpretation,element); | ||
29219 | } | ||
29220 | pattern refineTypeTo_FinalState_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
29221 | find interpretation(problem,interpretation); | ||
29222 | PartialInterpretation.newElements(interpretation,element); | ||
29223 | find mayInstanceOfFinalState_class(problem,interpretation,element); | ||
29224 | neg find mustInstanceOfPseudostate_class(problem,interpretation,element); | ||
29225 | neg find mustInstanceOfTransition_class(problem,interpretation,element); | ||
29226 | neg find mustInstanceOfCompositeElement_class(problem,interpretation,element); | ||
29227 | neg find mustInstanceOfRegion_class(problem,interpretation,element); | ||
29228 | neg find mustInstanceOfFinalState_class(problem,interpretation,element); | ||
29229 | } | ||
29230 | |||
29231 | ////////// | ||
29232 | // 4.3 Relation refinement | ||
29233 | ////////// | ||
29234 | pattern refineRelation_incomingTransitions_reference_Vertex_and_target_reference_Transition( | ||
29235 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
29236 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
29237 | from: DefinedElement, to: DefinedElement) | ||
29238 | { | ||
29239 | find interpretation(problem,interpretation); | ||
29240 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
29241 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"incomingTransitions reference Vertex"); | ||
29242 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
29243 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"target reference Transition"); | ||
29244 | find mustExist(problem, interpretation, from); | ||
29245 | find mustExist(problem, interpretation, to); | ||
29246 | find mustInstanceOfVertex_class(problem,interpretation,from); | ||
29247 | find mustInstanceOfTransition_class(problem,interpretation,to); | ||
29248 | find mayInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); | ||
29249 | neg find mustInRelationincomingTransitions_reference_Vertex(problem,interpretation,from,to); | ||
29250 | } | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem index 2079fe25..3696f838 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/debug/generation.logicproblem | |||
@@ -1402,7 +1402,7 @@ | |||
1402 | </value> | 1402 | </value> |
1403 | </relations> | 1403 | </relations> |
1404 | <elements name="o 1" definedInType="//@types.13 //@types.15"/> | 1404 | <elements name="o 1" definedInType="//@types.13 //@types.15"/> |
1405 | <containmentHierarchies typesOrderedInHierarchy="//@types.7 //@types.6 //@types.2 //@types.8 //@types.0 //@types.1 //@types.4 //@types.5 //@types.3 //@types.10 //@types.11 //@types.9 //@types.12 //@types.13 //@types.14 //@types.15 //@types.16" containmentRelations="//@relations.1 //@relations.2 //@relations.5"/> | 1405 | <containmentHierarchies typesOrderedInHierarchy="//@types.7 //@types.2 //@types.4 //@types.6 //@types.10 //@types.1 //@types.8 //@types.5 //@types.0 //@types.12 //@types.11 //@types.3 //@types.9 //@types.13 //@types.14 //@types.15 //@types.16" containmentRelations="//@relations.1 //@relations.2 //@relations.5"/> |
1406 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.3" lower="1"/> | 1406 | <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.3" lower="1"/> |
1407 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/> | 1407 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/> |
1408 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.4" upper="1"/> | 1408 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.4" upper="1"/> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt index 977a3efc..8d1daafe 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/log.txt | |||
@@ -1 +1 @@ | |||
Model generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedUnable to solve problem, but 0 model generated!Model generation finishedModel generation startedUnable to solve problem, but 0 model generated!Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finished \ No newline at end of file | Model generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, a model is generatedModels: [1.xmi]Visualisations: [1.gml]Visualisations: [1.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedProblem is consistent, 2 models are generated!Models: [1.xmi][2.xmi]Visualisations: [1.gml][2.gml]Visualisations: [1.png][2.png]Model generation finishedModel generation startedUnable to solve problem, but 0 model generated!Model generation finishedModel generation startedUnable to solve problem, but 0 model generated!Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finishedModel generation startedProblem is consistent, 5 models are generated!Models: [1.xmi][2.xmi][3.xmi][4.xmi][5.xmi]Visualisations: [1.gml][2.gml][3.gml][4.gml][5.gml]Visualisations: [1.png][2.png][3.png][4.png][5.png]Model generation finished \ No newline at end of file | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml index 897aa2d4..2b44b530 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.gml | |||
@@ -12790,3 +12790,833 @@ graph | |||
12790 | ] | 12790 | ] |
12791 | ] | 12791 | ] |
12792 | ] | 12792 | ] |
12793 | graph | ||
12794 | [ | ||
12795 | node | ||
12796 | [ | ||
12797 | id 0 | ||
12798 | graphics | ||
12799 | [ | ||
12800 | w 277.20000000000005 | ||
12801 | h 82 | ||
12802 | type "rectangle" | ||
12803 | fill "#FFFFFF" | ||
12804 | fill2 "#FFFFFF" | ||
12805 | outline "#000000" | ||
12806 | ] | ||
12807 | LabelGraphics | ||
12808 | [ | ||
12809 | text "o 1" | ||
12810 | outline "#000000" | ||
12811 | fill "#FFFFFF" | ||
12812 | fontSize 16 | ||
12813 | fontName "Monospace" | ||
12814 | autoSizePolicy "node_width" | ||
12815 | anchor "t" | ||
12816 | borderDistance 0.0 | ||
12817 | ] | ||
12818 | LabelGraphics | ||
12819 | [ | ||
12820 | text " | ||
12821 | Statechart class DefinedPart | ||
12822 | CompositeElement class DefinedPart | ||
12823 | Statechart class | ||
12824 | CompositeElement class | ||
12825 | " | ||
12826 | fontSize 14 | ||
12827 | fontName "Consolas" | ||
12828 | alignment "left" | ||
12829 | anchor "tl" | ||
12830 | borderDistance 6 | ||
12831 | ] | ||
12832 | ] | ||
12833 | |||
12834 | node | ||
12835 | [ | ||
12836 | id 1 | ||
12837 | graphics | ||
12838 | [ | ||
12839 | w 41.800000000000004 | ||
12840 | h 26 | ||
12841 | type "rectangle" | ||
12842 | fill "#FFFFFF" | ||
12843 | fill2 "#FFFFFF" | ||
12844 | outline "#000000" | ||
12845 | ] | ||
12846 | LabelGraphics | ||
12847 | [ | ||
12848 | text "true" | ||
12849 | outline "#000000" | ||
12850 | fill "#FFFFFF" | ||
12851 | fontSize 16 | ||
12852 | fontName "Monospace" | ||
12853 | autoSizePolicy "node_width" | ||
12854 | anchor "t" | ||
12855 | borderDistance 0.0 | ||
12856 | ] | ||
12857 | LabelGraphics | ||
12858 | [ | ||
12859 | text " | ||
12860 | " | ||
12861 | fontSize 14 | ||
12862 | fontName "Consolas" | ||
12863 | alignment "left" | ||
12864 | anchor "tl" | ||
12865 | borderDistance 6 | ||
12866 | ] | ||
12867 | ] | ||
12868 | |||
12869 | node | ||
12870 | [ | ||
12871 | id 2 | ||
12872 | graphics | ||
12873 | [ | ||
12874 | w 50.6 | ||
12875 | h 26 | ||
12876 | type "rectangle" | ||
12877 | fill "#FFFFFF" | ||
12878 | fill2 "#FFFFFF" | ||
12879 | outline "#000000" | ||
12880 | ] | ||
12881 | LabelGraphics | ||
12882 | [ | ||
12883 | text "false" | ||
12884 | outline "#000000" | ||
12885 | fill "#FFFFFF" | ||
12886 | fontSize 16 | ||
12887 | fontName "Monospace" | ||
12888 | autoSizePolicy "node_width" | ||
12889 | anchor "t" | ||
12890 | borderDistance 0.0 | ||
12891 | ] | ||
12892 | LabelGraphics | ||
12893 | [ | ||
12894 | text " | ||
12895 | " | ||
12896 | fontSize 14 | ||
12897 | fontName "Consolas" | ||
12898 | alignment "left" | ||
12899 | anchor "tl" | ||
12900 | borderDistance 6 | ||
12901 | ] | ||
12902 | ] | ||
12903 | |||
12904 | node | ||
12905 | [ | ||
12906 | id 3 | ||
12907 | graphics | ||
12908 | [ | ||
12909 | w 107.80000000000001 | ||
12910 | h 40 | ||
12911 | type "rectangle" | ||
12912 | fill "#FFFFFF" | ||
12913 | fill2 "#FFFFFF" | ||
12914 | outline "#000000" | ||
12915 | ] | ||
12916 | LabelGraphics | ||
12917 | [ | ||
12918 | text "null" | ||
12919 | outline "#000000" | ||
12920 | fill "#FFFFFF" | ||
12921 | fontSize 16 | ||
12922 | fontName "Monospace" | ||
12923 | autoSizePolicy "node_width" | ||
12924 | anchor "t" | ||
12925 | borderDistance 0.0 | ||
12926 | ] | ||
12927 | LabelGraphics | ||
12928 | [ | ||
12929 | text " | ||
12930 | Region class | ||
12931 | " | ||
12932 | fontSize 14 | ||
12933 | fontName "Consolas" | ||
12934 | alignment "left" | ||
12935 | anchor "tl" | ||
12936 | borderDistance 6 | ||
12937 | ] | ||
12938 | ] | ||
12939 | |||
12940 | node | ||
12941 | [ | ||
12942 | id 4 | ||
12943 | graphics | ||
12944 | [ | ||
12945 | w 154.0 | ||
12946 | h 68 | ||
12947 | type "rectangle" | ||
12948 | fill "#FFFFFF" | ||
12949 | fill2 "#FFFFFF" | ||
12950 | outline "#000000" | ||
12951 | ] | ||
12952 | LabelGraphics | ||
12953 | [ | ||
12954 | text "null" | ||
12955 | outline "#000000" | ||
12956 | fill "#FFFFFF" | ||
12957 | fontSize 16 | ||
12958 | fontName "Monospace" | ||
12959 | autoSizePolicy "node_width" | ||
12960 | anchor "t" | ||
12961 | borderDistance 0.0 | ||
12962 | ] | ||
12963 | LabelGraphics | ||
12964 | [ | ||
12965 | text " | ||
12966 | Vertex class | ||
12967 | RegularState class | ||
12968 | FinalState class | ||
12969 | " | ||
12970 | fontSize 14 | ||
12971 | fontName "Consolas" | ||
12972 | alignment "left" | ||
12973 | anchor "tl" | ||
12974 | borderDistance 6 | ||
12975 | ] | ||
12976 | ] | ||
12977 | |||
12978 | node | ||
12979 | [ | ||
12980 | id 5 | ||
12981 | graphics | ||
12982 | [ | ||
12983 | w 146.3 | ||
12984 | h 68 | ||
12985 | type "rectangle" | ||
12986 | fill "#FFFFFF" | ||
12987 | fill2 "#FFFFFF" | ||
12988 | outline "#000000" | ||
12989 | ] | ||
12990 | LabelGraphics | ||
12991 | [ | ||
12992 | text "null" | ||
12993 | outline "#000000" | ||
12994 | fill "#FFFFFF" | ||
12995 | fontSize 16 | ||
12996 | fontName "Monospace" | ||
12997 | autoSizePolicy "node_width" | ||
12998 | anchor "t" | ||
12999 | borderDistance 0.0 | ||
13000 | ] | ||
13001 | LabelGraphics | ||
13002 | [ | ||
13003 | text " | ||
13004 | Pseudostate class | ||
13005 | Vertex class | ||
13006 | Entry class | ||
13007 | " | ||
13008 | fontSize 14 | ||
13009 | fontName "Consolas" | ||
13010 | alignment "left" | ||
13011 | anchor "tl" | ||
13012 | borderDistance 6 | ||
13013 | ] | ||
13014 | ] | ||
13015 | |||
13016 | node | ||
13017 | [ | ||
13018 | id 6 | ||
13019 | graphics | ||
13020 | [ | ||
13021 | w 154.0 | ||
13022 | h 68 | ||
13023 | type "rectangle" | ||
13024 | fill "#FFFFFF" | ||
13025 | fill2 "#FFFFFF" | ||
13026 | outline "#000000" | ||
13027 | ] | ||
13028 | LabelGraphics | ||
13029 | [ | ||
13030 | text "null" | ||
13031 | outline "#000000" | ||
13032 | fill "#FFFFFF" | ||
13033 | fontSize 16 | ||
13034 | fontName "Monospace" | ||
13035 | autoSizePolicy "node_width" | ||
13036 | anchor "t" | ||
13037 | borderDistance 0.0 | ||
13038 | ] | ||
13039 | LabelGraphics | ||
13040 | [ | ||
13041 | text " | ||
13042 | Vertex class | ||
13043 | RegularState class | ||
13044 | FinalState class | ||
13045 | " | ||
13046 | fontSize 14 | ||
13047 | fontName "Consolas" | ||
13048 | alignment "left" | ||
13049 | anchor "tl" | ||
13050 | borderDistance 6 | ||
13051 | ] | ||
13052 | ] | ||
13053 | |||
13054 | node | ||
13055 | [ | ||
13056 | id 7 | ||
13057 | graphics | ||
13058 | [ | ||
13059 | w 154.0 | ||
13060 | h 68 | ||
13061 | type "rectangle" | ||
13062 | fill "#FFFFFF" | ||
13063 | fill2 "#FFFFFF" | ||
13064 | outline "#000000" | ||
13065 | ] | ||
13066 | LabelGraphics | ||
13067 | [ | ||
13068 | text "null" | ||
13069 | outline "#000000" | ||
13070 | fill "#FFFFFF" | ||
13071 | fontSize 16 | ||
13072 | fontName "Monospace" | ||
13073 | autoSizePolicy "node_width" | ||
13074 | anchor "t" | ||
13075 | borderDistance 0.0 | ||
13076 | ] | ||
13077 | LabelGraphics | ||
13078 | [ | ||
13079 | text " | ||
13080 | Vertex class | ||
13081 | RegularState class | ||
13082 | FinalState class | ||
13083 | " | ||
13084 | fontSize 14 | ||
13085 | fontName "Consolas" | ||
13086 | alignment "left" | ||
13087 | anchor "tl" | ||
13088 | borderDistance 6 | ||
13089 | ] | ||
13090 | ] | ||
13091 | |||
13092 | node | ||
13093 | [ | ||
13094 | id 8 | ||
13095 | graphics | ||
13096 | [ | ||
13097 | w 292.6 | ||
13098 | h 96 | ||
13099 | type "rectangle" | ||
13100 | fill "#FFFFFF" | ||
13101 | fill2 "#FFFFFF" | ||
13102 | outline "#000000" | ||
13103 | ] | ||
13104 | LabelGraphics | ||
13105 | [ | ||
13106 | text "null" | ||
13107 | outline "#000000" | ||
13108 | fill "#FFFFFF" | ||
13109 | fontSize 16 | ||
13110 | fontName "Monospace" | ||
13111 | autoSizePolicy "node_width" | ||
13112 | anchor "t" | ||
13113 | borderDistance 0.0 | ||
13114 | ] | ||
13115 | LabelGraphics | ||
13116 | [ | ||
13117 | text " | ||
13118 | Vertex class | ||
13119 | State class | ||
13120 | RegularState class | ||
13121 | CompositeElement class | ||
13122 | CompositeElement class UndefinedPart | ||
13123 | " | ||
13124 | fontSize 14 | ||
13125 | fontName "Consolas" | ||
13126 | alignment "left" | ||
13127 | anchor "tl" | ||
13128 | borderDistance 6 | ||
13129 | ] | ||
13130 | ] | ||
13131 | |||
13132 | node | ||
13133 | [ | ||
13134 | id 9 | ||
13135 | graphics | ||
13136 | [ | ||
13137 | w 138.60000000000002 | ||
13138 | h 40 | ||
13139 | type "rectangle" | ||
13140 | fill "#FFFFFF" | ||
13141 | fill2 "#FFFFFF" | ||
13142 | outline "#000000" | ||
13143 | ] | ||
13144 | LabelGraphics | ||
13145 | [ | ||
13146 | text "null" | ||
13147 | outline "#000000" | ||
13148 | fill "#FFFFFF" | ||
13149 | fontSize 16 | ||
13150 | fontName "Monospace" | ||
13151 | autoSizePolicy "node_width" | ||
13152 | anchor "t" | ||
13153 | borderDistance 0.0 | ||
13154 | ] | ||
13155 | LabelGraphics | ||
13156 | [ | ||
13157 | text " | ||
13158 | Transition class | ||
13159 | " | ||
13160 | fontSize 14 | ||
13161 | fontName "Consolas" | ||
13162 | alignment "left" | ||
13163 | anchor "tl" | ||
13164 | borderDistance 6 | ||
13165 | ] | ||
13166 | ] | ||
13167 | |||
13168 | node | ||
13169 | [ | ||
13170 | id 10 | ||
13171 | graphics | ||
13172 | [ | ||
13173 | w 292.6 | ||
13174 | h 96 | ||
13175 | type "rectangle" | ||
13176 | fill "#FFFFFF" | ||
13177 | fill2 "#FFFFFF" | ||
13178 | outline "#000000" | ||
13179 | ] | ||
13180 | LabelGraphics | ||
13181 | [ | ||
13182 | text "null" | ||
13183 | outline "#000000" | ||
13184 | fill "#FFFFFF" | ||
13185 | fontSize 16 | ||
13186 | fontName "Monospace" | ||
13187 | autoSizePolicy "node_width" | ||
13188 | anchor "t" | ||
13189 | borderDistance 0.0 | ||
13190 | ] | ||
13191 | LabelGraphics | ||
13192 | [ | ||
13193 | text " | ||
13194 | Vertex class | ||
13195 | State class | ||
13196 | RegularState class | ||
13197 | CompositeElement class | ||
13198 | CompositeElement class UndefinedPart | ||
13199 | " | ||
13200 | fontSize 14 | ||
13201 | fontName "Consolas" | ||
13202 | alignment "left" | ||
13203 | anchor "tl" | ||
13204 | borderDistance 6 | ||
13205 | ] | ||
13206 | ] | ||
13207 | |||
13208 | node | ||
13209 | [ | ||
13210 | id 11 | ||
13211 | graphics | ||
13212 | [ | ||
13213 | w 146.3 | ||
13214 | h 68 | ||
13215 | type "rectangle" | ||
13216 | fill "#FFFFFF" | ||
13217 | fill2 "#FFFFFF" | ||
13218 | outline "#000000" | ||
13219 | ] | ||
13220 | LabelGraphics | ||
13221 | [ | ||
13222 | text "null" | ||
13223 | outline "#000000" | ||
13224 | fill "#FFFFFF" | ||
13225 | fontSize 16 | ||
13226 | fontName "Monospace" | ||
13227 | autoSizePolicy "node_width" | ||
13228 | anchor "t" | ||
13229 | borderDistance 0.0 | ||
13230 | ] | ||
13231 | LabelGraphics | ||
13232 | [ | ||
13233 | text " | ||
13234 | Pseudostate class | ||
13235 | Vertex class | ||
13236 | Exit class | ||
13237 | " | ||
13238 | fontSize 14 | ||
13239 | fontName "Consolas" | ||
13240 | alignment "left" | ||
13241 | anchor "tl" | ||
13242 | borderDistance 6 | ||
13243 | ] | ||
13244 | ] | ||
13245 | |||
13246 | node | ||
13247 | [ | ||
13248 | id 12 | ||
13249 | graphics | ||
13250 | [ | ||
13251 | w 112.2 | ||
13252 | h 26 | ||
13253 | type "rectangle" | ||
13254 | fill "#FFFFFF" | ||
13255 | fill2 "#FFFFFF" | ||
13256 | outline "#000000" | ||
13257 | ] | ||
13258 | LabelGraphics | ||
13259 | [ | ||
13260 | text "New Integers" | ||
13261 | outline "#000000" | ||
13262 | fill "#FFFFFF" | ||
13263 | fontSize 16 | ||
13264 | fontName "Monospace" | ||
13265 | autoSizePolicy "node_width" | ||
13266 | anchor "t" | ||
13267 | borderDistance 0.0 | ||
13268 | ] | ||
13269 | LabelGraphics | ||
13270 | [ | ||
13271 | text " | ||
13272 | " | ||
13273 | fontSize 14 | ||
13274 | fontName "Consolas" | ||
13275 | alignment "left" | ||
13276 | anchor "tl" | ||
13277 | borderDistance 6 | ||
13278 | ] | ||
13279 | ] | ||
13280 | |||
13281 | node | ||
13282 | [ | ||
13283 | id 13 | ||
13284 | graphics | ||
13285 | [ | ||
13286 | w 85.80000000000001 | ||
13287 | h 26 | ||
13288 | type "rectangle" | ||
13289 | fill "#FFFFFF" | ||
13290 | fill2 "#FFFFFF" | ||
13291 | outline "#000000" | ||
13292 | ] | ||
13293 | LabelGraphics | ||
13294 | [ | ||
13295 | text "New Reals" | ||
13296 | outline "#000000" | ||
13297 | fill "#FFFFFF" | ||
13298 | fontSize 16 | ||
13299 | fontName "Monospace" | ||
13300 | autoSizePolicy "node_width" | ||
13301 | anchor "t" | ||
13302 | borderDistance 0.0 | ||
13303 | ] | ||
13304 | LabelGraphics | ||
13305 | [ | ||
13306 | text " | ||
13307 | " | ||
13308 | fontSize 14 | ||
13309 | fontName "Consolas" | ||
13310 | alignment "left" | ||
13311 | anchor "tl" | ||
13312 | borderDistance 6 | ||
13313 | ] | ||
13314 | ] | ||
13315 | |||
13316 | node | ||
13317 | [ | ||
13318 | id 14 | ||
13319 | graphics | ||
13320 | [ | ||
13321 | w 103.4 | ||
13322 | h 26 | ||
13323 | type "rectangle" | ||
13324 | fill "#FFFFFF" | ||
13325 | fill2 "#FFFFFF" | ||
13326 | outline "#000000" | ||
13327 | ] | ||
13328 | LabelGraphics | ||
13329 | [ | ||
13330 | text "New Strings" | ||
13331 | outline "#000000" | ||
13332 | fill "#FFFFFF" | ||
13333 | fontSize 16 | ||
13334 | fontName "Monospace" | ||
13335 | autoSizePolicy "node_width" | ||
13336 | anchor "t" | ||
13337 | borderDistance 0.0 | ||
13338 | ] | ||
13339 | LabelGraphics | ||
13340 | [ | ||
13341 | text " | ||
13342 | " | ||
13343 | fontSize 14 | ||
13344 | fontName "Consolas" | ||
13345 | alignment "left" | ||
13346 | anchor "tl" | ||
13347 | borderDistance 6 | ||
13348 | ] | ||
13349 | ] | ||
13350 | |||
13351 | node | ||
13352 | [ | ||
13353 | id 15 | ||
13354 | graphics | ||
13355 | [ | ||
13356 | w 103.4 | ||
13357 | h 26 | ||
13358 | type "rectangle" | ||
13359 | fill "#FFFFFF" | ||
13360 | fill2 "#FFFFFF" | ||
13361 | outline "#000000" | ||
13362 | ] | ||
13363 | LabelGraphics | ||
13364 | [ | ||
13365 | text "New Objects" | ||
13366 | outline "#000000" | ||
13367 | fill "#FFFFFF" | ||
13368 | fontSize 16 | ||
13369 | fontName "Monospace" | ||
13370 | autoSizePolicy "node_width" | ||
13371 | anchor "t" | ||
13372 | borderDistance 0.0 | ||
13373 | ] | ||
13374 | LabelGraphics | ||
13375 | [ | ||
13376 | text " | ||
13377 | " | ||
13378 | fontSize 14 | ||
13379 | fontName "Consolas" | ||
13380 | alignment "left" | ||
13381 | anchor "tl" | ||
13382 | borderDistance 6 | ||
13383 | ] | ||
13384 | ] | ||
13385 | edge | ||
13386 | [ | ||
13387 | source 7 | ||
13388 | target 9 | ||
13389 | graphics | ||
13390 | [ | ||
13391 | fill "#000000" | ||
13392 | targetArrow "standard" | ||
13393 | ] | ||
13394 | LabelGraphics | ||
13395 | [ | ||
13396 | text "incomingTransitions reference Vertex" | ||
13397 | fontSize 14 | ||
13398 | fontName "Consolas" | ||
13399 | configuration "AutoFlippingLabel" | ||
13400 | model "six_pos" | ||
13401 | position "thead" | ||
13402 | ] | ||
13403 | ] | ||
13404 | edge | ||
13405 | [ | ||
13406 | source 5 | ||
13407 | target 9 | ||
13408 | graphics | ||
13409 | [ | ||
13410 | fill "#000000" | ||
13411 | width 3 | ||
13412 | targetArrow "standard" | ||
13413 | ] | ||
13414 | LabelGraphics | ||
13415 | [ | ||
13416 | text "outgoingTransitions reference Vertex" | ||
13417 | fontSize 14 | ||
13418 | fontName "Consolas" | ||
13419 | configuration "AutoFlippingLabel" | ||
13420 | model "six_pos" | ||
13421 | position "thead" | ||
13422 | ] | ||
13423 | ] | ||
13424 | edge | ||
13425 | [ | ||
13426 | source 3 | ||
13427 | target 4 | ||
13428 | graphics | ||
13429 | [ | ||
13430 | fill "#000000" | ||
13431 | width 3 | ||
13432 | targetArrow "standard" | ||
13433 | ] | ||
13434 | LabelGraphics | ||
13435 | [ | ||
13436 | text "vertices reference Region" | ||
13437 | fontSize 14 | ||
13438 | fontName "Consolas" | ||
13439 | configuration "AutoFlippingLabel" | ||
13440 | model "six_pos" | ||
13441 | position "thead" | ||
13442 | ] | ||
13443 | ] | ||
13444 | edge | ||
13445 | [ | ||
13446 | source 3 | ||
13447 | target 5 | ||
13448 | graphics | ||
13449 | [ | ||
13450 | fill "#000000" | ||
13451 | width 3 | ||
13452 | targetArrow "standard" | ||
13453 | ] | ||
13454 | LabelGraphics | ||
13455 | [ | ||
13456 | text "vertices reference Region" | ||
13457 | fontSize 14 | ||
13458 | fontName "Consolas" | ||
13459 | configuration "AutoFlippingLabel" | ||
13460 | model "six_pos" | ||
13461 | position "thead" | ||
13462 | ] | ||
13463 | ] | ||
13464 | edge | ||
13465 | [ | ||
13466 | source 3 | ||
13467 | target 6 | ||
13468 | graphics | ||
13469 | [ | ||
13470 | fill "#000000" | ||
13471 | width 3 | ||
13472 | targetArrow "standard" | ||
13473 | ] | ||
13474 | LabelGraphics | ||
13475 | [ | ||
13476 | text "vertices reference Region" | ||
13477 | fontSize 14 | ||
13478 | fontName "Consolas" | ||
13479 | configuration "AutoFlippingLabel" | ||
13480 | model "six_pos" | ||
13481 | position "thead" | ||
13482 | ] | ||
13483 | ] | ||
13484 | edge | ||
13485 | [ | ||
13486 | source 3 | ||
13487 | target 7 | ||
13488 | graphics | ||
13489 | [ | ||
13490 | fill "#000000" | ||
13491 | width 3 | ||
13492 | targetArrow "standard" | ||
13493 | ] | ||
13494 | LabelGraphics | ||
13495 | [ | ||
13496 | text "vertices reference Region" | ||
13497 | fontSize 14 | ||
13498 | fontName "Consolas" | ||
13499 | configuration "AutoFlippingLabel" | ||
13500 | model "six_pos" | ||
13501 | position "thead" | ||
13502 | ] | ||
13503 | ] | ||
13504 | edge | ||
13505 | [ | ||
13506 | source 3 | ||
13507 | target 8 | ||
13508 | graphics | ||
13509 | [ | ||
13510 | fill "#000000" | ||
13511 | width 3 | ||
13512 | targetArrow "standard" | ||
13513 | ] | ||
13514 | LabelGraphics | ||
13515 | [ | ||
13516 | text "vertices reference Region" | ||
13517 | fontSize 14 | ||
13518 | fontName "Consolas" | ||
13519 | configuration "AutoFlippingLabel" | ||
13520 | model "six_pos" | ||
13521 | position "thead" | ||
13522 | ] | ||
13523 | ] | ||
13524 | edge | ||
13525 | [ | ||
13526 | source 3 | ||
13527 | target 10 | ||
13528 | graphics | ||
13529 | [ | ||
13530 | fill "#000000" | ||
13531 | width 3 | ||
13532 | targetArrow "standard" | ||
13533 | ] | ||
13534 | LabelGraphics | ||
13535 | [ | ||
13536 | text "vertices reference Region" | ||
13537 | fontSize 14 | ||
13538 | fontName "Consolas" | ||
13539 | configuration "AutoFlippingLabel" | ||
13540 | model "six_pos" | ||
13541 | position "thead" | ||
13542 | ] | ||
13543 | ] | ||
13544 | edge | ||
13545 | [ | ||
13546 | source 3 | ||
13547 | target 11 | ||
13548 | graphics | ||
13549 | [ | ||
13550 | fill "#000000" | ||
13551 | width 3 | ||
13552 | targetArrow "standard" | ||
13553 | ] | ||
13554 | LabelGraphics | ||
13555 | [ | ||
13556 | text "vertices reference Region" | ||
13557 | fontSize 14 | ||
13558 | fontName "Consolas" | ||
13559 | configuration "AutoFlippingLabel" | ||
13560 | model "six_pos" | ||
13561 | position "thead" | ||
13562 | ] | ||
13563 | ] | ||
13564 | edge | ||
13565 | [ | ||
13566 | source 9 | ||
13567 | target 7 | ||
13568 | graphics | ||
13569 | [ | ||
13570 | fill "#000000" | ||
13571 | targetArrow "standard" | ||
13572 | ] | ||
13573 | LabelGraphics | ||
13574 | [ | ||
13575 | text "target reference Transition" | ||
13576 | fontSize 14 | ||
13577 | fontName "Consolas" | ||
13578 | configuration "AutoFlippingLabel" | ||
13579 | model "six_pos" | ||
13580 | position "thead" | ||
13581 | ] | ||
13582 | ] | ||
13583 | edge | ||
13584 | [ | ||
13585 | source 9 | ||
13586 | target 5 | ||
13587 | graphics | ||
13588 | [ | ||
13589 | fill "#000000" | ||
13590 | targetArrow "standard" | ||
13591 | ] | ||
13592 | LabelGraphics | ||
13593 | [ | ||
13594 | text "source reference Transition" | ||
13595 | fontSize 14 | ||
13596 | fontName "Consolas" | ||
13597 | configuration "AutoFlippingLabel" | ||
13598 | model "six_pos" | ||
13599 | position "thead" | ||
13600 | ] | ||
13601 | ] | ||
13602 | edge | ||
13603 | [ | ||
13604 | source 0 | ||
13605 | target 3 | ||
13606 | graphics | ||
13607 | [ | ||
13608 | fill "#000000" | ||
13609 | width 3 | ||
13610 | targetArrow "standard" | ||
13611 | ] | ||
13612 | LabelGraphics | ||
13613 | [ | ||
13614 | text "regions reference CompositeElement" | ||
13615 | fontSize 14 | ||
13616 | fontName "Consolas" | ||
13617 | configuration "AutoFlippingLabel" | ||
13618 | model "six_pos" | ||
13619 | position "thead" | ||
13620 | ] | ||
13621 | ] | ||
13622 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png index 0b9199f4..6c9b4ffb 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi index 8136fd72..137f0943 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/1.xmi | |||
@@ -1,15 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel"> | 2 | <yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel"> |
3 | <regions> | 3 | <regions> |
4 | <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.1"/> | 4 | <vertices xsi:type="yakindu:FinalState"/> |
5 | <vertices xsi:type="yakindu:Entry"> | 5 | <vertices xsi:type="yakindu:State"/> |
6 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
7 | </vertices> | ||
8 | <vertices xsi:type="yakindu:Exit"/> | 6 | <vertices xsi:type="yakindu:Exit"/> |
9 | <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0"> | 7 | <vertices xsi:type="yakindu:FinalState"/> |
10 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | 8 | <vertices xsi:type="yakindu:State"/> |
11 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | 9 | <vertices xsi:type="yakindu:Entry"> |
10 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
12 | </vertices> | 11 | </vertices> |
13 | <vertices xsi:type="yakindu:FinalState" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.0"/> | 12 | <vertices xsi:type="yakindu:FinalState" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"/> |
14 | </regions> | 13 | </regions> |
15 | </yakindu:Statechart> | 14 | </yakindu:Statechart> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml index 77878c2e..f0112af7 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.gml | |||
@@ -12376,3 +12376,835 @@ graph | |||
12376 | ] | 12376 | ] |
12377 | ] | 12377 | ] |
12378 | ] | 12378 | ] |
12379 | graph | ||
12380 | [ | ||
12381 | node | ||
12382 | [ | ||
12383 | id 0 | ||
12384 | graphics | ||
12385 | [ | ||
12386 | w 277.20000000000005 | ||
12387 | h 82 | ||
12388 | type "rectangle" | ||
12389 | fill "#FFFFFF" | ||
12390 | fill2 "#FFFFFF" | ||
12391 | outline "#000000" | ||
12392 | ] | ||
12393 | LabelGraphics | ||
12394 | [ | ||
12395 | text "o 1" | ||
12396 | outline "#000000" | ||
12397 | fill "#FFFFFF" | ||
12398 | fontSize 16 | ||
12399 | fontName "Monospace" | ||
12400 | autoSizePolicy "node_width" | ||
12401 | anchor "t" | ||
12402 | borderDistance 0.0 | ||
12403 | ] | ||
12404 | LabelGraphics | ||
12405 | [ | ||
12406 | text " | ||
12407 | Statechart class DefinedPart | ||
12408 | CompositeElement class DefinedPart | ||
12409 | Statechart class | ||
12410 | CompositeElement class | ||
12411 | " | ||
12412 | fontSize 14 | ||
12413 | fontName "Consolas" | ||
12414 | alignment "left" | ||
12415 | anchor "tl" | ||
12416 | borderDistance 6 | ||
12417 | ] | ||
12418 | ] | ||
12419 | |||
12420 | node | ||
12421 | [ | ||
12422 | id 1 | ||
12423 | graphics | ||
12424 | [ | ||
12425 | w 41.800000000000004 | ||
12426 | h 26 | ||
12427 | type "rectangle" | ||
12428 | fill "#FFFFFF" | ||
12429 | fill2 "#FFFFFF" | ||
12430 | outline "#000000" | ||
12431 | ] | ||
12432 | LabelGraphics | ||
12433 | [ | ||
12434 | text "true" | ||
12435 | outline "#000000" | ||
12436 | fill "#FFFFFF" | ||
12437 | fontSize 16 | ||
12438 | fontName "Monospace" | ||
12439 | autoSizePolicy "node_width" | ||
12440 | anchor "t" | ||
12441 | borderDistance 0.0 | ||
12442 | ] | ||
12443 | LabelGraphics | ||
12444 | [ | ||
12445 | text " | ||
12446 | " | ||
12447 | fontSize 14 | ||
12448 | fontName "Consolas" | ||
12449 | alignment "left" | ||
12450 | anchor "tl" | ||
12451 | borderDistance 6 | ||
12452 | ] | ||
12453 | ] | ||
12454 | |||
12455 | node | ||
12456 | [ | ||
12457 | id 2 | ||
12458 | graphics | ||
12459 | [ | ||
12460 | w 50.6 | ||
12461 | h 26 | ||
12462 | type "rectangle" | ||
12463 | fill "#FFFFFF" | ||
12464 | fill2 "#FFFFFF" | ||
12465 | outline "#000000" | ||
12466 | ] | ||
12467 | LabelGraphics | ||
12468 | [ | ||
12469 | text "false" | ||
12470 | outline "#000000" | ||
12471 | fill "#FFFFFF" | ||
12472 | fontSize 16 | ||
12473 | fontName "Monospace" | ||
12474 | autoSizePolicy "node_width" | ||
12475 | anchor "t" | ||
12476 | borderDistance 0.0 | ||
12477 | ] | ||
12478 | LabelGraphics | ||
12479 | [ | ||
12480 | text " | ||
12481 | " | ||
12482 | fontSize 14 | ||
12483 | fontName "Consolas" | ||
12484 | alignment "left" | ||
12485 | anchor "tl" | ||
12486 | borderDistance 6 | ||
12487 | ] | ||
12488 | ] | ||
12489 | |||
12490 | node | ||
12491 | [ | ||
12492 | id 3 | ||
12493 | graphics | ||
12494 | [ | ||
12495 | w 107.80000000000001 | ||
12496 | h 40 | ||
12497 | type "rectangle" | ||
12498 | fill "#FFFFFF" | ||
12499 | fill2 "#FFFFFF" | ||
12500 | outline "#000000" | ||
12501 | ] | ||
12502 | LabelGraphics | ||
12503 | [ | ||
12504 | text "null" | ||
12505 | outline "#000000" | ||
12506 | fill "#FFFFFF" | ||
12507 | fontSize 16 | ||
12508 | fontName "Monospace" | ||
12509 | autoSizePolicy "node_width" | ||
12510 | anchor "t" | ||
12511 | borderDistance 0.0 | ||
12512 | ] | ||
12513 | LabelGraphics | ||
12514 | [ | ||
12515 | text " | ||
12516 | Region class | ||
12517 | " | ||
12518 | fontSize 14 | ||
12519 | fontName "Consolas" | ||
12520 | alignment "left" | ||
12521 | anchor "tl" | ||
12522 | borderDistance 6 | ||
12523 | ] | ||
12524 | ] | ||
12525 | |||
12526 | node | ||
12527 | [ | ||
12528 | id 4 | ||
12529 | graphics | ||
12530 | [ | ||
12531 | w 154.0 | ||
12532 | h 68 | ||
12533 | type "rectangle" | ||
12534 | fill "#FFFFFF" | ||
12535 | fill2 "#FFFFFF" | ||
12536 | outline "#000000" | ||
12537 | ] | ||
12538 | LabelGraphics | ||
12539 | [ | ||
12540 | text "null" | ||
12541 | outline "#000000" | ||
12542 | fill "#FFFFFF" | ||
12543 | fontSize 16 | ||
12544 | fontName "Monospace" | ||
12545 | autoSizePolicy "node_width" | ||
12546 | anchor "t" | ||
12547 | borderDistance 0.0 | ||
12548 | ] | ||
12549 | LabelGraphics | ||
12550 | [ | ||
12551 | text " | ||
12552 | Vertex class | ||
12553 | RegularState class | ||
12554 | FinalState class | ||
12555 | " | ||
12556 | fontSize 14 | ||
12557 | fontName "Consolas" | ||
12558 | alignment "left" | ||
12559 | anchor "tl" | ||
12560 | borderDistance 6 | ||
12561 | ] | ||
12562 | ] | ||
12563 | |||
12564 | node | ||
12565 | [ | ||
12566 | id 5 | ||
12567 | graphics | ||
12568 | [ | ||
12569 | w 146.3 | ||
12570 | h 68 | ||
12571 | type "rectangle" | ||
12572 | fill "#FFFFFF" | ||
12573 | fill2 "#FFFFFF" | ||
12574 | outline "#000000" | ||
12575 | ] | ||
12576 | LabelGraphics | ||
12577 | [ | ||
12578 | text "null" | ||
12579 | outline "#000000" | ||
12580 | fill "#FFFFFF" | ||
12581 | fontSize 16 | ||
12582 | fontName "Monospace" | ||
12583 | autoSizePolicy "node_width" | ||
12584 | anchor "t" | ||
12585 | borderDistance 0.0 | ||
12586 | ] | ||
12587 | LabelGraphics | ||
12588 | [ | ||
12589 | text " | ||
12590 | Pseudostate class | ||
12591 | Vertex class | ||
12592 | Entry class | ||
12593 | " | ||
12594 | fontSize 14 | ||
12595 | fontName "Consolas" | ||
12596 | alignment "left" | ||
12597 | anchor "tl" | ||
12598 | borderDistance 6 | ||
12599 | ] | ||
12600 | ] | ||
12601 | |||
12602 | node | ||
12603 | [ | ||
12604 | id 6 | ||
12605 | graphics | ||
12606 | [ | ||
12607 | w 154.0 | ||
12608 | h 68 | ||
12609 | type "rectangle" | ||
12610 | fill "#FFFFFF" | ||
12611 | fill2 "#FFFFFF" | ||
12612 | outline "#000000" | ||
12613 | ] | ||
12614 | LabelGraphics | ||
12615 | [ | ||
12616 | text "null" | ||
12617 | outline "#000000" | ||
12618 | fill "#FFFFFF" | ||
12619 | fontSize 16 | ||
12620 | fontName "Monospace" | ||
12621 | autoSizePolicy "node_width" | ||
12622 | anchor "t" | ||
12623 | borderDistance 0.0 | ||
12624 | ] | ||
12625 | LabelGraphics | ||
12626 | [ | ||
12627 | text " | ||
12628 | Vertex class | ||
12629 | RegularState class | ||
12630 | FinalState class | ||
12631 | " | ||
12632 | fontSize 14 | ||
12633 | fontName "Consolas" | ||
12634 | alignment "left" | ||
12635 | anchor "tl" | ||
12636 | borderDistance 6 | ||
12637 | ] | ||
12638 | ] | ||
12639 | |||
12640 | node | ||
12641 | [ | ||
12642 | id 7 | ||
12643 | graphics | ||
12644 | [ | ||
12645 | w 154.0 | ||
12646 | h 68 | ||
12647 | type "rectangle" | ||
12648 | fill "#FFFFFF" | ||
12649 | fill2 "#FFFFFF" | ||
12650 | outline "#000000" | ||
12651 | ] | ||
12652 | LabelGraphics | ||
12653 | [ | ||
12654 | text "null" | ||
12655 | outline "#000000" | ||
12656 | fill "#FFFFFF" | ||
12657 | fontSize 16 | ||
12658 | fontName "Monospace" | ||
12659 | autoSizePolicy "node_width" | ||
12660 | anchor "t" | ||
12661 | borderDistance 0.0 | ||
12662 | ] | ||
12663 | LabelGraphics | ||
12664 | [ | ||
12665 | text " | ||
12666 | Vertex class | ||
12667 | RegularState class | ||
12668 | FinalState class | ||
12669 | " | ||
12670 | fontSize 14 | ||
12671 | fontName "Consolas" | ||
12672 | alignment "left" | ||
12673 | anchor "tl" | ||
12674 | borderDistance 6 | ||
12675 | ] | ||
12676 | ] | ||
12677 | |||
12678 | node | ||
12679 | [ | ||
12680 | id 8 | ||
12681 | graphics | ||
12682 | [ | ||
12683 | w 292.6 | ||
12684 | h 96 | ||
12685 | type "rectangle" | ||
12686 | fill "#FFFFFF" | ||
12687 | fill2 "#FFFFFF" | ||
12688 | outline "#000000" | ||
12689 | ] | ||
12690 | LabelGraphics | ||
12691 | [ | ||
12692 | text "null" | ||
12693 | outline "#000000" | ||
12694 | fill "#FFFFFF" | ||
12695 | fontSize 16 | ||
12696 | fontName "Monospace" | ||
12697 | autoSizePolicy "node_width" | ||
12698 | anchor "t" | ||
12699 | borderDistance 0.0 | ||
12700 | ] | ||
12701 | LabelGraphics | ||
12702 | [ | ||
12703 | text " | ||
12704 | Vertex class | ||
12705 | State class | ||
12706 | RegularState class | ||
12707 | CompositeElement class | ||
12708 | CompositeElement class UndefinedPart | ||
12709 | " | ||
12710 | fontSize 14 | ||
12711 | fontName "Consolas" | ||
12712 | alignment "left" | ||
12713 | anchor "tl" | ||
12714 | borderDistance 6 | ||
12715 | ] | ||
12716 | ] | ||
12717 | |||
12718 | node | ||
12719 | [ | ||
12720 | id 9 | ||
12721 | graphics | ||
12722 | [ | ||
12723 | w 138.60000000000002 | ||
12724 | h 40 | ||
12725 | type "rectangle" | ||
12726 | fill "#FFFFFF" | ||
12727 | fill2 "#FFFFFF" | ||
12728 | outline "#000000" | ||
12729 | ] | ||
12730 | LabelGraphics | ||
12731 | [ | ||
12732 | text "null" | ||
12733 | outline "#000000" | ||
12734 | fill "#FFFFFF" | ||
12735 | fontSize 16 | ||
12736 | fontName "Monospace" | ||
12737 | autoSizePolicy "node_width" | ||
12738 | anchor "t" | ||
12739 | borderDistance 0.0 | ||
12740 | ] | ||
12741 | LabelGraphics | ||
12742 | [ | ||
12743 | text " | ||
12744 | Transition class | ||
12745 | " | ||
12746 | fontSize 14 | ||
12747 | fontName "Consolas" | ||
12748 | alignment "left" | ||
12749 | anchor "tl" | ||
12750 | borderDistance 6 | ||
12751 | ] | ||
12752 | ] | ||
12753 | |||
12754 | node | ||
12755 | [ | ||
12756 | id 10 | ||
12757 | graphics | ||
12758 | [ | ||
12759 | w 292.6 | ||
12760 | h 96 | ||
12761 | type "rectangle" | ||
12762 | fill "#FFFFFF" | ||
12763 | fill2 "#FFFFFF" | ||
12764 | outline "#000000" | ||
12765 | ] | ||
12766 | LabelGraphics | ||
12767 | [ | ||
12768 | text "null" | ||
12769 | outline "#000000" | ||
12770 | fill "#FFFFFF" | ||
12771 | fontSize 16 | ||
12772 | fontName "Monospace" | ||
12773 | autoSizePolicy "node_width" | ||
12774 | anchor "t" | ||
12775 | borderDistance 0.0 | ||
12776 | ] | ||
12777 | LabelGraphics | ||
12778 | [ | ||
12779 | text " | ||
12780 | Vertex class | ||
12781 | State class | ||
12782 | RegularState class | ||
12783 | CompositeElement class | ||
12784 | CompositeElement class UndefinedPart | ||
12785 | " | ||
12786 | fontSize 14 | ||
12787 | fontName "Consolas" | ||
12788 | alignment "left" | ||
12789 | anchor "tl" | ||
12790 | borderDistance 6 | ||
12791 | ] | ||
12792 | ] | ||
12793 | |||
12794 | node | ||
12795 | [ | ||
12796 | id 11 | ||
12797 | graphics | ||
12798 | [ | ||
12799 | w 292.6 | ||
12800 | h 96 | ||
12801 | type "rectangle" | ||
12802 | fill "#FFFFFF" | ||
12803 | fill2 "#FFFFFF" | ||
12804 | outline "#000000" | ||
12805 | ] | ||
12806 | LabelGraphics | ||
12807 | [ | ||
12808 | text "null" | ||
12809 | outline "#000000" | ||
12810 | fill "#FFFFFF" | ||
12811 | fontSize 16 | ||
12812 | fontName "Monospace" | ||
12813 | autoSizePolicy "node_width" | ||
12814 | anchor "t" | ||
12815 | borderDistance 0.0 | ||
12816 | ] | ||
12817 | LabelGraphics | ||
12818 | [ | ||
12819 | text " | ||
12820 | Vertex class | ||
12821 | State class | ||
12822 | RegularState class | ||
12823 | CompositeElement class | ||
12824 | CompositeElement class UndefinedPart | ||
12825 | " | ||
12826 | fontSize 14 | ||
12827 | fontName "Consolas" | ||
12828 | alignment "left" | ||
12829 | anchor "tl" | ||
12830 | borderDistance 6 | ||
12831 | ] | ||
12832 | ] | ||
12833 | |||
12834 | node | ||
12835 | [ | ||
12836 | id 12 | ||
12837 | graphics | ||
12838 | [ | ||
12839 | w 112.2 | ||
12840 | h 26 | ||
12841 | type "rectangle" | ||
12842 | fill "#FFFFFF" | ||
12843 | fill2 "#FFFFFF" | ||
12844 | outline "#000000" | ||
12845 | ] | ||
12846 | LabelGraphics | ||
12847 | [ | ||
12848 | text "New Integers" | ||
12849 | outline "#000000" | ||
12850 | fill "#FFFFFF" | ||
12851 | fontSize 16 | ||
12852 | fontName "Monospace" | ||
12853 | autoSizePolicy "node_width" | ||
12854 | anchor "t" | ||
12855 | borderDistance 0.0 | ||
12856 | ] | ||
12857 | LabelGraphics | ||
12858 | [ | ||
12859 | text " | ||
12860 | " | ||
12861 | fontSize 14 | ||
12862 | fontName "Consolas" | ||
12863 | alignment "left" | ||
12864 | anchor "tl" | ||
12865 | borderDistance 6 | ||
12866 | ] | ||
12867 | ] | ||
12868 | |||
12869 | node | ||
12870 | [ | ||
12871 | id 13 | ||
12872 | graphics | ||
12873 | [ | ||
12874 | w 85.80000000000001 | ||
12875 | h 26 | ||
12876 | type "rectangle" | ||
12877 | fill "#FFFFFF" | ||
12878 | fill2 "#FFFFFF" | ||
12879 | outline "#000000" | ||
12880 | ] | ||
12881 | LabelGraphics | ||
12882 | [ | ||
12883 | text "New Reals" | ||
12884 | outline "#000000" | ||
12885 | fill "#FFFFFF" | ||
12886 | fontSize 16 | ||
12887 | fontName "Monospace" | ||
12888 | autoSizePolicy "node_width" | ||
12889 | anchor "t" | ||
12890 | borderDistance 0.0 | ||
12891 | ] | ||
12892 | LabelGraphics | ||
12893 | [ | ||
12894 | text " | ||
12895 | " | ||
12896 | fontSize 14 | ||
12897 | fontName "Consolas" | ||
12898 | alignment "left" | ||
12899 | anchor "tl" | ||
12900 | borderDistance 6 | ||
12901 | ] | ||
12902 | ] | ||
12903 | |||
12904 | node | ||
12905 | [ | ||
12906 | id 14 | ||
12907 | graphics | ||
12908 | [ | ||
12909 | w 103.4 | ||
12910 | h 26 | ||
12911 | type "rectangle" | ||
12912 | fill "#FFFFFF" | ||
12913 | fill2 "#FFFFFF" | ||
12914 | outline "#000000" | ||
12915 | ] | ||
12916 | LabelGraphics | ||
12917 | [ | ||
12918 | text "New Strings" | ||
12919 | outline "#000000" | ||
12920 | fill "#FFFFFF" | ||
12921 | fontSize 16 | ||
12922 | fontName "Monospace" | ||
12923 | autoSizePolicy "node_width" | ||
12924 | anchor "t" | ||
12925 | borderDistance 0.0 | ||
12926 | ] | ||
12927 | LabelGraphics | ||
12928 | [ | ||
12929 | text " | ||
12930 | " | ||
12931 | fontSize 14 | ||
12932 | fontName "Consolas" | ||
12933 | alignment "left" | ||
12934 | anchor "tl" | ||
12935 | borderDistance 6 | ||
12936 | ] | ||
12937 | ] | ||
12938 | |||
12939 | node | ||
12940 | [ | ||
12941 | id 15 | ||
12942 | graphics | ||
12943 | [ | ||
12944 | w 103.4 | ||
12945 | h 26 | ||
12946 | type "rectangle" | ||
12947 | fill "#FFFFFF" | ||
12948 | fill2 "#FFFFFF" | ||
12949 | outline "#000000" | ||
12950 | ] | ||
12951 | LabelGraphics | ||
12952 | [ | ||
12953 | text "New Objects" | ||
12954 | outline "#000000" | ||
12955 | fill "#FFFFFF" | ||
12956 | fontSize 16 | ||
12957 | fontName "Monospace" | ||
12958 | autoSizePolicy "node_width" | ||
12959 | anchor "t" | ||
12960 | borderDistance 0.0 | ||
12961 | ] | ||
12962 | LabelGraphics | ||
12963 | [ | ||
12964 | text " | ||
12965 | " | ||
12966 | fontSize 14 | ||
12967 | fontName "Consolas" | ||
12968 | alignment "left" | ||
12969 | anchor "tl" | ||
12970 | borderDistance 6 | ||
12971 | ] | ||
12972 | ] | ||
12973 | edge | ||
12974 | [ | ||
12975 | source 7 | ||
12976 | target 9 | ||
12977 | graphics | ||
12978 | [ | ||
12979 | fill "#000000" | ||
12980 | targetArrow "standard" | ||
12981 | ] | ||
12982 | LabelGraphics | ||
12983 | [ | ||
12984 | text "incomingTransitions reference Vertex" | ||
12985 | fontSize 14 | ||
12986 | fontName "Consolas" | ||
12987 | configuration "AutoFlippingLabel" | ||
12988 | model "six_pos" | ||
12989 | position "thead" | ||
12990 | ] | ||
12991 | ] | ||
12992 | edge | ||
12993 | [ | ||
12994 | source 5 | ||
12995 | target 9 | ||
12996 | graphics | ||
12997 | [ | ||
12998 | fill "#000000" | ||
12999 | width 3 | ||
13000 | targetArrow "standard" | ||
13001 | ] | ||
13002 | LabelGraphics | ||
13003 | [ | ||
13004 | text "outgoingTransitions reference Vertex" | ||
13005 | fontSize 14 | ||
13006 | fontName "Consolas" | ||
13007 | configuration "AutoFlippingLabel" | ||
13008 | model "six_pos" | ||
13009 | position "thead" | ||
13010 | ] | ||
13011 | ] | ||
13012 | edge | ||
13013 | [ | ||
13014 | source 3 | ||
13015 | target 4 | ||
13016 | graphics | ||
13017 | [ | ||
13018 | fill "#000000" | ||
13019 | width 3 | ||
13020 | targetArrow "standard" | ||
13021 | ] | ||
13022 | LabelGraphics | ||
13023 | [ | ||
13024 | text "vertices reference Region" | ||
13025 | fontSize 14 | ||
13026 | fontName "Consolas" | ||
13027 | configuration "AutoFlippingLabel" | ||
13028 | model "six_pos" | ||
13029 | position "thead" | ||
13030 | ] | ||
13031 | ] | ||
13032 | edge | ||
13033 | [ | ||
13034 | source 3 | ||
13035 | target 5 | ||
13036 | graphics | ||
13037 | [ | ||
13038 | fill "#000000" | ||
13039 | width 3 | ||
13040 | targetArrow "standard" | ||
13041 | ] | ||
13042 | LabelGraphics | ||
13043 | [ | ||
13044 | text "vertices reference Region" | ||
13045 | fontSize 14 | ||
13046 | fontName "Consolas" | ||
13047 | configuration "AutoFlippingLabel" | ||
13048 | model "six_pos" | ||
13049 | position "thead" | ||
13050 | ] | ||
13051 | ] | ||
13052 | edge | ||
13053 | [ | ||
13054 | source 3 | ||
13055 | target 6 | ||
13056 | graphics | ||
13057 | [ | ||
13058 | fill "#000000" | ||
13059 | width 3 | ||
13060 | targetArrow "standard" | ||
13061 | ] | ||
13062 | LabelGraphics | ||
13063 | [ | ||
13064 | text "vertices reference Region" | ||
13065 | fontSize 14 | ||
13066 | fontName "Consolas" | ||
13067 | configuration "AutoFlippingLabel" | ||
13068 | model "six_pos" | ||
13069 | position "thead" | ||
13070 | ] | ||
13071 | ] | ||
13072 | edge | ||
13073 | [ | ||
13074 | source 3 | ||
13075 | target 7 | ||
13076 | graphics | ||
13077 | [ | ||
13078 | fill "#000000" | ||
13079 | width 3 | ||
13080 | targetArrow "standard" | ||
13081 | ] | ||
13082 | LabelGraphics | ||
13083 | [ | ||
13084 | text "vertices reference Region" | ||
13085 | fontSize 14 | ||
13086 | fontName "Consolas" | ||
13087 | configuration "AutoFlippingLabel" | ||
13088 | model "six_pos" | ||
13089 | position "thead" | ||
13090 | ] | ||
13091 | ] | ||
13092 | edge | ||
13093 | [ | ||
13094 | source 3 | ||
13095 | target 8 | ||
13096 | graphics | ||
13097 | [ | ||
13098 | fill "#000000" | ||
13099 | width 3 | ||
13100 | targetArrow "standard" | ||
13101 | ] | ||
13102 | LabelGraphics | ||
13103 | [ | ||
13104 | text "vertices reference Region" | ||
13105 | fontSize 14 | ||
13106 | fontName "Consolas" | ||
13107 | configuration "AutoFlippingLabel" | ||
13108 | model "six_pos" | ||
13109 | position "thead" | ||
13110 | ] | ||
13111 | ] | ||
13112 | edge | ||
13113 | [ | ||
13114 | source 3 | ||
13115 | target 10 | ||
13116 | graphics | ||
13117 | [ | ||
13118 | fill "#000000" | ||
13119 | width 3 | ||
13120 | targetArrow "standard" | ||
13121 | ] | ||
13122 | LabelGraphics | ||
13123 | [ | ||
13124 | text "vertices reference Region" | ||
13125 | fontSize 14 | ||
13126 | fontName "Consolas" | ||
13127 | configuration "AutoFlippingLabel" | ||
13128 | model "six_pos" | ||
13129 | position "thead" | ||
13130 | ] | ||
13131 | ] | ||
13132 | edge | ||
13133 | [ | ||
13134 | source 3 | ||
13135 | target 11 | ||
13136 | graphics | ||
13137 | [ | ||
13138 | fill "#000000" | ||
13139 | width 3 | ||
13140 | targetArrow "standard" | ||
13141 | ] | ||
13142 | LabelGraphics | ||
13143 | [ | ||
13144 | text "vertices reference Region" | ||
13145 | fontSize 14 | ||
13146 | fontName "Consolas" | ||
13147 | configuration "AutoFlippingLabel" | ||
13148 | model "six_pos" | ||
13149 | position "thead" | ||
13150 | ] | ||
13151 | ] | ||
13152 | edge | ||
13153 | [ | ||
13154 | source 9 | ||
13155 | target 7 | ||
13156 | graphics | ||
13157 | [ | ||
13158 | fill "#000000" | ||
13159 | targetArrow "standard" | ||
13160 | ] | ||
13161 | LabelGraphics | ||
13162 | [ | ||
13163 | text "target reference Transition" | ||
13164 | fontSize 14 | ||
13165 | fontName "Consolas" | ||
13166 | configuration "AutoFlippingLabel" | ||
13167 | model "six_pos" | ||
13168 | position "thead" | ||
13169 | ] | ||
13170 | ] | ||
13171 | edge | ||
13172 | [ | ||
13173 | source 9 | ||
13174 | target 5 | ||
13175 | graphics | ||
13176 | [ | ||
13177 | fill "#000000" | ||
13178 | targetArrow "standard" | ||
13179 | ] | ||
13180 | LabelGraphics | ||
13181 | [ | ||
13182 | text "source reference Transition" | ||
13183 | fontSize 14 | ||
13184 | fontName "Consolas" | ||
13185 | configuration "AutoFlippingLabel" | ||
13186 | model "six_pos" | ||
13187 | position "thead" | ||
13188 | ] | ||
13189 | ] | ||
13190 | edge | ||
13191 | [ | ||
13192 | source 0 | ||
13193 | target 3 | ||
13194 | graphics | ||
13195 | [ | ||
13196 | fill "#000000" | ||
13197 | width 3 | ||
13198 | targetArrow "standard" | ||
13199 | ] | ||
13200 | LabelGraphics | ||
13201 | [ | ||
13202 | text "regions reference CompositeElement" | ||
13203 | fontSize 14 | ||
13204 | fontName "Consolas" | ||
13205 | configuration "AutoFlippingLabel" | ||
13206 | model "six_pos" | ||
13207 | position "thead" | ||
13208 | ] | ||
13209 | ] | ||
13210 | ] | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png index 08502c12..548f8dae 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.png | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi index f61f6ffb..0d85e1cd 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/models/2.xmi | |||
@@ -1,15 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | 1 | <?xml version="1.0" encoding="ASCII"?> |
2 | <yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel"> | 2 | <yakindu:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:yakindu="YakinduMetamodel"> |
3 | <regions> | 3 | <regions> |
4 | <vertices xsi:type="yakindu:Exit"/> | 4 | <vertices xsi:type="yakindu:FinalState"/> |
5 | <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.4/@outgoingTransitions.0"/> | 5 | <vertices xsi:type="yakindu:State"/> |
6 | <vertices xsi:type="yakindu:State"/> | ||
7 | <vertices xsi:type="yakindu:FinalState"/> | ||
8 | <vertices xsi:type="yakindu:State"/> | ||
6 | <vertices xsi:type="yakindu:Entry"> | 9 | <vertices xsi:type="yakindu:Entry"> |
7 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | 10 | <outgoingTransitions target="//@regions.0/@vertices.6"/> |
8 | </vertices> | 11 | </vertices> |
9 | <vertices xsi:type="yakindu:Exit"/> | 12 | <vertices xsi:type="yakindu:FinalState" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"/> |
10 | <vertices xsi:type="yakindu:State" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
11 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
12 | </vertices> | ||
13 | <vertices xsi:type="yakindu:FinalState"/> | ||
14 | </regions> | 13 | </regions> |
15 | </yakindu:Statechart> | 14 | </yakindu:Statechart> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv index 9e25c13a..290c841e 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/yakindu/statistics.csv | |||
@@ -16,3 +16,5 @@ Task;Run;Result;Domain to logic transformation time;Logic to solver transformati | |||
16 | 1;1;ModelResultImpl;42;3179;15266;13359431300;12045;12060;12077;12082;12107;9023;25;176;0;9 | 16 | 1;1;ModelResultImpl;42;3179;15266;13359431300;12045;12060;12077;12082;12107;9023;25;176;0;9 |
17 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | 17 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime |
18 | 1;1;ModelResultImpl;646;4720;6290;14663107900;900;1000;1126;1525;1621;1177;235;34;0;17 | 18 | 1;1;ModelResultImpl;646;4720;6290;14663107900;900;1000;1126;1525;1621;1177;235;34;0;17 |
19 | Task;Run;Result;Domain to logic transformation time;Logic to solver transformation time;Solver time;Postprocessing time;_Solution0FoundAt;_Solution1FoundAt;_Solution2FoundAt;_Solution3FoundAt;_Solution4FoundAt;TransformationExecutionTime;TypeAnalysisTime;StateCoderTime;StateCoderFailCount;SolutionCopyTime | ||
20 | 1;1;ModelResultImpl;564;4692;4940;13642804600;616;832;966;1014;1191;829;198;27;0;17 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml index 7e10c75a..28ea4798 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml | |||
@@ -20,8 +20,8 @@ | |||
20 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/> | 20 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/> |
21 | </group> | 21 | </group> |
22 | </extension> | 22 | </extension> |
23 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamSPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | 23 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> |
24 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamSPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamSPatterns"> | 24 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns"> |
25 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"/> | 25 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"/> |
26 | </group> | 26 | </group> |
27 | </extension> | 27 | </extension> |
@@ -129,6 +129,12 @@ | |||
129 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.twoSynch"/> | 129 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.twoSynch"/> |
130 | </group> | 130 | </group> |
131 | </extension> | 131 | </extension> |
132 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
133 | <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="FamMetamodel"/> | ||
134 | </extension> | ||
135 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
136 | <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="FamMetamodel"/> | ||
137 | </extension> | ||
132 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 138 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
133 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> | 139 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> |
134 | </extension> | 140 | </extension> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/functionalPlugin.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/pluginWorking.txt index ca86fe6b..ca86fe6b 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/functionalPlugin.txt +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/pluginWorking.txt | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/pluginWorking2.txt b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/pluginWorking2.txt new file mode 100644 index 00000000..ea39dade --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/pluginWorking2.txt | |||
@@ -0,0 +1,141 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><?eclipse version="3.0"?><!-- | ||
2 | --><plugin> | ||
3 | <extension point="org.eclipse.emf.ecore.generated_package"> | ||
4 | <!-- @generated fam --> | ||
5 | <package class="ca.mcgill.ecse.dslreasoner.standalone.test.fam.famPackage" genModel="metamodels/fam.genmodel" uri="FamMetamodel"/> | ||
6 | </extension> | ||
7 | <extension point="org.eclipse.emf.ecore.generated_package"> | ||
8 | <!-- @generated yakindu --> | ||
9 | <package class="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.yakinduPackage" genModel="metamodels/yakindu.genmodel" uri="YakinduMetamodel"/> | ||
10 | </extension> | ||
11 | <extension point="org.eclipse.emf.ecore.generated_package"> | ||
12 | <!-- @generated filesystem --> | ||
13 | <package class="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage" genModel="metamodels/filesystem.genmodel" uri="FileSystemMetamodel"/> | ||
14 | </extension> | ||
15 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.EcorePatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
16 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.EcorePatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.EcorePatterns"> | ||
17 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.directSupertype"/> | ||
18 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.loopInInheritence"/> | ||
19 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.opposite"/> | ||
20 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/> | ||
21 | </group> | ||
22 | </extension> | ||
23 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
24 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns"> | ||
25 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"/> | ||
26 | </group> | ||
27 | </extension> | ||
28 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
29 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.FileSystemPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.FileSystemPatterns"> | ||
30 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.patternContent"/> | ||
31 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.live"/> | ||
32 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.contentInNotLive"/> | ||
33 | </group> | ||
34 | </extension> | ||
35 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduMutatedPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
36 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduMutatedPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduMutatedPatterns"> | ||
37 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.entryInRegion_M0"/> | ||
38 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.entryInRegion_M1"/> | ||
39 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.entryInRegion_M2"/> | ||
40 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion_M0"/> | ||
41 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion_M1"/> | ||
42 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion_M2"/> | ||
43 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion_M3"/> | ||
44 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion_M4"/> | ||
45 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion_M5"/> | ||
46 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion_M0"/> | ||
47 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion_M1"/> | ||
48 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion_M2"/> | ||
49 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion_M3"/> | ||
50 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion_M4"/> | ||
51 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion_M5"/> | ||
52 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.transition_M0"/> | ||
53 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.transition_M1"/> | ||
54 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.transition_M2"/> | ||
55 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.transition_M3"/> | ||
56 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.transition_M4"/> | ||
57 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry_M0"/> | ||
58 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry_1"/> | ||
59 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry_2"/> | ||
60 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry_3"/> | ||
61 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry_4"/> | ||
62 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry_5"/> | ||
63 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry_M0"/> | ||
64 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry_M1"/> | ||
65 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry_M2"/> | ||
66 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry_M3"/> | ||
67 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry_M4"/> | ||
68 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry_M5"/> | ||
69 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleTransitionFromEntry_M0"/> | ||
70 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleTransitionFromEntry_M1"/> | ||
71 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleTransitionFromEntry_M2"/> | ||
72 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleTransitionFromEntry_M3"/> | ||
73 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleTransitionFromEntry_M4"/> | ||
74 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromExit_M0"/> | ||
75 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromExit_M1"/> | ||
76 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromExit_M2"/> | ||
77 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromFinal_M0"/> | ||
78 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromFinal_M1"/> | ||
79 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromFinal_M2"/> | ||
80 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noStateInRegion_M0"/> | ||
81 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noStateInRegion_M1"/> | ||
82 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noStateInRegion_M2"/> | ||
83 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noStateInRegion_M3"/> | ||
84 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.StateInRegion_M0"/> | ||
85 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.StateInRegion_M1"/> | ||
86 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.StateInRegion_M2"/> | ||
87 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M0"/> | ||
88 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M1"/> | ||
89 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M2"/> | ||
90 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M3"/> | ||
91 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M4"/> | ||
92 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M5"/> | ||
93 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing_M6"/> | ||
94 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M0"/> | ||
95 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M1"/> | ||
96 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M2"/> | ||
97 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M3"/> | ||
98 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M4"/> | ||
99 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M5"/> | ||
100 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming_M6"/> | ||
101 | </group> | ||
102 | </extension> | ||
103 | <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
104 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.YakinduPatterns"> | ||
105 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.entryInRegion"/> | ||
106 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noEntryInRegion"/> | ||
107 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleEntryInRegion"/> | ||
108 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.transition"/> | ||
109 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.incomingToEntry"/> | ||
110 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noOutgoingTransitionFromEntry"/> | ||
111 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.multipleTransitionFromEntry"/> | ||
112 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromExit"/> | ||
113 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.outgoingFromFinal"/> | ||
114 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.noStateInRegion"/> | ||
115 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.StateInRegion"/> | ||
116 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoOutgoing"/> | ||
117 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.choiceHasNoIncoming"/> | ||
118 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.synchHasNoOutgoing"/> | ||
119 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.synchHasNoIncoming"/> | ||
120 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.SynchronizedIncomingInSameRegion"/> | ||
121 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.notSynchronizingStates"/> | ||
122 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.hasMultipleOutgoingTrainsition"/> | ||
123 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.hasMultipleIncomingTrainsition"/> | ||
124 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.SynchronizedRegionsAreNotSiblings"/> | ||
125 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.child"/> | ||
126 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.SynchronizedRegionDoesNotHaveMultipleRegions"/> | ||
127 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.hasMultipleRegions"/> | ||
128 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.synchThree"/> | ||
129 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.yakindu.queries.twoSynch"/> | ||
130 | </group> | ||
131 | </extension> | ||
132 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
133 | <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="FamMetamodel"/> | ||
134 | </extension> | ||
135 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.type" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
136 | <wellbehaving-derived-feature classifier-name="Function" feature-name="type" package-nsUri="FamMetamodel"/> | ||
137 | </extension> | ||
138 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | ||
139 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> | ||
140 | </extension> | ||
141 | </plugin> | ||
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/famPatterns.vql index 153fec91..1c6a545e 100644 --- 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/famPatterns.vql | |||
@@ -1,6 +1,6 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries | 1 | package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries |
2 | 2 | ||
3 | import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam" | 3 | import epackage "FamMetamodel" |
4 | 4 | ||
5 | @Constraint(message="terminatorAndInformation", severity="error", key={T}) | 5 | @Constraint(message="terminatorAndInformation", severity="error", key={T}) |
6 | pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | 6 | pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { |
@@ -11,6 +11,7 @@ pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = { | |||
11 | FunctionalInput.terminator(In,T); | 11 | FunctionalInput.terminator(In,T); |
12 | } | 12 | } |
13 | 13 | ||
14 | /* | ||
14 | @QueryBasedFeature | 15 | @QueryBasedFeature |
15 | pattern type(This : Function, Target : FunctionType) = { | 16 | pattern type(This : Function, Target : FunctionType) = { |
16 | find rootElements(_Model, This); | 17 | find rootElements(_Model, This); |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java index 1d3019e8..69a6b9f4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java | |||
@@ -1,5 +1,5 @@ | |||
1 | /** | 1 | /** |
2 | * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famSPatterns.vql | 2 | * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql |
3 | */ | 3 | */ |
4 | package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries; | 4 | package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries; |
5 | 5 | ||