diff options
Diffstat (limited to 'compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java')
-rw-r--r-- | compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java b/compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java index 9ff4f218..b866218a 100644 --- a/compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java +++ b/compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java @@ -23,6 +23,8 @@ import android.databinding.tool.util.Preconditions; import android.databinding.tool.writer.KCode; import android.databinding.tool.writer.LayoutBinderWriterKt; +import com.google.common.collect.Lists; + import java.util.ArrayList; import java.util.List; @@ -78,12 +80,8 @@ public class IdentifierExpr extends Expr { } @Override - protected KCode generateCode(boolean expand) { - if (expand) { - return new KCode(LayoutBinderWriterKt.getFieldName(this)); - } else { - return new KCode(LayoutBinderWriterKt.scopedName(this)); - } + protected KCode generateCode() { + return new KCode(LayoutBinderWriterKt.scopedName(this)); } public void setDeclared() { @@ -100,7 +98,20 @@ public class IdentifierExpr extends Expr { } @Override - public KCode toInverseCode(KCode value) { - return new KCode().app(LayoutBinderWriterKt.getSetterName(this)).app("(", value).app(");"); + public Expr generateInverse(ExprModel model, Expr value, String bindingClassName) { + String thisType = bindingClassName + ".this"; + Expr target = model.builtInVariable(thisType, bindingClassName, thisType); + return model.methodCall(target, LayoutBinderWriterKt.getSetterName(this), + Lists.newArrayList(value)); + } + + @Override + public Expr cloneToModel(ExprModel model) { + return model.identifier(mName); + } + + @Override + public String toString() { + return mName; } } |