summaryrefslogtreecommitdiff
path: root/compiler/src/main/java/android/databinding/tool/expr/IdentifierExpr.java
diff options
context:
space:
mode:
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.java27
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;
}
}