From 60f01f46ba232ed6416054f0a6115cb2a9b70b4e Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Sat, 10 Jun 2017 19:05:05 +0200 Subject: Migrating Additional projects --- ...mmutableTypeLatticeWithEquivalenceCounter.xtend | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/neighbourhood/PartialInterpretation2ImmutableTypeLatticeWithEquivalenceCounter.xtend (limited to 'Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/neighbourhood/PartialInterpretation2ImmutableTypeLatticeWithEquivalenceCounter.xtend') diff --git a/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/neighbourhood/PartialInterpretation2ImmutableTypeLatticeWithEquivalenceCounter.xtend b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/neighbourhood/PartialInterpretation2ImmutableTypeLatticeWithEquivalenceCounter.xtend new file mode 100644 index 00000000..251a82f0 --- /dev/null +++ b/Solvers/VIATRA-Solver/hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage/src/hu/bme/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage/neighbourhood/PartialInterpretation2ImmutableTypeLatticeWithEquivalenceCounter.xtend @@ -0,0 +1,56 @@ +package hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood + +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement +import java.util.Map +import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* +import java.util.HashMap + +class PartialInterpretation2ImmutableTypeLatticeWithEquivalenceCounter extends + PartialInterpretation2NeighbourhoodRepresentation< + Map, // <- Model Descriptor + AbstractNodeDescriptor> // <- Node Descriptor + { + + protected new() { + super(true,false) + } + + override protected createLocalRepresentation(Map node2Representation, Map representation2Amount) { + return new NeighbourhoodWithTraces(node2Representation.immutableCopy,node2Representation.immutableCopy,null) + } + + override protected createFurtherRepresentation( + Map, Integer> nodeDescriptors, + Map> node2Representation, + NeighbourhoodWithTraces, AbstractNodeDescriptor> previous, + boolean deepRepresentation + ) { + if(deepRepresentation) { + return new NeighbourhoodWithTraces, AbstractNodeDescriptor>(nodeDescriptors,node2Representation,previous) + } else { + return new NeighbourhoodWithTraces, AbstractNodeDescriptor>(nodeDescriptors,node2Representation,null) + } + } + + public def finalRepresentation(NeighbourhoodWithTraces,AbstractNodeDescriptor> representation) { + val node2Representation = representation.nodeRepresentations + val node2LocalRepresentation = new HashMap + //val localRepresentation2Node = new HashMap + for(entry: node2Representation.entrySet) { + val node = entry.key + val localNodeDescriptor = entry.value.toLocalDescriptor + node2LocalRepresentation.put(node,localNodeDescriptor) + } + + } + + public def LocalNodeDescriptor toLocalDescriptor(AbstractNodeDescriptor descriptor) { + if(descriptor instanceof LocalNodeDescriptor) { + return descriptor + } else if(descriptor instanceof FurtherNodeDescriptor) { + (descriptor.previousRepresentation as AbstractNodeDescriptor).toLocalDescriptor + } else throw new IllegalArgumentException('''Unsupported descriptor type: «descriptor.class.simpleName»''') + } + + +} -- cgit v1.2.3-70-g09d2