Class PrefixSearchVisitor
java.lang.Object
net.ssehub.easy.varModel.model.AbstractVisitor
net.ssehub.easy.varModel.model.search.PrefixSearchVisitor
- All Implemented Interfaces:
IConstraintTreeVisitor,ICustomDatatypeVisitor,IModelVisitor
Realizes a visitor which searches for a given prefix in a given context and returns
all matching model elements.
- Author:
- Holger Eichelberger
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SearchContextprivate DatatypeVisitorprivate booleanprivate static final List<PrefixSearchVisitor> private Stringprivate Class<?>[]private List<SearchResult> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidChecks a name for inclusion.private voidcheckName(ModelElement element) Checks a modelelementfor inclusion.private StringcheckType(IDatatype type, ModelElement element) Checks atypefor inclusion.voidclear()Clears the results for reusing this instance.static final PrefixSearchVisitorgetInstance(String prefix, DatatypeVisitor datatypeVisitor, SearchContext context, Class<?>... restrictions) Obtains a (pooled) instance.Returns the collected results.private voidprepareInstance(String prefix, DatatypeVisitor datatypeVisitor, SearchContext context, Class<?>... restrictions) Prepares a (reused) instance.static final voidrelease(PrefixSearchVisitor visitor) Releases a given visitor.private booleanresultContains(Object object) Returns whether theobjectis part of the result.voidvisitAnnotationVariable(AttributeVariable variable) Visits aAttributeVariable.voidvisitAttribute(Attribute attribute) Method for visiting an attribute.voidvisitAttributeAssignment(AttributeAssignment assignment) Visits an attribute assignment.voidVisits the block.voidvisitComment(Comment comment) Visits a comment.voidvisitComment(Comment comment) Method for visiting a comment.voidvisitCompound(Compound compound) Method for visiting a compound.voidvisitCompoundAccess(CompoundAccess access) Visits a compound access node.voidVisits a compound access statement (may occur in freeze blocks.voidVisits a compound initializer.voidvisitConstantValue(ConstantValue value) Visits a constant value.voidvisitConstraint(Constraint constraint) Method for visiting a constraint.voidVisits a container initializer.voidVisits a container operation call (e.g.voidThis method is used for visiting a decision variable declaration.voidvisitDeferInitExpression(DeferInitExpression expression) Visits a default init expression.voidvisitDerivedDatatype(DerivedDatatype datatype) Method for visiting a derived datatype.voidMethod for visiting an enum.voidvisitEnumLiteral(EnumLiteral literal) Method for visiting an enum literal.voidvisitFreezeBlock(FreezeBlock freeze) Method for visiting a freeze block.voidvisitIfThen(IfThen ifThen) Visits an if-then-else expression.voidVisits a let expression.voidvisitMultiAndExpression(MultiAndExpression expression) Visits a multi-and expression.voidVisits an OCL feature call.voidMethod for visiting an operation definition.voidvisitOrderedEnum(OrderedEnum eenum) Method for visiting an ordered enum.voidvisitParenthesis(Parenthesis parenthesis) Visits a parenthesis.voidMethod for visiting a partial evaluation block.voidvisitProject(Project project) Method for visiting a project.voidvisitProjectImport(ProjectImport pImport) This method is used for visiting a ProjectImport.voidMethod for visiting a project interface.voidvisitReference(Reference reference) Method for visiting a reference.voidVisits self.voidvisitSequence(Sequence sequence) Method for visiting a sequence.voidMethod for visiting a set.voidvisitUnresolvedExpression(UnresolvedExpression expression) Visits an unresolved expression.voidvisitVariable(Variable variable) Visits a variable.
-
Field Details
-
INSTANCES
-
result
-
inResult
-
restrictions
-
prefix
-
datatypeVisitor
-
context
-
nesting
-
inInterface
private boolean inInterface
-
-
Constructor Details
-
PrefixSearchVisitor
private PrefixSearchVisitor()Constructs an instances. Prevents that instance can be created from outside.
-
-
Method Details
-
getInstance
public static final PrefixSearchVisitor getInstance(String prefix, DatatypeVisitor datatypeVisitor, SearchContext context, Class<?>... restrictions) Obtains a (pooled) instance. The result must be released byrelease(PrefixSearchVisitor).- Parameters:
prefix- the name search prefixdatatypeVisitor- the visitor for obtaining full type namescontext- the search context (may be null)restrictions- type restrictions on search results (may be null)- Returns:
- the visitor
-
release
Releases a given visitor. Do not usevisitorafterwards.- Parameters:
visitor- the visitor to be released
-
prepareInstance
private void prepareInstance(String prefix, DatatypeVisitor datatypeVisitor, SearchContext context, Class<?>... restrictions) Prepares a (reused) instance.- Parameters:
prefix- the name search prefixdatatypeVisitor- the visitor for obtaining full type namescontext- the search context (may be null)restrictions- type restrictions on search results (may be null)
-
getResult
Returns the collected results.- Returns:
- the results
-
clear
public void clear()Clears the results for reusing this instance. -
checkName
Checks a name for inclusion.- Parameters:
name- the name to be checkedelement- the element associated withname
-
checkName
Checks a modelelementfor inclusion. This method checks the simple and the qualified name ofelement.- Parameters:
element- the element to be checked
-
checkType
Checks atypefor inclusion.- Parameters:
type- the type to be checkedelement- the element which uses or definestype- Returns:
- the explicated name of the type using
datatypeVisitor
-
resultContains
Returns whether theobjectis part of the result.- Parameters:
object- the object to check for- Returns:
trueifobjectis part of the result,falseelse
-
visitProjectImport
Description copied from interface:IModelVisitorThis method is used for visiting a ProjectImport.- Specified by:
visitProjectImportin interfaceIModelVisitor- Parameters:
pImport- One ProjectImport which should be visited.
-
visitDecisionVariableDeclaration
Description copied from interface:IModelVisitorThis method is used for visiting a decision variable declaration.- Specified by:
visitDecisionVariableDeclarationin interfaceIModelVisitor- Parameters:
decl- One declaration which should be visited.
-
visitAttribute
Description copied from interface:IModelVisitorMethod for visiting an attribute.- Specified by:
visitAttributein interfaceIModelVisitor- Parameters:
attribute- The attribute which should be visited.
-
visitConstraint
Description copied from interface:IModelVisitorMethod for visiting a constraint.- Specified by:
visitConstraintin interfaceIModelVisitor- Parameters:
constraint- The constraint which should be visited.
-
visitFreezeBlock
Description copied from interface:IModelVisitorMethod for visiting a freeze block.- Specified by:
visitFreezeBlockin interfaceIModelVisitor- Parameters:
freeze- The freeze block which should be visited.
-
visitOperationDefinition
Description copied from interface:IModelVisitorMethod for visiting an operation definition.- Specified by:
visitOperationDefinitionin interfaceIModelVisitor- Parameters:
opdef- The operation definition which should be visited.
-
visitPartialEvaluationBlock
Description copied from interface:IModelVisitorMethod for visiting a partial evaluation block.- Specified by:
visitPartialEvaluationBlockin interfaceIModelVisitor- Parameters:
block- The partial evaluation block which should be visited.
-
visitProject
Description copied from interface:IModelVisitorMethod for visiting a project.- Specified by:
visitProjectin interfaceIModelVisitor- Overrides:
visitProjectin classAbstractVisitor- Parameters:
project- The project which should be visited.
-
visitEnum
Description copied from interface:ICustomDatatypeVisitorMethod for visiting an enum.- Specified by:
visitEnumin interfaceICustomDatatypeVisitor- Overrides:
visitEnumin classAbstractVisitor- Parameters:
eenum- The enum which should be visited.
-
visitCompound
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a compound.- Specified by:
visitCompoundin interfaceICustomDatatypeVisitor- Overrides:
visitCompoundin classAbstractVisitor- Parameters:
compound- The compound which should be visited.
-
visitProjectInterface
Description copied from interface:IModelVisitorMethod for visiting a project interface.- Specified by:
visitProjectInterfacein interfaceIModelVisitor- Parameters:
iface- The interface which should be visited.
-
visitOrderedEnum
Description copied from interface:ICustomDatatypeVisitorMethod for visiting an ordered enum.- Specified by:
visitOrderedEnumin interfaceICustomDatatypeVisitor- Overrides:
visitOrderedEnumin classAbstractVisitor- Parameters:
eenum- The enum which should be visited.
-
visitDerivedDatatype
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a derived datatype.- Specified by:
visitDerivedDatatypein interfaceICustomDatatypeVisitor- Parameters:
datatype- The datatype which should be visited.
-
visitEnumLiteral
Description copied from interface:ICustomDatatypeVisitorMethod for visiting an enum literal.- Specified by:
visitEnumLiteralin interfaceICustomDatatypeVisitor- Parameters:
literal- The literal which should be visited.
-
visitReference
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a reference.- Specified by:
visitReferencein interfaceICustomDatatypeVisitor- Parameters:
reference- The reference which should be visited.
-
visitSequence
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a sequence.- Specified by:
visitSequencein interfaceICustomDatatypeVisitor- Parameters:
sequence- The sequence which should be visited.
-
visitSet
Description copied from interface:ICustomDatatypeVisitorMethod for visiting a set.- Specified by:
visitSetin interfaceICustomDatatypeVisitor- Parameters:
set- The set which should be visited.
-
visitConstantValue
Description copied from interface:IConstraintTreeVisitorVisits a constant value.- Specified by:
visitConstantValuein interfaceIConstraintTreeVisitor- Parameters:
value- the value which should be visited
-
visitVariable
Description copied from interface:IConstraintTreeVisitorVisits a variable.- Specified by:
visitVariablein interfaceIConstraintTreeVisitor- Parameters:
variable- the variable which should be visited
-
visitAnnotationVariable
Description copied from interface:IConstraintTreeVisitorVisits aAttributeVariable.- Specified by:
visitAnnotationVariablein interfaceIConstraintTreeVisitor- Parameters:
variable- the attribute variable which should be visited
-
visitParenthesis
Description copied from interface:IConstraintTreeVisitorVisits a parenthesis.- Specified by:
visitParenthesisin interfaceIConstraintTreeVisitor- Parameters:
parenthesis- the parenthesis which should be visited
-
visitContainerInitializer
Description copied from interface:IConstraintTreeVisitorVisits a container initializer.- Specified by:
visitContainerInitializerin interfaceIConstraintTreeVisitor- Parameters:
init- the container initializer node
-
visitCompoundInitializer
Description copied from interface:IConstraintTreeVisitorVisits a compound initializer.- Specified by:
visitCompoundInitializerin interfaceIConstraintTreeVisitor- Parameters:
init- the compound initializer node
-
visitComment
Description copied from interface:IConstraintTreeVisitorVisits a comment.- Specified by:
visitCommentin interfaceIConstraintTreeVisitor- Parameters:
comment- the comment node which should be visited
-
visitOclFeatureCall
Description copied from interface:IConstraintTreeVisitorVisits an OCL feature call.- Specified by:
visitOclFeatureCallin interfaceIConstraintTreeVisitor- Parameters:
call- the feature call which should be visited
-
visitDeferInitExpression
Description copied from interface:IConstraintTreeVisitorVisits a default init expression.- Specified by:
visitDeferInitExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression
-
visitMultiAndExpression
Description copied from interface:IConstraintTreeVisitorVisits a multi-and expression.- Specified by:
visitMultiAndExpressionin interfaceIConstraintTreeVisitor- Parameters:
expression- the expression to be visited
-
visitLet
Description copied from interface:IConstraintTreeVisitorVisits a let expression.- Specified by:
visitLetin interfaceIConstraintTreeVisitor- Parameters:
let- the let expression which should be visited
-
visitIfThen
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
Description copied from interface:IConstraintTreeVisitorVisits a container operation call (e.g. quantors, iterators).- Specified by:
visitContainerOperationCallin interfaceIConstraintTreeVisitor- Parameters:
call- the container operation call
-
visitCompoundAccess
Description copied from interface:IConstraintTreeVisitorVisits a compound access node.- Specified by:
visitCompoundAccessin interfaceIConstraintTreeVisitor- Parameters:
access- the compound access node
-
visitUnresolvedExpression
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
-
visitComment
Description copied from interface:IModelVisitorMethod for visiting a comment.- Specified by:
visitCommentin interfaceIModelVisitor- Parameters:
comment- the comment to visit
-
visitAttributeAssignment
Description copied from interface:IModelVisitorVisits an attribute assignment.- Specified by:
visitAttributeAssignmentin interfaceIModelVisitor- Parameters:
assignment- the assignment to visit
-
visitCompoundAccessStatement
Description copied from interface:IModelVisitorVisits a compound access statement (may occur in freeze blocks.- Specified by:
visitCompoundAccessStatementin interfaceIModelVisitor- Parameters:
access- the access statement
-
visitSelf
Description copied from interface:IConstraintTreeVisitorVisits self.- Specified by:
visitSelfin interfaceIConstraintTreeVisitor- Parameters:
self- the self object to visit
-
visitBlockExpression
Description copied from interface:IConstraintTreeVisitorVisits the block.- Specified by:
visitBlockExpressionin interfaceIConstraintTreeVisitor- Parameters:
block- the block to be visited
-