Package soot.JastAddJ
Class CatchParameterDeclaration
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.CatchParameterDeclaration
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface soot.JastAddJ.SimpleSet
SimpleSet.SimpleSetImpl
-
-
Field Summary
Fields Modifier and Type Field Description intIDendintIDstartprotected booleansourceVariableDecl_computedprotected VariablesourceVariableDecl_valueprotected booleanthrowTypes_computedprotected Collection<TypeDecl>throwTypes_valueprotected StringtokenString_ID-
Fields inherited from class soot.JastAddJ.ASTNode
children, generatedWithCacheCycle, generatedWithCircularEnabled, generatedWithComponentCheck, in$Circle, is$Final, numChildren, parent, PRIMITIVE_PACKAGE_NAME, state
-
-
Constructor Summary
Constructors Constructor Description CatchParameterDeclaration()CatchParameterDeclaration(Modifiers p0, List<Access> p1, Symbol p2)CatchParameterDeclaration(Modifiers p0, List<Access> p1, String p2)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SimpleSetadd(Object o)voidaddTypeAccess(Access node)Append an element to the TypeAccess list.voidaddTypeAccessNoTransform(Access node)CatchClausecatchClause()CatchParameterDeclarationclone()Constantconstant()booleancontains(Object o)CatchParameterDeclarationcopy()NameTypeDefine_NameType_nameType(ASTNode caller, ASTNode child)BodyDeclenclosingBodyDecl()voidflushCache()voidflushCollectionCache()CatchParameterDeclarationfullCopy()Create a deep copy of the AST subtree at this node.StringgetID()Retrieves the value for the lexeme ID.ExprgetInit()ModifiersgetModifiers()Retrieves the Modifiers child.ModifiersgetModifiersNoTransform()Retrieves the Modifiers child.intgetNumTypeAccess()Retrieves the number of children in the TypeAccess list.intgetNumTypeAccessNoTransform()Retrieves the number of children in the TypeAccess list.AccessgetTypeAccess(int i)Retrieves the element at indexiin the TypeAccess list..List<Access>getTypeAccessList()Retrieves the TypeAccess list.List<Access>getTypeAccessListNoTransform()Retrieves the TypeAccess list.List<Access>getTypeAccesss()Retrieves the TypeAccess list.List<Access>getTypeAccesssNoTransform()Retrieves the TypeAccess list.booleanhasInit()booleanhasNext()TypeDeclhostType()voidinit$Children()Initializes the child array to the correct size.booleanisBlank()booleanisClassVariable()booleanisConstructorParameter()booleanisEmpty()booleanisExceptionHandlerParameter()booleanisFinal()The catch parameter of a multi-catch clause is implicitly final.booleanisInstanceVariable()booleanisLocalVariable()booleanisMethodParameter()booleanisParameter()booleanisSingleton()booleanisSingleton(Object o)booleanisStatic()booleanisSynthetic()booleanisVolatile()Iteratoriterator()LUBTypelookupLUBType(Collection bounds)SimpleSetlookupVariable(String name)Inherit the lookupVariable attribute.booleanmayHaveRewrite()Stringname()voidnameCheck()Duplicate declaration checking for catch parameters.Objectnext()protected intnumChildren()VariableScopeouterScope()voidremove()ASTNoderewriteTo()voidsetID(Symbol symbol)JastAdd-internal setter for lexeme ID using the Beaver parser.voidsetID(String value)Replaces the lexeme ID.voidsetModifiers(Modifiers node)Replaces the Modifiers child.voidsetTypeAccess(Access node, int i)Replaces the TypeAccess list element at indexiwith the new nodenode.voidsetTypeAccessList(List<Access> list)Replaces the TypeAccess list.intsize()VariablesourceVariableDecl()Collection<TypeDecl>throwTypes()voidtoString(StringBuffer sb)Pretty printing of catch parameter declaration.TypeDecltype()A catch parameter declared with a disjunction type has the effective type lub(t1, t2, ...)voidtypeCheck()Type checking.-
Methods inherited from class soot.JastAddJ.ASTNode
accessControl, addAttributes, addChild, addsIndentationLevel, asImmediate, asLocal, asLocal, asRValue, beginExceptionRange, branchTarget, checkDUeverywhere, checkEnum, checkUncheckedConversion, checkWarnings, clearLocations, cloneSubtree, collectBranches, collectEnclosingVariables, collectErrors, collectExceptions, collectFinally, collectTypesToHierarchy, collectTypesToSignatures, compilationUnit, Define_Annotation_lookupAnnotation, Define_ArrayList_exceptionRanges, Define_ASTNode_enclosingBlock, Define_BodyDecl_enclosingBodyDecl, Define_boolean_enclosedByExceptionHandler, Define_boolean_handlesException, Define_boolean_hasPackage, Define_boolean_inExplicitConstructorInvocation, Define_boolean_inExtendsOrImplements, Define_boolean_inhModifiedInScope, Define_boolean_insideLoop, Define_boolean_insideSwitch, Define_boolean_inStaticContext, Define_boolean_isAnonymous, Define_boolean_isAnonymousDecl, Define_boolean_isCatchParam, Define_boolean_isConstructorParameter, Define_boolean_isDAbefore, Define_boolean_isDest, Define_boolean_isDUbefore, Define_boolean_isExceptionHandlerParameter, Define_boolean_isExplicitGenericConstructorAccess, Define_boolean_isIncOrDec, Define_boolean_isLocalClass, Define_boolean_isMemberType, Define_boolean_isMethodParameter, Define_boolean_isNestedType, Define_boolean_isSource, Define_boolean_mayBeAbstract, Define_boolean_mayBeFinal, Define_boolean_mayBeNative, Define_boolean_mayBePrivate, Define_boolean_mayBeProtected, Define_boolean_mayBePublic, Define_boolean_mayBeStatic, Define_boolean_mayBeStrictfp, Define_boolean_mayBeSynchronized, Define_boolean_mayBeTransient, Define_boolean_mayBeVolatile, Define_boolean_mayUseAnnotationTarget, Define_boolean_reachable, Define_boolean_reachableCatchClause, Define_boolean_reportUnreachable, Define_boolean_resourcePreviouslyDeclared, Define_boolean_variableArityValid, Define_boolean_withinDeprecatedAnnotation, Define_boolean_withinSuppressWarnings, Define_Case_bind, Define_CatchClause_catchClause, Define_ClassInstanceExpr_getClassInstanceExpr, Define_Collection_lookupConstructor, Define_Collection_lookupMethod, Define_Collection_lookupSuperConstructor, Define_Collection_TypeDecl__caughtExceptions, Define_CompilationUnit_compilationUnit, Define_ConstructorDecl_constructorDecl, Define_ConstructorDecl_unknownConstructor, Define_ElementValue_lookupElementTypeValue, Define_Expr_nestedScope, Define_GLBType_lookupGLBType, Define_int_localNum, Define_LabeledStmt_lookupLabel, Define_LUBType_lookupLUBType, Define_MethodDecl_unknownMethod, Define_SimpleSet_allImportedTypes, Define_SimpleSet_lookupType, Define_SimpleSet_lookupVariable, Define_soot_jimple_Stmt_condition_false_label, Define_soot_jimple_Stmt_condition_true_label, Define_String_hostPackage, Define_String_methodHost, Define_String_packageName, Define_String_typeDeclIndent, Define_TypeDecl_assignConvertedType, Define_TypeDecl_componentType, Define_TypeDecl_declType, Define_TypeDecl_enclosingAnnotationDecl, Define_TypeDecl_enclosingInstance, Define_TypeDecl_enclosingType, Define_TypeDecl_expectedType, Define_TypeDecl_genericDecl, Define_TypeDecl_hostType, Define_TypeDecl_lookupType, Define_TypeDecl_lookupWildcardExtends, Define_TypeDecl_lookupWildcardSuper, Define_TypeDecl_returnType, Define_TypeDecl_superType, Define_TypeDecl_switchType, Define_TypeDecl_typeBoolean, Define_TypeDecl_typeByte, Define_TypeDecl_typeChar, Define_TypeDecl_typeCloneable, Define_TypeDecl_typeDouble, Define_TypeDecl_typeError, Define_TypeDecl_typeException, Define_TypeDecl_typeFloat, Define_TypeDecl_typeInt, Define_TypeDecl_typeLong, Define_TypeDecl_typeNull, Define_TypeDecl_typeNullPointerException, Define_TypeDecl_typeObject, Define_TypeDecl_typeRuntimeException, Define_TypeDecl_typeSerializable, Define_TypeDecl_typeShort, Define_TypeDecl_typeString, Define_TypeDecl_typeThrowable, Define_TypeDecl_typeVoid, Define_TypeDecl_typeWildcard, Define_TypeDecl_unknownType, Define_Variable_unknownField, Define_VariableScope_outerScope, definesLabel, definiteAssignment, dumpString, dumpTree, dumpTree, dumpTreeNoRewrite, dumpTreeNoRewrite, duringAnnotations, duringAnonymousClasses, duringBoundNames, duringDU, duringEnums, duringGenericTypeVariables, duringImplicitConstructor, duringLiterals, duringNameResolution, duringSyntacticClassification, duringVariableDeclarationTransformation, emitConstant, end, endExceptionRange, error, errorPrefix, exceptionHandling, extractIndent, extractSingleType, flushCaches, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, jimplify1phase1, jimplify1phase2, jimplify2, jimplify2, lineNumber, location, newLabel, options, putSimpleSetElement, reachedException, removeChild, removeInstanceMethods, removeInstanceVariables, replace, setChild, setEnd, setLocation, setParent, setStart, sourceFile, start, state, toString, transformation, transformEnumConstructors, unassignedEverywhere, usesTypeVariable, varChildIndex, varChildIndex, warning, warningPrefix, with
-
Methods inherited from class beaver.Symbol
getColumn, getEnd, getId, getLine, getStart, makePosition
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Field Detail
-
tokenString_ID
protected String tokenString_ID
-
IDstart
public int IDstart
-
IDend
public int IDend
-
sourceVariableDecl_computed
protected boolean sourceVariableDecl_computed
-
sourceVariableDecl_value
protected Variable sourceVariableDecl_value
-
throwTypes_computed
protected boolean throwTypes_computed
-
throwTypes_value
protected Collection<TypeDecl> throwTypes_value
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCachein classASTNode<ASTNode>
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classASTNode<ASTNode>
-
clone
public CatchParameterDeclaration clone() throws CloneNotSupportedException
- Overrides:
clonein classASTNode<ASTNode>- Throws:
CloneNotSupportedException
-
copy
public CatchParameterDeclaration copy()
-
fullCopy
public CatchParameterDeclaration fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
-
isSingleton
public boolean isSingleton()
- Specified by:
isSingletonin interfaceSimpleSet
-
isSingleton
public boolean isSingleton(Object o)
- Specified by:
isSingletonin interfaceSimpleSet
-
iterator
public Iterator iterator()
-
typeCheck
public void typeCheck()
Type checking. The types given in a disjunction type may not be subtypes of each other.
-
toString
public void toString(StringBuffer sb)
Pretty printing of catch parameter declaration.
-
nameCheck
public void nameCheck()
Duplicate declaration checking for catch parameters.
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Childrenin classASTNode<ASTNode>
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classASTNode<ASTNode>
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classASTNode<ASTNode>
-
setModifiers
public void setModifiers(Modifiers node)
Replaces the Modifiers child.- Parameters:
node- The new node to replace the Modifiers child.
-
getModifiers
public Modifiers getModifiers()
Retrieves the Modifiers child.- Specified by:
getModifiersin interfaceVariable- Returns:
- The current node used as the Modifiers child.
-
getModifiersNoTransform
public Modifiers getModifiersNoTransform()
Retrieves the Modifiers child.This method does not invoke AST transformations.
- Returns:
- The current node used as the Modifiers child.
-
setTypeAccessList
public void setTypeAccessList(List<Access> list)
Replaces the TypeAccess list.- Parameters:
list- The new list node to be used as the TypeAccess list.
-
getNumTypeAccess
public int getNumTypeAccess()
Retrieves the number of children in the TypeAccess list.- Returns:
- Number of children in the TypeAccess list.
-
getNumTypeAccessNoTransform
public int getNumTypeAccessNoTransform()
Retrieves the number of children in the TypeAccess list. Calling this method will not trigger rewrites..- Returns:
- Number of children in the TypeAccess list.
-
getTypeAccess
public Access getTypeAccess(int i)
Retrieves the element at indexiin the TypeAccess list..- Parameters:
i- Index of the element to return.- Returns:
- The element at position
iin the TypeAccess list.
-
addTypeAccess
public void addTypeAccess(Access node)
Append an element to the TypeAccess list.- Parameters:
node- The element to append to the TypeAccess list.
-
addTypeAccessNoTransform
public void addTypeAccessNoTransform(Access node)
-
setTypeAccess
public void setTypeAccess(Access node, int i)
Replaces the TypeAccess list element at indexiwith the new nodenode.- Parameters:
node- The new node to replace the old list element.i- The list index of the node to be replaced.
-
getTypeAccesss
public List<Access> getTypeAccesss()
Retrieves the TypeAccess list.- Returns:
- The node representing the TypeAccess list.
-
getTypeAccesssNoTransform
public List<Access> getTypeAccesssNoTransform()
Retrieves the TypeAccess list.This method does not invoke AST transformations.
- Returns:
- The node representing the TypeAccess list.
-
getTypeAccessList
public List<Access> getTypeAccessList()
Retrieves the TypeAccess list.- Returns:
- The node representing the TypeAccess list.
-
getTypeAccessListNoTransform
public List<Access> getTypeAccessListNoTransform()
Retrieves the TypeAccess list.This method does not invoke AST transformations.
- Returns:
- The node representing the TypeAccess list.
-
setID
public void setID(String value)
Replaces the lexeme ID.- Parameters:
value- The new value for the lexeme ID.
-
setID
public void setID(Symbol symbol)
JastAdd-internal setter for lexeme ID using the Beaver parser.
-
getID
public String getID()
Retrieves the value for the lexeme ID.- Returns:
- The value for the lexeme ID.
-
isParameter
public boolean isParameter()
- Specified by:
isParameterin interfaceVariable
-
isClassVariable
public boolean isClassVariable()
- Specified by:
isClassVariablein interfaceVariable
-
isInstanceVariable
public boolean isInstanceVariable()
- Specified by:
isInstanceVariablein interfaceVariable
-
isLocalVariable
public boolean isLocalVariable()
- Specified by:
isLocalVariablein interfaceVariable
-
isFinal
public boolean isFinal()
The catch parameter of a multi-catch clause is implicitly final.
-
isVolatile
public boolean isVolatile()
- Specified by:
isVolatilein interfaceVariable
-
isSynthetic
public boolean isSynthetic()
- Specified by:
isSyntheticin interfaceVariable
-
sourceVariableDecl
public Variable sourceVariableDecl()
- Specified by:
sourceVariableDeclin interfaceVariable- See Also:
- "Generics.jrag"
-
type
public TypeDecl type()
A catch parameter declared with a disjunction type has the effective type lub(t1, t2, ...)
-
throwTypes
public Collection<TypeDecl> throwTypes()
- Specified by:
throwTypesin interfaceVariable
-
isMethodParameter
public boolean isMethodParameter()
- Specified by:
isMethodParameterin interfaceVariable
-
isConstructorParameter
public boolean isConstructorParameter()
- Specified by:
isConstructorParameterin interfaceVariable
-
isExceptionHandlerParameter
public boolean isExceptionHandlerParameter()
- Specified by:
isExceptionHandlerParameterin interfaceVariable
-
lookupLUBType
public LUBType lookupLUBType(Collection bounds)
-
outerScope
public VariableScope outerScope()
-
enclosingBodyDecl
public BodyDecl enclosingBodyDecl()
-
catchClause
public CatchClause catchClause()
-
Define_NameType_nameType
public NameType Define_NameType_nameType(ASTNode caller, ASTNode child)
- Overrides:
Define_NameType_nameTypein classASTNode<ASTNode>
-
-