Package 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
Description
`ExpressionInfo()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### ExpressionInfo

public ExpressionInfo()

## Method Details

### 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