Packages

o

org.opalj.br.fpcf.properties

EscapeViaParameter

case object EscapeViaParameter extends FinalEscapeProperty with Product with Serializable

Characterizes escapes via an assignment to a field of a method parameter. It may also escape EscapeInCallee. For a given entity this characterizes only the escape state within its method of creation (M), i.e. it could escape globally in a caller of M. As the actual parameter could escaped globally before the call of M, the entity could also be global within M. Analyses are expected to be context insensitive and do not check all callers of M.

Source
EscapeProperty.scala
Example:
  1. Given the following code:

    public class X{
     public Object f;
     private void foo(X param) {
      param.f = new Object();        // ALLOCATION SITE
     }
    }
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EscapeViaParameter
  2. Serializable
  3. Product
  4. Equals
  5. FinalEscapeProperty
  6. EscapeProperty
  7. EscapePropertyMetaInformation
  8. ExplicitlyNamedProperty
  9. OrderedProperty
  10. Property
  11. PropertyMetaInformation
  12. PropertyKind
  13. AnyRef
  14. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. final type Self = EscapeProperty

Value Members

  1. final val PID: Int(2)
  2. def asAggregatedProperty: VirtualMethodEscapeProperty
    Definition Classes
    EscapeProperty
  3. final def asOrderedProperty: OrderedProperty

    Returns this if this property inherits from OrderedProperty.

    Returns this if this property inherits from OrderedProperty.

    Used, e.g., by the framework to support debugging analyses.

    Definition Classes
    Property
  4. def bottomness: Int

    Returns a value between zero and 9 which describes how close the value is to its absolute bottom.

    Returns a value between zero and 9 which describes how close the value is to its absolute bottom. Zero means the value is very close to the bottom and 9 means the value is far away from the bottom.

    The default value is "5".

    Definition Classes
    OrderedProperty
  5. def checkIsEqualOrBetterThan(e: Entity, other: Self): Unit

    Tests if this property is equal or better than the given one (better means that the value is above the given value in the underlying lattice.)

    Tests if this property is equal or better than the given one (better means that the value is above the given value in the underlying lattice.)

    Definition Classes
    EscapePropertyOrderedProperty
  6. final def id: Int

    The id uniquely identifies this property's category.

    The id uniquely identifies this property's category. All property objects of the same kind have to use the same id which is guaranteed since they share the same PropertyKey

    Definition Classes
    PropertyMetaInformationPropertyKind
  7. def isBottom: Boolean

    Is this the bottom value of the lattice, i.e.

    Is this the bottom value of the lattice, i.e. GlobalEscape, EscapeViaHeapObject or EscapeViaStaticField.

    Definition Classes
    EscapeViaParameterEscapeProperty
  8. final def isOrderedProperty: Boolean

    Returns true if this property inherits from OrderedProperty.

    Returns true if this property inherits from OrderedProperty.

    Definition Classes
    Property
  9. def isTop: Boolean

    Is this the top value of the lattice, i.e.

    Is this the top value of the lattice, i.e. NoEscape.

    Definition Classes
    EscapeViaParameterEscapeProperty
  10. final def key: PropertyKey[EscapeProperty]

    The key uniquely identifies this property's category.

    The key uniquely identifies this property's category. All property objects of the same kind have to use the same key.

    In general each Property kind is expected to have a companion object that stores the unique PropertyKey.

    Definition Classes
    EscapePropertyPropertyMetaInformation
  11. def lessOrEqualRestrictive(that: EscapeProperty): Boolean

    Tests if this property describes equal or less restricted escapes than the given property. That is if the lifetime OR access bound of the property is greater or equal than that.

    Tests if this property describes equal or less restricted escapes than the given property. That is if the lifetime OR access bound of the property is greater or equal than that. E.g., returns true if this property identifies values which GlobalEscape and the given property (that) refers to values that NoEscape.

    Definition Classes
    EscapeViaParameterEscapeProperty
    See also

    EscapeProperty for further details.

  12. def meet(that: FinalEscapeProperty): FinalEscapeProperty
  13. def meet(that: EscapeProperty): EscapeProperty

    Computes the greatest lower bound of this and that property values.

    Computes the greatest lower bound of this and that property values.

    that

    the other escape property value.

    returns

    the most restrictive escape that is less or equal restrictive than this and that.

    Definition Classes
    EscapeViaParameterEscapeProperty
    See also

    EscapeProperty.lessOrEqualRestrictive

  14. def productElementName(n: Int): String
    Definition Classes
    Product
  15. def productElementNames: Iterator[String]
    Definition Classes
    Product
  16. def propertyName: String

    The name of the property.

    The name of the property.

    Definition Classes
    EscapeViaParameterExplicitlyNamedProperty
  17. def propertyValueID: Int

    A unique id for every escape property.

    A unique id for every escape property. Used for table switches.

    Definition Classes
    EscapeViaParameterEscapeProperty