android.databinding.tool.expr
Class ArgListExpr

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

public class ArgListExpr
extends Expr

This is a special expression that is created when we have an adapter that has multiple parameters.

When it is detected, we create a new binding with this argument list expression and merge N bindings into a new one so that rest of the code generation logic works as expected.


Field Summary
 
Fields inherited from class android.databinding.tool.expr.Expr
KEY_JOIN, mChildren, NO_ID
 
Constructor Summary
ArgListExpr(int id, java.lang.Iterable<Expr> children)
           
 
Method Summary
 boolean canBeEvaluatedToAVariable()
           
protected  java.lang.String computeUniqueKey()
           
protected  java.util.List<Dependency> constructDependencies()
           
protected  android.databinding.tool.writer.KCode generateCode(boolean expand)
           
 java.lang.String getInvertibleError()
           
protected  ModelClass resolveType(ModelAnalyzer modelAnalyzer)
           
 
Methods inherited from class android.databinding.tool.expr.Expr
addLocation, addTwoWay, asPackage, assertIsInvertible, 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, isDynamic, isEqualityCheck, isObservable, isRead, isTwoWay, isUsed, join, join, markAsReadIfDone, markFlagsAsRead, onSwappedWith, provideScopeLocation, resetResolvedType, resolveListeners, resolveTwoWayExpressions, setBindingExpression, setId, setIsUsed, setModel, setRequirementId, setTwoWay, shouldReadNow, toCode, toCode, toFullCode, toInverseCode, toString, trimShouldReadFlags, updateExpr
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ArgListExpr

public ArgListExpr(int id,
                   java.lang.Iterable<Expr> children)
Method Detail

computeUniqueKey

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

generateCode

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

resolveType

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

constructDependencies

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

canBeEvaluatedToAVariable

public boolean canBeEvaluatedToAVariable()
Overrides:
canBeEvaluatedToAVariable 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.