android.databinding.tool.expr
Class ListenerExpr

java.lang.Object
  extended by android.databinding.tool.expr.Expr
      extended by android.databinding.tool.expr.ListenerExpr
All Implemented Interfaces:
VersionProvider, android.databinding.tool.processing.scopes.LocationScopeProvider, android.databinding.tool.processing.scopes.ScopeProvider

public class ListenerExpr
extends Expr

This wraps an expression, but makes it unique for a particular event listener type. This is used to differentiate listener methods. For example:

     public void onFoo(String str) {...}
     public void onFoo(int i) {...}
 


Field Summary
 
Fields inherited from class android.databinding.tool.expr.Expr
KEY_JOIN, mChildren, NO_ID
 
Method Summary
protected  java.lang.String computeUniqueKey()
           
protected  java.util.List<Dependency> constructDependencies()
           
 android.databinding.tool.writer.KCode generateCode(boolean expand)
           
 Expr getChild()
           
 java.lang.String getInvertibleError()
           
 ModelMethod getMethod()
           
 java.lang.String getName()
           
 boolean isDynamic()
          Whether the result of this expression can change or not.
protected  ModelClass resolveType(ModelAnalyzer modelAnalyzer)
           
 
Methods inherited from class android.databinding.tool.expr.Expr
addJustMeToExecutionPath, addLocation, addTwoWay, asPackage, assertIsInvertible, canBeEvaluatedToAVariable, canBeInvalidated, computeChildrenKey, considerElevatingConditionals, constructDynamicChildrenDependencies, enableDirectInvalidation, getAllCalculationPaths, getChildren, getDefaultValue, getDependants, getDependencies, getId, getInvalidFlags, getLocations, getModel, getParents, getPredicateInvalidFlags, getReadSoFar, getRequirementFlagIndex, getRequirementId, getResolvedType, getShouldReadFlags, getShouldReadFlagsWithConditionals, getUniqueKey, getVersion, hasConditionalDependant, hasId, hasNestedCannotRead, invalidateReadFlags, isBindingExpression, isConditional, isEqualityCheck, isIsUsedInCallback, isObservable, isRead, isTwoWay, isUsed, join, join, markAsReadIfDone, markAsUsed, markAsUsedInCallback, markFlagsAsRead, onSwappedWith, provideScopeLocation, resetResolvedType, resolveListeners, resolveTwoWayExpressions, setBindingExpression, setId, setModel, setRequirementId, setTwoWay, shouldReadNow, toCode, toCode, toExecutionPath, toExecutionPath, toExecutionPathInOrder, toExecutionPathInOrder, toFullCode, toInverseCode, toString, trimShouldReadFlags, updateExpr
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

resolveType

protected ModelClass resolveType(ModelAnalyzer modelAnalyzer)
Specified by:
resolveType in class Expr

getMethod

public ModelMethod getMethod()

getChild

public Expr getChild()

getName

public java.lang.String getName()

isDynamic

public boolean isDynamic()
Description copied from class: Expr
Whether the result of this expression can change or not. For example, 3 + 5 can not change vs 3 + x may change. Default implementations checks children and returns true if any of them returns true

Overrides:
isDynamic in class Expr
Returns:
True if the result of this expression may change due to variables

constructDependencies

protected java.util.List<Dependency> constructDependencies()
Specified by:
constructDependencies in class Expr

computeUniqueKey

protected java.lang.String computeUniqueKey()
Overrides:
computeUniqueKey in class Expr

generateCode

public android.databinding.tool.writer.KCode generateCode(boolean expand)
Specified by:
generateCode in class Expr

getInvertibleError

public java.lang.String getInvertibleError()
Specified by:
getInvertibleError in class Expr
Returns:
The reason the expression wasn't invertible or null if it was invertible.