Class DFD2PrologTransformationImpl
- java.lang.Object
-
- org.palladiosimulator.dataflow.confidentiality.transformation.prolog.impl.DFD2PrologTransformationImpl
-
- All Implemented Interfaces:
DFD2PrologTransformation
public class DFD2PrologTransformationImpl extends Object implements DFD2PrologTransformation
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DFD2PrologTransformationImpl.DFD2PrologOutputBehaviorCreator
-
Field Summary
Fields Modifier and Type Field Description protected Iterable<EnumCharacteristicType>
characteristicTypesInBehaviors
protected ExpressionsFactory
dfdExpressionsFactory
protected static PrologCreateUtils
prologCreateUtils
protected static org.palladiosimulator.supporting.prolog.model.prolog.expressions.ExpressionsFactory
prologExpressionsFactory
protected static org.palladiosimulator.supporting.prolog.model.prolog.PrologFactory
prologFactory
protected DFD2PrologTransformationWritableTrace
trace
protected UniqueNameUtils
uniqueNameUtils
-
Constructor Summary
Constructors Constructor Description DFD2PrologTransformationImpl(UniqueNameProvider nameProvider)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_add(Iterable<? extends org.palladiosimulator.supporting.prolog.model.prolog.Clause> clauses)
protected void
_add(org.palladiosimulator.supporting.prolog.model.prolog.Clause clause)
protected void
_add(org.palladiosimulator.supporting.prolog.model.prolog.Fact clause)
protected void
_add(org.palladiosimulator.supporting.prolog.model.prolog.Rule clause)
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm
_createCharacteristicTerm(CharacterizedNode node, DFD2PrologTransformationParameter param, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression s, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression visited)
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm
_createNodeCharacteristicTerm(DFD2PrologTransformationParameter param)
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType>
_getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.CollectionDataType dataType)
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType>
_getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.CompositeDataType dataType)
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType>
_getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
protected static boolean
_isRhsTermCompatible(Constant term, EnumCharacteristicType ct)
protected static boolean
_isRhsTermCompatible(EnumCharacteristicReference term, EnumCharacteristicType ct)
protected static boolean
_isRhsTermCompatible(LogicTerm term, EnumCharacteristicType ct)
protected static boolean
_isRhsTermCompatible(Term term, EnumCharacteristicType ct)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(And rhs, DFD2PrologTransformationParameter param)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(ContainerCharacteristicReference rhs, DFD2PrologTransformationParameter param)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(DataCharacteristicReference rhs, DFD2PrologTransformationParameter param)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(False rhs, DFD2PrologTransformationParameter param)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(Not rhs, DFD2PrologTransformationParameter param)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(Or rhs, DFD2PrologTransformationParameter param)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
_transformAssignmentTerm(True rhs, DFD2PrologTransformationParameter param)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformCharacteristicType(CharacteristicType characteristicType)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformCharacteristicType(EnumCharacteristicType characteristicType)
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.CollectionDataType dataType)
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.CompositeDataType dataType)
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.PrimitiveDataType dataType)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformEdge(CharacterizedDataFlow dataflow)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
_transformEdge(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.Edge dataflow)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause>
_transformNode(CharacterizedActorProcess process)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause>
_transformNode(CharacterizedExternalActor actor)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause>
_transformNode(CharacterizedProcess process)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause>
_transformNode(CharacterizedStore store)
protected void
add(Object clause)
protected void
addCharacteristicHelper(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected void
addPreamble(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected org.palladiosimulator.supporting.prolog.model.prolog.directives.Discontiguous
createAndAddDiscontiguousDirective(String predicateName, int arity)
protected org.palladiosimulator.supporting.prolog.model.prolog.directives.Discontiguous
createAndAddDiscontiguousDirective(org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm term)
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm
createCharacteristicTerm(CharacterizedNode node, DFD2PrologTransformationParameter param, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression s, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression visited)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression>
createFlowTreeClauses(CharacterizedNode node, Iterable<Pin> inputPins)
Creates all clauses required to build a valid flow tree.protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm
createNodeCharacteristicTerm(DFD2PrologTransformationParameter param)
protected static <T extends CharacteristicType>
Iterable<T>distinct(Iterable<T> sequence)
protected static <T extends CharacteristicType>
Iterable<T>distinct(Iterator<T> sequence)
protected static Iterable<org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType>
distinctDataTypes(Iterable<org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> sequence)
protected static Iterable<EnumCharacteristicType>
findAllCharacteristicTypesInBehaviors(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected static Iterable<EnumCharacteristicType>
findAllCharacteristicTypesInNodes(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected static Iterable<org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType>
findAllUsedDataTypes(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected static Optional<Assignment>
findLastMatchingAssignment(List<Assignment> assignments, Pin pin, EnumCharacteristicType ct, Literal l)
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType>
getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
protected void
initTransformationState(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected static boolean
isMatchingAssignment(Assignment assignment, Pin pin, EnumCharacteristicType ct, Literal l)
protected static boolean
isRhsTermCompatible(Term term, EnumCharacteristicType ct)
protected static boolean
needsEmptyFlowTree(CharacterizedNode node)
protected static Boolean
needsFlowTree(Optional<Assignment> assignment)
protected static boolean
needsFlowTree(Assignment assignment)
protected List<Pin>
sortedView(Iterable<Pin> pins, CharacterizedNode node)
protected Runnable
stageTrace(EObject prologElement, Runnable traceAdder)
protected void
submitTrace(EObject prologElement)
DFD2PrologTransformationResult
transform(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
transformAssignment(Optional<Assignment> assignment, DFD2PrologTransformationParameter param)
Transforms the right hand side of an assignment to an expression.protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression
transformAssignmentTerm(Term rhs, DFD2PrologTransformationParameter param)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
transformCharacteristicType(CharacteristicType characteristicType)
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact>
transformEdge(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.Edge dataflow)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause>
transformNode(org.eclipse.emf.cdo.CDOObject process)
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause>
transformNode(CharacterizedNode node, String factName, DFD2PrologTransformationImpl.DFD2PrologOutputBehaviorCreator outputBehaviorCreator)
-
-
-
Field Detail
-
prologFactory
@Extension protected static final org.palladiosimulator.supporting.prolog.model.prolog.PrologFactory prologFactory
-
prologExpressionsFactory
@Extension protected static final org.palladiosimulator.supporting.prolog.model.prolog.expressions.ExpressionsFactory prologExpressionsFactory
-
prologCreateUtils
@Extension protected static final PrologCreateUtils prologCreateUtils
-
uniqueNameUtils
@Extension protected final UniqueNameUtils uniqueNameUtils
-
dfdExpressionsFactory
protected final ExpressionsFactory dfdExpressionsFactory
-
trace
protected DFD2PrologTransformationWritableTrace trace
-
characteristicTypesInBehaviors
protected Iterable<EnumCharacteristicType> characteristicTypesInBehaviors
-
-
Constructor Detail
-
DFD2PrologTransformationImpl
public DFD2PrologTransformationImpl(UniqueNameProvider nameProvider)
-
-
Method Detail
-
transform
public DFD2PrologTransformationResult transform(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
- Specified by:
transform
in interfaceDFD2PrologTransformation
-
initTransformationState
protected void initTransformationState(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
-
_transformCharacteristicType
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformCharacteristicType(CharacteristicType characteristicType)
-
_transformCharacteristicType
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformCharacteristicType(EnumCharacteristicType characteristicType)
-
_transformDataType
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.CollectionDataType dataType)
-
_transformDataType
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.CompositeDataType dataType)
-
_transformDataType
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.PrimitiveDataType dataType)
-
_transformDataType
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
-
_transformNode
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause> _transformNode(CharacterizedProcess process)
-
_transformNode
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause> _transformNode(CharacterizedActorProcess process)
-
_transformNode
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause> _transformNode(CharacterizedExternalActor actor)
-
_transformNode
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause> _transformNode(CharacterizedStore store)
-
_transformEdge
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformEdge(CharacterizedDataFlow dataflow)
-
_transformEdge
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact> _transformEdge(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.Edge dataflow)
-
transformNode
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause> transformNode(CharacterizedNode node, String factName, DFD2PrologTransformationImpl.DFD2PrologOutputBehaviorCreator outputBehaviorCreator)
-
createFlowTreeClauses
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression> createFlowTreeClauses(CharacterizedNode node, Iterable<Pin> inputPins)
Creates all clauses required to build a valid flow tree. This includes the selection of a flow for every input pin as well as building the appropriate flow tree variables. The flow tree variable Sn represents the flow tree to be used for the input pin n.
-
transformAssignment
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression transformAssignment(Optional<Assignment> assignment, DFD2PrologTransformationParameter param)
Transforms the right hand side of an assignment to an expression.
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(True rhs, DFD2PrologTransformationParameter param)
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(False rhs, DFD2PrologTransformationParameter param)
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(Or rhs, DFD2PrologTransformationParameter param)
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(And rhs, DFD2PrologTransformationParameter param)
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(Not rhs, DFD2PrologTransformationParameter param)
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(DataCharacteristicReference rhs, DFD2PrologTransformationParameter param)
-
_transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression _transformAssignmentTerm(ContainerCharacteristicReference rhs, DFD2PrologTransformationParameter param)
-
addPreamble
protected void addPreamble(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
-
addCharacteristicHelper
protected void addCharacteristicHelper(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
-
findAllCharacteristicTypesInNodes
protected static Iterable<EnumCharacteristicType> findAllCharacteristicTypesInNodes(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
-
findAllCharacteristicTypesInBehaviors
protected static Iterable<EnumCharacteristicType> findAllCharacteristicTypesInBehaviors(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
-
findAllUsedDataTypes
protected static Iterable<org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> findAllUsedDataTypes(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.DataFlowDiagram dfd)
-
_getUsedDataTypes
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> _getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.CollectionDataType dataType)
-
_getUsedDataTypes
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> _getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.CompositeDataType dataType)
-
_getUsedDataTypes
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> _getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
-
distinct
protected static <T extends CharacteristicType> Iterable<T> distinct(Iterable<T> sequence)
-
distinct
protected static <T extends CharacteristicType> Iterable<T> distinct(Iterator<T> sequence)
-
distinctDataTypes
protected static Iterable<org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> distinctDataTypes(Iterable<org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> sequence)
-
needsFlowTree
protected static Boolean needsFlowTree(Optional<Assignment> assignment)
-
needsEmptyFlowTree
protected static boolean needsEmptyFlowTree(CharacterizedNode node)
-
needsFlowTree
protected static boolean needsFlowTree(Assignment assignment)
-
findLastMatchingAssignment
protected static Optional<Assignment> findLastMatchingAssignment(List<Assignment> assignments, Pin pin, EnumCharacteristicType ct, Literal l)
-
isMatchingAssignment
protected static boolean isMatchingAssignment(Assignment assignment, Pin pin, EnumCharacteristicType ct, Literal l)
-
_isRhsTermCompatible
protected static boolean _isRhsTermCompatible(Constant term, EnumCharacteristicType ct)
-
_isRhsTermCompatible
protected static boolean _isRhsTermCompatible(LogicTerm term, EnumCharacteristicType ct)
-
_isRhsTermCompatible
protected static boolean _isRhsTermCompatible(EnumCharacteristicReference term, EnumCharacteristicType ct)
-
_isRhsTermCompatible
protected static boolean _isRhsTermCompatible(Term term, EnumCharacteristicType ct)
-
sortedView
protected List<Pin> sortedView(Iterable<Pin> pins, CharacterizedNode node)
-
createAndAddDiscontiguousDirective
protected org.palladiosimulator.supporting.prolog.model.prolog.directives.Discontiguous createAndAddDiscontiguousDirective(org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm term)
-
createAndAddDiscontiguousDirective
protected org.palladiosimulator.supporting.prolog.model.prolog.directives.Discontiguous createAndAddDiscontiguousDirective(String predicateName, int arity)
-
_add
protected void _add(Iterable<? extends org.palladiosimulator.supporting.prolog.model.prolog.Clause> clauses)
-
_add
protected void _add(org.palladiosimulator.supporting.prolog.model.prolog.Fact clause)
-
_add
protected void _add(org.palladiosimulator.supporting.prolog.model.prolog.Rule clause)
-
_add
protected void _add(org.palladiosimulator.supporting.prolog.model.prolog.Clause clause)
-
submitTrace
protected void submitTrace(EObject prologElement)
-
_createCharacteristicTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm _createCharacteristicTerm(CharacterizedNode node, DFD2PrologTransformationParameter param, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression s, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression visited)
-
_createNodeCharacteristicTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm _createNodeCharacteristicTerm(DFD2PrologTransformationParameter param)
-
transformCharacteristicType
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact> transformCharacteristicType(CharacteristicType characteristicType)
-
transformDataType
protected List<org.palladiosimulator.supporting.prolog.model.prolog.Fact> transformDataType(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
-
transformNode
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Clause> transformNode(org.eclipse.emf.cdo.CDOObject process)
-
transformEdge
protected ArrayList<org.palladiosimulator.supporting.prolog.model.prolog.Fact> transformEdge(org.palladiosimulator.dataflow.diagram.DataFlowDiagram.Edge dataflow)
-
transformAssignmentTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression transformAssignmentTerm(Term rhs, DFD2PrologTransformationParameter param)
-
getUsedDataTypes
protected static List<? extends org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType> getUsedDataTypes(org.palladiosimulator.dataflow.dictionary.DataDictionary.DataType dataType)
-
isRhsTermCompatible
protected static boolean isRhsTermCompatible(Term term, EnumCharacteristicType ct)
-
add
protected void add(Object clause)
-
createCharacteristicTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm createCharacteristicTerm(CharacterizedNode node, DFD2PrologTransformationParameter param, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression s, org.palladiosimulator.supporting.prolog.model.prolog.expressions.Expression visited)
-
createNodeCharacteristicTerm
protected org.palladiosimulator.supporting.prolog.model.prolog.CompoundTerm createNodeCharacteristicTerm(DFD2PrologTransformationParameter param)
-
-