F4FApp
java.lang.Object
extended by com.ibm.appscan.frameworks.highlevelapi.F4FApp
public class F4FApp
extends java.lang.Object
Representation of an application, with methods to query various properties of classes, methods, etc. Implemented mostly by delegating to methods from the T.J. Watson™ Libraries for Analysis (WALA); the goal is to consolidate the most useful WALA methods in a single type. See the WALA home page (http://wala.sourceforge.net) for full details on WALA APIs.
Constructor Detail
public F4FApp(IClassHierarchy cha)
Should
not be needed to implement a new handler. The relevant F4FApp
object
will be passed as a parameter to F4FHandler.handleApp(F4FApp,
F4FActions)
getAppClass
@Deprecated
public IClass getAppClass(java.lang.String vdbClassName)
Deprecated.
Use getIClass(String)
instead; this method simply
delegates to that one.
getIClass
public IClass getIClass(java.lang.String vdbClassName)
get
the IClass
for some class in the application, including
library jars/DLLs. If no class with the provided name is found, return null
Parameters:
vdbClassName
- class name in VDB format, e.g.,java.lang.String
getClassAnnotations
public java.util.Collection<Annotation>
getClassAnnotations(IClass klass)
Get the annotations/attributes for a class. For .NET, the result will include inherited attributes.
Parameters:
klass
- the class whose annotations are desired
getMethodAnnotations
public java.util.Collection<Annotation>
getMethodAnnotations(IMethod method)
Get the annotations / attributes for a method. For .NET, these will include inherited attributes.
Parameters:
method
- the method whose annotations are desired
getFieldAnnotations
public java.util.Collection<Annotation>
getFieldAnnotations(IField field)
Get the annotations / attributes for a field.
Parameters:
field
- the field whose annotations are desired
getMethodParametersAnnotations
public java.util.Collection<Annotation>[]
getMethodParametersAnnotations(IMethod method)
Get annotations
on parameters as an array of Collections, where each array element
gives the annotations on the corresponding parameter. Note that the this
parameter
for an instance method cannot have annotations.
Parameters:
method
- the method whose parameter annotations are desired
getAllApplicationClasses
public java.util.Collection<IClass>
getAllApplicationClasses()
Get all the classes in the application (i.e., excluding those in library jars).
getClassHierarchy
public IClassHierarchy getClassHierarchy()
Get the WALA class hierarchy for the application. Most handlers should be able to work via the other methods in this class and shouldn't need to operate directly on the class hierarchy. But, access is provided for advanced use.
getMethodsDeclaredInClass
public java.util.Collection<IMethod>
getMethodsDeclaredInClass(IClass klass)
Get all the
static and instance methods declared in klass
getClassMethods
public java.util.Collection<IMethod>
getClassMethods(java.lang.String className,
java.lang.String methodName)
Get all the methods in an class with a particular name. If the class cannot be found, returns an empty Collection.
Parameters:
className
- the class name in VDB (i.e., source-level) format, e.g.,java.lang.String
methodName
-
getClassMethods
public java.util.Collection<IMethod>
getClassMethods(IClass appClass,
java.lang.String methodName)
Get all the methods in an class with a particular name.
Parameters:
appClass
- the classmethodName
-
getStringConstantsReturnedByMethod
public java.util.Collection<java.lang.String>
getStringConstantsReturnedByMethod(IMethod method)
Get
the possible String constants returned by the method. E.g., if the
method has a statement return "result";, then "result" will be in
the returned Collection. Throws an IllegalArgumentException
if
the return type of method is not String
.