Package net.ssehub.easy.varModel.cst
Class ConstraintReplacer
- java.lang.Object
-
- net.ssehub.easy.varModel.cst.ConstraintReplacer
-
- All Implemented Interfaces:
IConstraintTreeVisitor
public class ConstraintReplacer extends java.lang.Object implements IConstraintTreeVisitor
Class to copy an expression. May be superseded byCopyVisitor.- Author:
- beck, Holger Eichelberger
-
-
Field Summary
Fields Modifier and Type Field Description private ConstraintSyntaxTreecopiedConstraintprivate static EASyLoggerFactory.EASyLoggerLOGGERprivate java.util.Map<Leaf,Leaf>mappingprivate ConstraintSyntaxTreeoriginprivate java.util.Map<AbstractVariable,AbstractVariable>varMapping
-
Constructor Summary
Constructors Constructor Description ConstraintReplacer(ConstraintSyntaxTree origin)Creates a ConstraintReplacer witch is needed to copy a OCLFeatureCall.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private AbstractVariablemap(AbstractVariable var)Maps an abstract variable for proper copying.private DecisionVariableDeclarationmap(DecisionVariableDeclaration var)Maps a decision variable for proper copying.private voidreplace(Leaf oldLeaf)Replaces a leaf if inmapping.ConstraintSyntaxTreereplaceVariable(Leaf oldLeaf, Leaf newLeaf)Copies a ConstraintSyntaxTree and replaces all occurrences of oldLeaf with newLeaf.private voidresolve()Resolves the type ofcopiedConstraint.voidvisitAnnotationVariable(AttributeVariable variable)Visits aAttributeVariable.voidvisitBlockExpression(BlockExpression block)Visits the block.voidvisitComment(Comment comment)Visits a comment.voidvisitCompoundAccess(CompoundAccess access)Visits a compound access node.voidvisitCompoundInitializer(CompoundInitializer initializer)Visits a compound initializer.voidvisitConstantValue(ConstantValue value)Visits a constant value.voidvisitContainerInitializer(ContainerInitializer initializer)Visits a container initializer.voidvisitContainerOperationCall(ContainerOperationCall call)Visits a container operation call (e.g.voidvisitDeferInitExpression(DeferInitExpression expression)Visits a default init expression.voidvisitIfThen(IfThen ifThen)Visits an if-then-else expression.voidvisitLet(Let let)Visits a let expression.voidvisitMultiAndExpression(MultiAndExpression expression)Visits a multi-and expression.voidvisitOclFeatureCall(OCLFeatureCall call)Visits an OCL feature call.voidvisitParenthesis(Parenthesis parenthesis)Visits a parenthesis.voidvisitSelf(Self self)Visits self.voidvisitUnresolvedExpression(UnresolvedExpression expression)Visits an unresolved expression.voidvisitVariable(Variable variable)Visits a variable.
-
-
-
Field Detail
-
LOGGER
private static final EASyLoggerFactory.EASyLogger LOGGER
-
varMapping
private java.util.Map<AbstractVariable,AbstractVariable> varMapping
-
copiedConstraint
private ConstraintSyntaxTree copiedConstraint
-
origin
private ConstraintSyntaxTree origin
-
-
Constructor Detail
-
ConstraintReplacer
public ConstraintReplacer(ConstraintSyntaxTree origin)
Creates a ConstraintReplacer witch is needed to copy a OCLFeatureCall.- Parameters:
origin- ConstraintSyntaxTree witch should be copied
-
-
Method Detail
-
replaceVariable
public ConstraintSyntaxTree replaceVariable(Leaf oldLeaf, Leaf newLeaf)
Copies a ConstraintSyntaxTree and replaces all occurrences of oldLeaf with newLeaf.- Parameters:
oldLeaf- Variables and Constants witch should be replacednewLeaf- Replacement of oldLeaf- Returns:
- returns a new ConstraintSyntaxTree
-
visitConstantValue
public void visitConstantValue(ConstantValue value)
Description copied from interface:IConstraintTreeVisitorVisits a constant value.- Specified by:
visitConstantValuein interfaceIConstraintTreeVisitor- Parameters:
value- the value which should be visited
-
visitVariable
public void visitVariable(Variable variable)
Description copied from interface:IConstraintTreeVisitorVisits a variable.- Specified by:
visitVariablein interfaceIConstraintTreeVisitor- Parameters:
variable- the variable which should be visited
-
replace
private void replace(Leaf oldLeaf)
Replaces a leaf if inmapping.- Parameters:
oldLeaf- the candidate for replacement
-
visitParenthesis
public void visitParenthesis(Parenthesis parenthesis)
Description copied from interface:IConstraintTreeVisitorVisits a parenthesis.- Specified by:
visitParenthesisin interfaceIConstraintTreeVisitor- Parameters:
parenthesis- the parenthesis which should be visited
-
visitDeferInitExpression
public void visitDeferInitExpression(DeferInitExpression expression)
Description copied from interface:IConstraintTreeVisitorVisits a default init expression.- Specified by:
visitDeferInitExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression
-
visitCompoundInitializer
public void visitCompoundInitializer(CompoundInitializer initializer)
Description copied from interface:IConstraintTreeVisitorVisits a compound initializer.- Specified by:
visitCompoundInitializerin interfaceIConstraintTreeVisitor- Parameters:
initializer- the compound initializer node
-
visitContainerInitializer
public void visitContainerInitializer(ContainerInitializer initializer)
Description copied from interface:IConstraintTreeVisitorVisits a container initializer.- Specified by:
visitContainerInitializerin interfaceIConstraintTreeVisitor- Parameters:
initializer- the container initializer node
-
visitComment
public void visitComment(Comment comment)
Description copied from interface:IConstraintTreeVisitorVisits a comment.- Specified by:
visitCommentin interfaceIConstraintTreeVisitor- Parameters:
comment- the comment node which should be visited
-
visitOclFeatureCall
public void visitOclFeatureCall(OCLFeatureCall call)
Description copied from interface:IConstraintTreeVisitorVisits an OCL feature call.- Specified by:
visitOclFeatureCallin interfaceIConstraintTreeVisitor- Parameters:
call- the feature call which should be visited
-
visitMultiAndExpression
public void visitMultiAndExpression(MultiAndExpression expression)
Description copied from interface:IConstraintTreeVisitorVisits a multi-and expression.- Specified by:
visitMultiAndExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression to be visited
-
resolve
private void resolve()
Resolves the type ofcopiedConstraint.
-
visitLet
public void visitLet(Let let)
Description copied from interface:IConstraintTreeVisitorVisits a let expression.- Specified by:
visitLetin interfaceIConstraintTreeVisitor- Parameters:
let- the let expression which should be visited
-
visitIfThen
public void visitIfThen(IfThen ifThen)
Description copied from interface:IConstraintTreeVisitorVisits an if-then-else expression.- Specified by:
visitIfThenin interfaceIConstraintTreeVisitor- Parameters:
ifThen- the if-then-else expression which should be visited
-
visitContainerOperationCall
public void visitContainerOperationCall(ContainerOperationCall call)
Description copied from interface:IConstraintTreeVisitorVisits a container operation call (e.g. quantors, iterators).- Specified by:
visitContainerOperationCallin interfaceIConstraintTreeVisitor- Parameters:
call- the container operation call
-
map
private AbstractVariable map(AbstractVariable var)
Maps an abstract variable for proper copying.- Parameters:
var- the variable to be mapped- Returns:
- the mapped variable
-
map
private DecisionVariableDeclaration map(DecisionVariableDeclaration var)
Maps a decision variable for proper copying.- Parameters:
var- the variable to be mapped- Returns:
- the mapped variable
-
visitCompoundAccess
public void visitCompoundAccess(CompoundAccess access)
Description copied from interface:IConstraintTreeVisitorVisits a compound access node.- Specified by:
visitCompoundAccessin interfaceIConstraintTreeVisitor- Parameters:
access- the compound access node
-
visitUnresolvedExpression
public void visitUnresolvedExpression(UnresolvedExpression expression)
Description copied from interface:IConstraintTreeVisitorVisits an unresolved expression. Please note that an unresolved expression may represent a leaf as well as an inner tree node. Typically, visitors shall continue visiting transparently atUnresolvedExpression.getActualExpression().- Specified by:
visitUnresolvedExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression
-
visitSelf
public void visitSelf(Self self)
Description copied from interface:IConstraintTreeVisitorVisits self.- Specified by:
visitSelfin interfaceIConstraintTreeVisitor- Parameters:
self- the self object to visit
-
visitAnnotationVariable
public void visitAnnotationVariable(AttributeVariable variable)
Description copied from interface:IConstraintTreeVisitorVisits aAttributeVariable.- Specified by:
visitAnnotationVariablein interfaceIConstraintTreeVisitor- Parameters:
variable- the attribute variable which should be visited
-
visitBlockExpression
public void visitBlockExpression(BlockExpression block)
Description copied from interface:IConstraintTreeVisitorVisits the block.- Specified by:
visitBlockExpressionin interfaceIConstraintTreeVisitor- Parameters:
block- the block to be visited
-
-