Packages

package util

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. case class APIClassExtension(featureID: String, declClass: ObjectType) extends ClassExtension with Product with Serializable

    Represents an extension of a specific class

  2. sealed abstract class APIFeature extends AnyRef

    A common super trait for API related features such as the usage of common or interesting APIs.

  3. case class APIFeatureGroup(apiMethods: Chain[APIMethod], featureID: String) extends APIFeature with Product with Serializable

    Represents a collection of API methods that can be mapped to a single feature.

    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.

    Note

    It is assumed that the passed featureID is unique throughout all feature extractors.

  4. abstract class APIFeatureQuery extends FeatureQuery

    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"
     )
    )
  5. sealed abstract class APIMethod extends APIFeature

    Common trait that abstracts over instance and static api methods.

  6. sealed abstract class ClassExtension extends APIFeature

    Common trait that abstracts over all Class extension scenarios.

  7. case class InstanceAPIMethod(declClass: ObjectType, name: String, descriptor: Option[MethodDescriptor], fID: Option[String] = None) extends APIMethod with Product with Serializable

    Represents an instance API call.

    Represents an instance API call.

    declClass

    ObjectType of the receiver.

    name

    Name of the API method.

    descriptor

    Optional method descriptor, is no descriptor assigned, it represents all methods with the same name, declared in the same class.

  8. case class StaticAPIMethod(declClass: ObjectType, name: String, descriptor: Option[MethodDescriptor], fID: Option[String] = None) extends APIMethod with Product with Serializable

    Represents a static API call.

    Represents a static API call.

    declClass

    ObjectType of the receiver.

    name

    Name of the API method.

    descriptor

    Optional method descriptor, is no descriptor assigned, it represents all methods with the same name, declared in the same class.

Value Members

  1. object InstanceAPIMethod extends Serializable

    Factory for InstanceMethods.

  2. object StaticAPIMethod extends Serializable

    Factory for InstanceMethods.

Ungrouped