Package

org.opalj.hermes.queries

util

Permalink

package util

Visibility
  1. Public
  2. All

Type Members

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

    Permalink

    Represents an extension of a specific class

  2. sealed abstract class APIFeature extends AnyRef

    Permalink

    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

    Permalink

    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. trait APIFeatureQuery extends FeatureQuery

    Permalink

    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

    Permalink

    Common trait that abstracts over instance and static api methods.

  6. sealed abstract class ClassExtension extends APIFeature

    Permalink

    Common trait that abstracts over all Class extension scenarios.

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

    Permalink

    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]) extends APIMethod with Product with Serializable

    Permalink

    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

    Permalink

    Factory for InstanceMethods.

  2. object StaticAPIMethod extends Serializable

    Permalink

    Factory for InstanceMethods.

Ungrouped