Package android.databinding.tool.expr
Class ArgListExpr
- java.lang.Object
-
- android.databinding.tool.expr.Expr
-
- android.databinding.tool.expr.ArgListExpr
-
- All Implemented Interfaces:
android.databinding.tool.expr.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_END, KEY_JOIN, KEY_JOIN_END, KEY_JOIN_START, KEY_START, mChildren, NO_ID
-
-
Constructor Summary
Constructors Constructor Description ArgListExpr(int id, java.lang.Iterable<Expr> children)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanBeEvaluatedToAVariable()ExprcloneToModel(ExprModel model)protected java.lang.StringcomputeUniqueKey()protected java.util.List<Dependency>constructDependencies()protected android.databinding.tool.writer.KCodegenerateCode()java.lang.StringgetInvertibleError()voidinjectSafeUnboxing(android.databinding.tool.reflection.ModelAnalyzer modelAnalyzer, ExprModel model)Called after experiment model is sealed to avoid NPE problems caused by boxed primitives.voidinjectSafeUnboxingForParams(ExprModel exprModel, android.databinding.tool.reflection.ModelClass[] params)protected android.databinding.tool.reflection.ModelClassresolveType(android.databinding.tool.reflection.ModelAnalyzer modelAnalyzer)java.lang.StringtoString()-
Methods inherited from class android.databinding.tool.expr.Expr
addJustMeToExecutionPath, addLocation, asPackage, assertIsInvertible, canBeInvalidated, cloneToModel, considerElevatingConditionals, constructDynamicChildrenDependencies, enableDirectInvalidation, generateInverse, getAllCalculationPaths, getChildren, getDefaultValue, getDependants, getDependencies, getId, getInvalidFlags, getLocations, getModel, getParents, getPredicateInvalidFlags, getReadSoFar, getRequirementFlagIndex, getRequirementId, getResolvedType, getShouldReadFlags, getShouldReadFlagsWithConditionals, getUniqueKey, getUpdateRegistrationCall, getVersion, hasConditionalDependant, hasId, hasNestedCannotRead, invalidateReadFlags, isBindingExpression, isConditional, isDynamic, isEqualityCheck, isIsUsedInCallback, isObservable, isRead, isUsed, join, join, markAsBindingExpression, markAsReadIfDone, markAsUsed, markAsUsedInCallback, markFlagsAsRead, onSwappedWith, provideScopeLocation, recursivelyInjectSafeUnboxing, resetResolvedType, resolveListeners, resolveTwoWayExpressions, safeUnboxChild, setId, setModel, setRequirementId, setUnwrapObservableFields, shouldReadNow, toCode, toExecutionPath, toExecutionPath, toExecutionPathInOrder, toExecutionPathInOrder, toFullCode, trimShouldReadFlags, unwrapChildTo, unwrapObservableField, unwrapObservableFieldChildren, updateExpr
-
-
-
-
Constructor Detail
-
ArgListExpr
public ArgListExpr(int id, java.lang.Iterable<Expr> children)
-
-
Method Detail
-
computeUniqueKey
protected java.lang.String computeUniqueKey()
- Specified by:
computeUniqueKeyin classExpr
-
generateCode
protected android.databinding.tool.writer.KCode generateCode()
- Specified by:
generateCodein classExpr
-
injectSafeUnboxing
public void injectSafeUnboxing(android.databinding.tool.reflection.ModelAnalyzer modelAnalyzer, ExprModel model)Description copied from class:ExprCalled after experiment model is sealed to avoid NPE problems caused by boxed primitives.- Specified by:
injectSafeUnboxingin classExpr
-
injectSafeUnboxingForParams
public void injectSafeUnboxingForParams(ExprModel exprModel, android.databinding.tool.reflection.ModelClass[] params)
-
cloneToModel
public Expr cloneToModel(ExprModel model)
- Specified by:
cloneToModelin classExpr
-
resolveType
protected android.databinding.tool.reflection.ModelClass resolveType(android.databinding.tool.reflection.ModelAnalyzer modelAnalyzer)
- Specified by:
resolveTypein classExpr
-
constructDependencies
protected java.util.List<Dependency> constructDependencies()
- Specified by:
constructDependenciesin classExpr
-
canBeEvaluatedToAVariable
public boolean canBeEvaluatedToAVariable()
- Overrides:
canBeEvaluatedToAVariablein classExpr
-
getInvertibleError
public java.lang.String getInvertibleError()
- Specified by:
getInvertibleErrorin classExpr- Returns:
- The reason the expression wasn't invertible or null if it was invertible.
-
-