Package soot.JastAddJ
Class ConstructorAccess
- java.lang.Object
-
- beaver.Symbol
-
- soot.JastAddJ.ASTNode<ASTNode>
-
- soot.JastAddJ.Expr
-
- soot.JastAddJ.Access
-
- soot.JastAddJ.ConstructorAccess
-
- Direct Known Subclasses:
ParConstructorAccess,SuperConstructorAccess
public class ConstructorAccess extends Access implements Cloneable
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanaddEnclosingVariablesprotected booleandecl_computedprotected ConstructorDecldecl_valueprotected booleandecls_computedprotected SimpleSetdecls_valueintIDendintIDstartprotected StringtokenString_IDprotected booleantype_computedprotected TypeDecltype_value-
Fields inherited from class soot.JastAddJ.Access
hasPrevExpr_computed, hasPrevExpr_value, prevExpr_computed, prevExpr_value
-
Fields inherited from class soot.JastAddJ.Expr
false_label_computed, false_label_value, true_label_computed, true_label_value
-
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 ConstructorAccess()ConstructorAccess(Symbol p0, List<Expr> p1)ConstructorAccess(String p0, List<Expr> p1)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddArg(Expr node)Append an element to the Arg list.voidaddArgNoTransform(Expr node)voidaddEnclosingVariables()booleanapplicableAndAccessible(ConstructorDecl decl)intarity()voidcheckModifiers()ConstructorAccessclone()voidcollectTypesToSignatures(Collection<Type> set)ConstructorAccesscopy()ConstructorDecldecl()SimpleSetdecls()booleanDefine_boolean_hasPackage(ASTNode caller, ASTNode child, String packageName)booleanDefine_boolean_inExplicitConstructorInvocation(ASTNode caller, ASTNode child)CollectionDefine_Collection_lookupMethod(ASTNode caller, ASTNode child, String name)NameTypeDefine_NameType_nameType(ASTNode caller, ASTNode child)SimpleSetDefine_SimpleSet_lookupType(ASTNode caller, ASTNode child, String name)SimpleSetDefine_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)StringDefine_String_methodHost(ASTNode caller, ASTNode child)Valueeval(Body b)voidexceptionHandling()voidflushCache()voidflushCollectionCache()ConstructorAccessfullCopy()Create a deep copy of the AST subtree at this node.ExprgetArg(int i)Retrieves the element at indexiin the Arg list..List<Expr>getArgList()Retrieves the Arg list.List<Expr>getArgListNoTransform()Retrieves the Arg list.List<Expr>getArgs()Retrieves the Arg list.List<Expr>getArgsNoTransform()Retrieves the Arg list.StringgetID()Retrieves the value for the lexeme ID.intgetNumArg()Retrieves the number of children in the Arg list.intgetNumArgNoTransform()Retrieves the number of children in the Arg list.booleanhandlesException(TypeDecl exceptionType)voidinit$Children()Initializes the child array to the correct size.booleaninvokesVariableArityAsArray()booleanisDAafter(Variable v)booleanisDUafter(Variable v)CollectionlookupConstructor()booleanmayHaveRewrite()Stringname()voidnameCheck()protected intnumChildren()NameTypepredNameType()protected booleanreachedException(TypeDecl catchType)voidrefined_Transformations_ConstructorAccess_transformation()ASTNoderewriteTo()voidsetArg(Expr node, int i)Replaces the Arg list element at indexiwith the new nodenode.voidsetArgList(List<Expr> list)Replaces the Arg list.voidsetID(Symbol symbol)JastAdd-internal setter for lexeme ID using the Beaver parser.voidsetID(String value)Replaces the lexeme ID.voidtoString(StringBuffer s)voidtransformation()protected voidtransformEnumConstructors()TypeDecltype()ConstructorDeclunknownConstructor()booleanvalidArgs()-
Methods inherited from class soot.JastAddJ.Access
addArrayDims, addArraySize, emitLoadLocalInNestedClass, emitThis, hasPrevExpr, inExplicitConstructorInvocation, isDiamond, isQualified, lastAccess, nestedScope, prevExpr, qualifier, substituted, superConstructorQualifier, unknownField, unknownType, unqualifiedScope, withinDeprecatedAnnotation, withinSuppressWarnings
-
Methods inherited from class soot.JastAddJ.Expr
addDependencyIfNeeded, assignConvertedType, canBeFalse, canBeTrue, chooseConstructor, collectTypesToHierarchy, condition_false_label, condition_true_label, constant, emitBooleanCondition, emitEvalBranch, emitStore, enclosingBodyDecl, enclosingStmt, false_label, hasNextAccess, hasPackage, hasParentDot, hasQualifiedPackage, hostPackage, hostType, inExtendsOrImplements, inStaticContext, isArrayAccess, isClassAccess, isConstant, isDAafterFalse, isDAafterTrue, isDAbefore, isDest, isDUafterFalse, isDUafterTrue, isDUbefore, isEnumConstant, isFalse, isFieldAccess, isIncOrDec, isLeftChildOfDot, isMethodAccess, isPackageAccess, isPositive, isRightChildOfDot, isSource, isSuperAccess, isSuperConstructorAccess, isThisAccess, isTrue, isTypeAccess, isUnknown, isVariable, isVariable, keepAccessibleFields, keepAccessibleTypes, lookupMethod, lookupType, lookupType, lookupVariable, mayAccess, methodHost, modifiedInScope, mostSpecific, mostSpecificConstructor, nameType, nextAccess, packageName, parentDot, qualifiedLookupType, qualifiedLookupVariable, qualifiesAccess, refined_BooleanExpressions_Expr_emitEvalBranch, representableIn, staticContextQualifier, throwTypes, true_label, typeBoolean, typeByte, typeChar, typeDouble, typeFloat, typeInt, typeLong, typeName, typeNull, typeShort, typeString, typeVoid, varDecl
-
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, compilationUnit, Define_Annotation_lookupAnnotation, Define_ArrayList_exceptionRanges, Define_ASTNode_enclosingBlock, Define_BodyDecl_enclosingBodyDecl, Define_boolean_enclosedByExceptionHandler, Define_boolean_handlesException, 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_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_soot_jimple_Stmt_condition_false_label, Define_soot_jimple_Stmt_condition_true_label, Define_String_hostPackage, 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, extractIndent, extractSingleType, flushCaches, getChild, getChildNoTransform, getIndexOfChild, getNumChild, getNumChildNoTransform, getParent, in$Circle, in$Circle, indent, insertChild, is$Final, is$Final, isDescendantTo, isStringAdd, iterator, jimplify1phase1, jimplify1phase2, jimplify2, jimplify2, lineNumber, location, newLabel, options, putSimpleSetElement, removeChild, removeInstanceMethods, removeInstanceVariables, replace, setChild, setEnd, setLocation, setParent, setStart, sourceFile, start, state, toString, typeCheck, 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
-
-
-
-
Field Detail
-
addEnclosingVariables
protected boolean addEnclosingVariables
-
tokenString_ID
protected String tokenString_ID
-
IDstart
public int IDstart
-
IDend
public int IDend
-
decls_computed
protected boolean decls_computed
-
decls_value
protected SimpleSet decls_value
-
decl_computed
protected boolean decl_computed
-
decl_value
protected ConstructorDecl decl_value
-
type_computed
protected boolean type_computed
-
type_value
protected TypeDecl type_value
-
-
Method Detail
-
flushCache
public void flushCache()
- Overrides:
flushCachein classAccess
-
flushCollectionCache
public void flushCollectionCache()
- Overrides:
flushCollectionCachein classAccess
-
clone
public ConstructorAccess clone() throws CloneNotSupportedException
- Overrides:
clonein classAccess- Throws:
CloneNotSupportedException
-
copy
public ConstructorAccess copy()
-
fullCopy
public ConstructorAccess fullCopy()
Create a deep copy of the AST subtree at this node. The copy is dangling, i.e. has no parent.
-
exceptionHandling
public void exceptionHandling()
- Overrides:
exceptionHandlingin classASTNode<ASTNode>
-
reachedException
protected boolean reachedException(TypeDecl catchType)
- Overrides:
reachedExceptionin classASTNode<ASTNode>
-
toString
public void toString(StringBuffer s)
-
checkModifiers
public void checkModifiers()
-
transformEnumConstructors
protected void transformEnumConstructors()
- Overrides:
transformEnumConstructorsin classASTNode<ASTNode>
-
addEnclosingVariables
public void addEnclosingVariables()
-
refined_Transformations_ConstructorAccess_transformation
public void refined_Transformations_ConstructorAccess_transformation()
-
collectTypesToSignatures
public void collectTypesToSignatures(Collection<Type> set)
- Overrides:
collectTypesToSignaturesin classASTNode<ASTNode>
-
init$Children
public void init$Children()
Initializes the child array to the correct size. Initializes List and Opt nta children.- Overrides:
init$Childrenin classAccess
-
numChildren
protected int numChildren()
- Overrides:
numChildrenin classAccess
-
mayHaveRewrite
public boolean mayHaveRewrite()
- Overrides:
mayHaveRewritein classAccess
-
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.
-
setArgList
public void setArgList(List<Expr> list)
Replaces the Arg list.- Parameters:
list- The new list node to be used as the Arg list.
-
getNumArg
public int getNumArg()
Retrieves the number of children in the Arg list.- Returns:
- Number of children in the Arg list.
-
getNumArgNoTransform
public int getNumArgNoTransform()
Retrieves the number of children in the Arg list. Calling this method will not trigger rewrites..- Returns:
- Number of children in the Arg list.
-
getArg
public Expr getArg(int i)
Retrieves the element at indexiin the Arg list..- Parameters:
i- Index of the element to return.- Returns:
- The element at position
iin the Arg list.
-
addArg
public void addArg(Expr node)
Append an element to the Arg list.- Parameters:
node- The element to append to the Arg list.
-
addArgNoTransform
public void addArgNoTransform(Expr node)
-
setArg
public void setArg(Expr node, int i)
Replaces the Arg 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.
-
getArgs
public List<Expr> getArgs()
Retrieves the Arg list.- Returns:
- The node representing the Arg list.
-
getArgsNoTransform
public List<Expr> getArgsNoTransform()
Retrieves the Arg list.This method does not invoke AST transformations.
- Returns:
- The node representing the Arg list.
-
getArgList
public List<Expr> getArgList()
Retrieves the Arg list.- Returns:
- The node representing the Arg list.
-
getArgListNoTransform
public List<Expr> getArgListNoTransform()
Retrieves the Arg list.This method does not invoke AST transformations.
- Returns:
- The node representing the Arg list.
-
transformation
public void transformation()
- Overrides:
transformationin classASTNode<ASTNode>
-
applicableAndAccessible
public boolean applicableAndAccessible(ConstructorDecl decl)
- Overrides:
applicableAndAccessiblein classExpr
-
decls
public SimpleSet decls()
-
decl
public ConstructorDecl decl()
-
validArgs
public boolean validArgs()
-
name
public String name()
-
predNameType
public NameType predNameType()
- Overrides:
predNameTypein classAccess
-
arity
public int arity()
-
invokesVariableArityAsArray
public boolean invokesVariableArityAsArray()
-
handlesException
public boolean handlesException(TypeDecl exceptionType)
-
lookupConstructor
public Collection lookupConstructor()
-
unknownConstructor
public ConstructorDecl unknownConstructor()
-
Define_Collection_lookupMethod
public Collection Define_Collection_lookupMethod(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_Collection_lookupMethodin classASTNode<ASTNode>
-
Define_boolean_hasPackage
public boolean Define_boolean_hasPackage(ASTNode caller, ASTNode child, String packageName)
- Overrides:
Define_boolean_hasPackagein classASTNode<ASTNode>
-
Define_SimpleSet_lookupType
public SimpleSet Define_SimpleSet_lookupType(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_SimpleSet_lookupTypein classASTNode<ASTNode>
-
Define_SimpleSet_lookupVariable
public SimpleSet Define_SimpleSet_lookupVariable(ASTNode caller, ASTNode child, String name)
- Overrides:
Define_SimpleSet_lookupVariablein classASTNode<ASTNode>
-
Define_NameType_nameType
public NameType Define_NameType_nameType(ASTNode caller, ASTNode child)
- Overrides:
Define_NameType_nameTypein classASTNode<ASTNode>
-
Define_String_methodHost
public String Define_String_methodHost(ASTNode caller, ASTNode child)
- Overrides:
Define_String_methodHostin classASTNode<ASTNode>
-
Define_boolean_inExplicitConstructorInvocation
public boolean Define_boolean_inExplicitConstructorInvocation(ASTNode caller, ASTNode child)
- Overrides:
Define_boolean_inExplicitConstructorInvocationin classASTNode<ASTNode>
-
-