Packages

final class VirtualFormalParameter extends AnyRef

Explicitly models a formal parameter of an virtual method to make it possible to store it in the property store and to compute properties for it. In contrast to the VirtualFormalParameter, which models a parameter of a concrete method, virtual methods include every possible method that overrides the method attached to the VirtualForwardingMethod.

The first parameter explicitly defined by the method will have the origin -2, the second one will have the origin -3 and so on. That is, the origin of an explicitly declared parameter is always -(parameter_index + 2). The origin of the this parameter is -1.

It should be used to aggregate the properties for every VirtualFormalParameter of a method included in this virtual method.

Note

The computational type category of the parameters is ignored to ease the mapping.

,

This encoding is also used by the default three address code representation generated using a local data-flow analysis (see org.opalj.tac.TACAI). In case of the bytecode based data-flow analysis the origin used by the analysis reflects the position of the parameter value on the tac; see org.opalj.ai.parameterIndexToValueOrigin.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. VirtualFormalParameter
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new VirtualFormalParameter(method: DeclaredMethod, origin: Int)

    method

    The virtual method which contains the formal parameter.

    origin

    The origin associated with the parameter. See the general description for further details.

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(other: Any): Boolean
    Definition Classes
    VirtualFormalParameter → AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    VirtualFormalParameter → AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. val method: DeclaredMethod
  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. val origin: Int
  17. def parameterIndex: Int

    returns

    The index of the parameter or -1 if this formal parameter reflects the implicit this value.

  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    VirtualFormalParameter → AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped