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