org.eclipse.core.expressions

## Class ExpressionInfo

- java.lang.Object
- - org.eclipse.core.expressions.ExpressionInfo

    public class ExpressionInfo
    extends Object

A status object describing information about an expression tree. This information can for example be used to decide whether an expression tree has to be reevaluated if the value of some variables changes.

This class is not intended to be extended by clients.

Since:
  3.2
Restriction:
  This class is not intended to be subclassed by clients.

### Constructor Summary

Constructors
Constructor and Description
`ExpressionInfo()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addAccessedPropertyName(String name)` Marks the given property (the fully qualified name of a `PropertyTester` property) as accessed.
`void` `addMisBehavingExpressionType(Class<?> clazz)` Adds the given class to the list of misbehaving classes.
`void` `addVariableNameAccess(String name)` Marks the given variable as accessed.
`String[]` `getAccessedPropertyNames()` Returns the set of accessed `PropertyTester` properties.
`String[]` `getAccessedVariableNames()` Returns the set of accessed variables.
`Class<?>[]` `getMisbehavingExpressionTypes()` Returns the set of expression types which don't reimplement the new `Expression.collectExpressionInfo(ExpressionInfo)` method.
`boolean` `hasDefaultVariableAccess()` Returns `true` if the default variable is accessed by the expression tree.
`boolean` `hasSystemPropertyAccess()` Returns `true` if the system property is accessed by the expression tree.
`void` `markDefaultVariableAccessed()` Marks the default variable as accessed.
`void` `markSystemPropertyAccessed()` Marks the system property as accessed.
`void` `merge(ExpressionInfo other)` Merges this reevaluation information with the given info.
`void` `mergeExceptDefaultVariable(ExpressionInfo other)` Merges this reevaluation information with the given info ignoring the default variable access.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ExpressionInfo

    public ExpressionInfo()

### Method Detail

#### hasDefaultVariableAccess

    public boolean hasDefaultVariableAccess()

Returns `true` if the default variable is accessed by the expression tree.

Returns:
  whether the default variable is accessed or not

#### markDefaultVariableAccessed

    public void markDefaultVariableAccessed()

Marks the default variable as accessed.

#### hasSystemPropertyAccess

    public boolean hasSystemPropertyAccess()

Returns `true` if the system property is accessed by the expression tree.

Returns:
  whether the system property is accessed or not

#### markSystemPropertyAccessed

    public void markSystemPropertyAccessed()

Marks the system property as accessed.

#### getAccessedVariableNames

    public String[] getAccessedVariableNames()

Returns the set of accessed variables.

Returns:
  the set of accessed variables

#### addVariableNameAccess

    public void addVariableNameAccess(String name)

Marks the given variable as accessed.

Parameters:
  `name` - the accessed variable

#### getAccessedPropertyNames

    public String[] getAccessedPropertyNames()

Returns the set of accessed `PropertyTester` properties.

Returns:
  the fully qualified names of accessed properties, or an empty array
Since:
  3.4
See Also:
  `for system properties`

#### addAccessedPropertyName

    public void addAccessedPropertyName(String name)

Marks the given property (the fully qualified name of a `PropertyTester` property) as accessed.

Parameters:
  `name` - the fully qualified property name
Since:
  3.4
See Also:
  `for system properties`

#### getMisbehavingExpressionTypes

    public Class<?>[] getMisbehavingExpressionTypes()

Returns the set of expression types which don't reimplement the new `Expression.collectExpressionInfo(ExpressionInfo)` method. If one expression in the expression tree didn't implement the method, then no optimizations can be done. Returns `null` if all expressions implement the method.

Returns:
  the set of expression types which don't implement the `computeReevaluationInfo` method, or `null` if all do

#### addMisBehavingExpressionType

    public void addMisBehavingExpressionType(Class<?> clazz)

Adds the given class to the list of misbehaving classes.

Parameters:
  `clazz` - the class to add.

#### merge

    public void merge(ExpressionInfo other)

Merges this reevaluation information with the given info.

Parameters:
  `other` - the information to merge with

#### mergeExceptDefaultVariable

    public void mergeExceptDefaultVariable(ExpressionInfo other)

Merges this reevaluation information with the given info ignoring the default variable access.

Parameters:
  `other` - the information to merge with