From 942dcb2f66ac2317e17bea84b13fabce805e0b8e Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Wed, 2 Aug 2017 20:16:20 +0200 Subject: Added methods to decide which attribure or enum type is mapped ot the logic problem. --- .../mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend | 6 ++++++ .../hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu') diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend index b78ad89f..74f82a13 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend @@ -18,6 +18,7 @@ interface EAttributeMapper { def Term IsAttributeValue(Ecore2Logic_Trace trace, TermDescription object, TermDescription value, EAttribute attribute) def RelationDeclaration relationOfAttribute(Ecore2Logic_Trace trace, EAttribute attribute) def TypeDescriptor TypeOfRange(Ecore2Logic_Trace trace, EAttribute attribute) + def Iterable allAttributesInScope(Ecore2Logic_Trace trace) } class EAttributeMapper_RelationsOverTypes_Trace implements Trace{ @@ -116,4 +117,9 @@ class EAttributeMapper_RelationsOverTypes implements EAttributeMapper { override relationOfAttribute(Ecore2Logic_Trace trace, EAttribute attribute) { trace.attributeMapperTrace.asTrace.indicators.get(attribute) } + + override allAttributesInScope(Ecore2Logic_Trace trace) { + trace.attributeMapperTrace.asTrace.indicators.keySet + } + } \ No newline at end of file diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend index 82aee1e2..5935c6d0 100644 --- a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend +++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend @@ -17,11 +17,12 @@ interface EEnumMapper { def void transformEEnums(Ecore2Logic_Trace trace, LogicProblem problem, Iterable enums,Ecore2LogicConfiguration config) def Type TypeofEEnum(Ecore2Logic_Trace trace, EEnum type) def TermDescription Literal(Ecore2Logic_Trace trace, Enumerator literal) + def Iterable allEnumsInScope(Ecore2Logic_Trace trace) + def Iterable allLiteralsInScope(Ecore2Logic_Trace trace) } class EEnumMapper_PredefinedClasses_Trace implements Trace{ public var Map enums - public var Map literals } @@ -57,4 +58,13 @@ class EEnumMapper_PredefinedClasses implements EEnumMapper { override Literal(Ecore2Logic_Trace trace, Enumerator literal) { literal.lookup(trace.enumMapperTrace.asTrace.literals) } + + override allEnumsInScope(Ecore2Logic_Trace trace) { + trace.enumMapperTrace.asTrace.enums.keySet + } + + override allLiteralsInScope(Ecore2Logic_Trace trace) { + trace.enumMapperTrace.asTrace.literals.keySet + } + } \ No newline at end of file -- cgit v1.2.3-54-g00ecf