Represents an extension of a specific class
A common super trait for API related features such as the usage of common or interesting APIs.
Represents a collection of API methods that can be mapped to a single feature.
A predefined query for finding simple API features.
A predefined query for finding simple API features. It supports - in particular -
features that check for certain API calls. Subclasses are only required to define
a Chain of APIFeatures.
Example of an apiFeature declaration in a subclass:
override def apiFeatures: Chain[APIFeatures] = Chain[APIFeature]( val Unsafe = ObjectType("sun/misc/Unsafe") StaticAPIMethod(Unsafe, "getUnsafe", MethodDescriptor("()Lsun/misc/Unsafe;")), APIFeatureGroup( Chain(InstanceAPIMethod(Unsafe, "allocateInstance")), "Unsafe - Alloc" ), APIFeatureGroup( Chain( InstanceAPIMethod(Unsafe, "arrayIndexScale"), InstanceAPIMethod(Unsafe, "arrayBaseOffset") ), "Unsafe - Array" ) )
Common trait that abstracts over instance and static api methods.
Common trait that abstracts over all Class extension scenarios.
Represents an instance API call.
Represents an instance API call.
ObjectType of the receiver.
Name of the API method.
Optional method descriptor, is no descriptor assigned, it represents all methods with the same name, declared in the same class.
Represents a static API call.
Represents a static API call.
ObjectType of the receiver.
Name of the API method.
Optional method descriptor, is no descriptor assigned, it represents all methods with the same name, declared in the same class.
Factory for InstanceMethods.
Factory for InstanceMethods.
Represents a collection of API methods that can be mapped to a single feature. Most APIs provide multiple or slightly different API methods to achieve a single task, hence, it can be helpful to group those methods.
It is assumed that the passed featureID is unique throughout all feature extractors.