summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorYigit Boyar <yboyar@google.com>2016-01-22 10:33:20 -0800
committerYigit Boyar <yboyar@google.com>2016-01-22 13:22:37 -0800
commitaf146d6a8c0efcf5682d14047c06866a5548f78f (patch)
tree43aa8af42d26f3851925686d4afecb7e94319025 /compiler
parenta138270e662e29ee982942a9d963af5c45d0e8c2 (diff)
downloaddata-binding-af146d6a8c0efcf5682d14047c06866a5548f78f.tar.gz
Update data binding to kotlin beta 4
I've also run some cleanup inspections to keep codebase more up to date. Bug: 26738574 Change-Id: I02aa43157cad858c0ea60dd41a22150e3cf2cfa1
Diffstat (limited to 'compiler')
-rw-r--r--compiler/compiler.iml4
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/BracketExpr.java2
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/VersionProvider.java2
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/ext/list_ext.kt19
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/ext/node_ext.kt56
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/DataBinderWriter.kt42
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/KCode.kt28
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt14
-rw-r--r--compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java2
9 files changed, 39 insertions, 130 deletions
diff --git a/compiler/compiler.iml b/compiler/compiler.iml
index acf8f63e..b0d4edff 100644
--- a/compiler/compiler.iml
+++ b/compiler/compiler.iml
@@ -18,12 +18,12 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="compilerCommon" />
<orderEntry type="module" module-name="baseLibrary" />
- <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.0.0-beta-1103" level="project" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.0.0-beta-4584" level="project" />
<orderEntry type="library" name="Gradle: commons-io:commons-io:2.4" level="project" />
<orderEntry type="library" name="Gradle: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4:4.5" level="project" />
<orderEntry type="library" name="Gradle: com.googlecode.juniversalchardet:juniversalchardet:1.0.3" level="project" />
- <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-runtime:1.0.0-beta-1103" level="project" />
+ <orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-runtime:1.0.0-beta-4584" level="project" />
<orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4-runtime:4.5" level="project" />
<orderEntry type="library" name="Gradle: com.tunnelvisionlabs:antlr4-annotations:4.5" level="project" />
<orderEntry type="library" name="Gradle: org.antlr:antlr-runtime:3.5.2" level="project" />
diff --git a/compiler/src/main/java/android/databinding/tool/expr/BracketExpr.java b/compiler/src/main/java/android/databinding/tool/expr/BracketExpr.java
index 16c6ce10..392512ce 100644
--- a/compiler/src/main/java/android/databinding/tool/expr/BracketExpr.java
+++ b/compiler/src/main/java/android/databinding/tool/expr/BracketExpr.java
@@ -24,7 +24,7 @@ import java.util.List;
public class BracketExpr extends Expr {
- public static enum BracketAccessor {
+ public enum BracketAccessor {
ARRAY,
LIST,
MAP,
diff --git a/compiler/src/main/java/android/databinding/tool/expr/VersionProvider.java b/compiler/src/main/java/android/databinding/tool/expr/VersionProvider.java
index cef58f72..8e066a46 100644
--- a/compiler/src/main/java/android/databinding/tool/expr/VersionProvider.java
+++ b/compiler/src/main/java/android/databinding/tool/expr/VersionProvider.java
@@ -21,5 +21,5 @@ package android.databinding.tool.expr;
* This number is used when caching values in code generation. (like flags)
*/
public interface VersionProvider {
- public int getVersion();
+ int getVersion();
}
diff --git a/compiler/src/main/kotlin/android/databinding/tool/ext/list_ext.kt b/compiler/src/main/kotlin/android/databinding/tool/ext/list_ext.kt
index 70317f6a..4d420dd3 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/ext/list_ext.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/ext/list_ext.kt
@@ -16,29 +16,14 @@
package android.databinding.tool.ext
-import android.databinding.tool.ext.toCamelCase
-import android.databinding.tool.ext.toCamelCaseAsVar
-
public fun List<String>.joinToCamelCase(): String = when(size) {
0 -> throw IllegalArgumentException("invalid section size, cannot be zero")
- 1 -> this.get(0).toCamelCase()
+ 1 -> this[0].toCamelCase()
else -> this.map {it.toCamelCase()}.joinToString("")
}
public fun List<String>.joinToCamelCaseAsVar(): String = when(size) {
0 -> throw IllegalArgumentException("invalid section size, cannot be zero")
- 1 -> this.get(0).toCamelCaseAsVar()
- else -> get(0).toCamelCaseAsVar() + drop(1).joinToCamelCase()
-}
-
-public fun Array<String>.joinToCamelCase(): String = when(size) {
- 0 -> throw IllegalArgumentException("invalid section size, cannot be zero")
- 1 -> this.get(0).toCamelCase()
- else -> this.map {it.toCamelCase()}.joinToString("")
-}
-
-public fun Array<String>.joinToCamelCaseAsVar(): String = when(size) {
- 0 -> throw IllegalArgumentException("invalid section size, cannot be zero")
- 1 -> this.get(0).toCamelCaseAsVar()
+ 1 -> this[0].toCamelCaseAsVar()
else -> get(0).toCamelCaseAsVar() + drop(1).joinToCamelCase()
} \ No newline at end of file
diff --git a/compiler/src/main/kotlin/android/databinding/tool/ext/node_ext.kt b/compiler/src/main/kotlin/android/databinding/tool/ext/node_ext.kt
deleted file mode 100644
index 83a34baa..00000000
--- a/compiler/src/main/kotlin/android/databinding/tool/ext/node_ext.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.databinding.tool.ext
-
-import org.w3c.dom.Node
-import org.w3c.dom.NodeList
-import java.util.ArrayList
-
-public fun Node.getAndroidId() : String? =
- getAttributes()?.getNamedItem("android:id")?.getNodeValue()
-
-public fun Node.getAndroidIdPath(includeRoot : Boolean) : List<String> {
- val ids = arrayListOf<String>()
- ids.add(getAndroidId()!!)
- var parent : Node? = getParentNode()
- while (parent != null && (includeRoot || parent.getParentNode()?.getParentNode() != null)) {
- val id = parent.getAndroidId()
- if (id != null) {
- ids.add(id)
- }
- parent = parent.getParentNode()
- }
- return ids
-}
-
-public fun NodeList.forEach( f : (Node) -> Unit ) {
- val cnt = getLength()
- if (cnt == 0) return
- for (i in 0..cnt - 1) {
- f(item(i))
- }
-}
-public fun NodeList.toArrayList() : ArrayList<Node> {
- val cnt = getLength()
- val arrayList = arrayListOf<Node>()
- for (i in 0..cnt - 1) {
- arrayList.add(item(i))
- }
- return arrayList
-}
-
-
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/DataBinderWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/DataBinderWriter.kt
index 8801303c..da953e46 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/DataBinderWriter.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/DataBinderWriter.kt
@@ -21,7 +21,7 @@ class DataBinderWriter(val pkg: String, val projectPackage: String, val classNam
nl("package $pkg;")
nl("import $projectPackage.BR;")
nl("class $className {") {
- tab("final static int TARGET_MIN_SDK = ${minSdk};")
+ tab("final static int TARGET_MIN_SDK = $minSdk;")
nl("")
tab("public $className() {") {
}
@@ -29,14 +29,14 @@ class DataBinderWriter(val pkg: String, val projectPackage: String, val classNam
nl("")
tab("public android.databinding.ViewDataBinding getDataBinder(android.databinding.DataBindingComponent bindingComponent, android.view.View view, int layoutId) {") {
tab("switch(layoutId) {") {
- layoutBinders.groupBy{it.getLayoutname()}.forEach {
- val firstVal = it.value.get(0)
- tab("case ${firstVal.getModulePackage()}.R.layout.${firstVal.getLayoutname()}:") {
+ layoutBinders.groupBy{it.layoutname }.forEach {
+ val firstVal = it.value[0]
+ tab("case ${firstVal.modulePackage}.R.layout.${firstVal.layoutname}:") {
if (it.value.size == 1) {
- if (firstVal.isMerge()) {
- tab("return new ${firstVal.getPackage()}.${firstVal.getImplementationName()}(bindingComponent, new android.view.View[]{view});")
+ if (firstVal.isMerge) {
+ tab("return new ${firstVal.`package`}.${firstVal.implementationName}(bindingComponent, new android.view.View[]{view});")
} else {
- tab("return ${firstVal.getPackage()}.${firstVal.getImplementationName()}.bind(view, bindingComponent);")
+ tab("return ${firstVal.`package`}.${firstVal.implementationName}.bind(view, bindingComponent);")
}
} else {
// we should check the tag to decide which layout we need to inflate
@@ -44,15 +44,15 @@ class DataBinderWriter(val pkg: String, val projectPackage: String, val classNam
tab("final Object tag = view.getTag();")
tab("if(tag == null) throw new java.lang.RuntimeException(\"view must have a tag\");")
it.value.forEach {
- tab("if (\"${it.getTag()}_0\".equals(tag)) {") {
- if (it.isMerge()) {
- tab("return new ${it.getPackage()}.${it.getImplementationName()}(bindingComponent, new android.view.View[]{view});")
+ tab("if (\"${it.tag}_0\".equals(tag)) {") {
+ if (it.isMerge) {
+ tab("return new ${it.`package`}.${it.implementationName}(bindingComponent, new android.view.View[]{view});")
} else {
- tab("return new ${it.getPackage()}.${it.getImplementationName()}(bindingComponent, view);")
+ tab("return new ${it.`package`}.${it.implementationName}(bindingComponent, view);")
}
} tab("}")
}
- tab("throw new java.lang.IllegalArgumentException(\"The tag for ${firstVal.getLayoutname()} is invalid. Received: \" + tag);");
+ tab("throw new java.lang.IllegalArgumentException(\"The tag for ${firstVal.layoutname} is invalid. Received: \" + tag);");
}tab("}")
}
@@ -66,19 +66,19 @@ class DataBinderWriter(val pkg: String, val projectPackage: String, val classNam
tab("android.databinding.ViewDataBinding getDataBinder(android.databinding.DataBindingComponent bindingComponent, android.view.View[] views, int layoutId) {") {
tab("switch(layoutId) {") {
- layoutBinders.filter{it.isMerge()}.groupBy{it.getLayoutname()}.forEach {
- val firstVal = it.value.get(0)
- tab("case ${firstVal.getModulePackage()}.R.layout.${firstVal.getLayoutname()}:") {
+ layoutBinders.filter{it.isMerge }.groupBy{it.layoutname }.forEach {
+ val firstVal = it.value[0]
+ tab("case ${firstVal.modulePackage}.R.layout.${firstVal.layoutname}:") {
if (it.value.size == 1) {
- tab("return new ${firstVal.getPackage()}.${firstVal.getImplementationName()}(bindingComponent, views);")
+ tab("return new ${firstVal.`package`}.${firstVal.implementationName}(bindingComponent, views);")
} else {
// we should check the tag to decide which layout we need to inflate
tab("{") {
tab("final Object tag = views[0].getTag();")
tab("if(tag == null) throw new java.lang.RuntimeException(\"view must have a tag\");")
it.value.forEach {
- tab("if (\"${it.getTag()}_0\".equals(tag)) {") {
- tab("return new ${it.getPackage()}.${it.getImplementationName()}(bindingComponent, views);")
+ tab("if (\"${it.tag}_0\".equals(tag)) {") {
+ tab("return new ${it.`package`}.${it.implementationName}(bindingComponent, views);")
} tab("}")
}
}tab("}")
@@ -99,11 +99,11 @@ class DataBinderWriter(val pkg: String, val projectPackage: String, val classNam
// String.hashCode is well defined in the API so we can rely on it being the same on the device and the host machine
tab("final int code = tag.hashCode();");
tab("switch(code) {") {
- layoutBinders.groupBy {"${it.getTag()}_0".hashCode()}.forEach {
+ layoutBinders.groupBy {"${it.tag}_0".hashCode()}.forEach {
tab("case ${it.key}:") {
it.value.forEach {
- tab("if(tag.equals(\"${it.getTag()}_0\"))") {
- tab("return ${it.getModulePackage()}.R.layout.${it.getLayoutname()};")
+ tab("if(tag.equals(\"${it.tag}_0\"))") {
+ tab("return ${it.modulePackage}.R.layout.${it.layoutname};")
}
}
tab("break;")
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/KCode.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/KCode.kt
index 906880a0..a9b282ac 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/KCode.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/KCode.kt
@@ -31,14 +31,14 @@ class KCode (private val s : String? = null){
private val indentCache = arrayListOf<String>()
fun indent(n: Int): String {
if (cachedIndentations.get(n)) {
- return indentCache.get(n)
+ return indentCache[n]
}
- val s = (0..n-1).fold(""){prev, next -> "${prev} "}
+ val s = (0..n-1).fold(""){prev, next -> "$prev "}
cachedIndentations.set(n, true )
while (indentCache.size <= n) {
indentCache.add("");
}
- indentCache.set(n, s)
+ indentCache[n] = s
return s
}
}
@@ -71,22 +71,12 @@ class KCode (private val s : String? = null){
return this
}
- fun nls(vararg codes : KCode?) : KCode {
- codes.forEach { nl(it) }
- return this
- }
-
- fun nls(codes : Collection<KCode?>) : KCode {
- codes.forEach { nl(it) }
- return this
- }
-
infix fun nl(c : KCode?) : KCode {
if (c == null || isNull(c)) {
return this
}
nodes.add(c)
- c!!.sameLine = true
+ c.sameLine = true
return this
}
@@ -98,16 +88,6 @@ class KCode (private val s : String? = null){
return nl(c)
}
- fun apps(glue : String = "", vararg codes : KCode?) : KCode {
- codes.forEach { app(glue, it)}
- return this
- }
-
- fun apps(glue : String = "", codes : Collection<KCode?>) : KCode {
- codes.forEach { app(glue, it)}
- return this
- }
-
fun app(glue : String = "", c : KCode?) : KCode {
if (isNull(c)) {
return this
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
index 324c2e9c..690a4d60 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
@@ -153,9 +153,9 @@ val Expr.fieldName by lazyProp { expr : Expr ->
}
val InverseBinding.fieldName by lazyProp { inverseBinding : InverseBinding ->
- val targetName = inverseBinding.getTarget().fieldName;
- val eventName = inverseBinding.getEventAttribute().stripNonJava()
- inverseBinding.getModel().getUniqueFieldName("${targetName}${eventName}", false)
+ val targetName = inverseBinding.target.fieldName;
+ val eventName = inverseBinding.eventAttribute.stripNonJava()
+ inverseBinding.model.getUniqueFieldName("$targetName$eventName", false)
}
val Expr.listenerClassName by lazyProp { expr : Expr ->
@@ -703,18 +703,18 @@ class LayoutBinderWriter(val layoutBinder : LayoutBinder) {
}
fun declareInverseBindingImpls() = kcode("// Inverse Binding Event Handlers") {
- layoutBinder.getSortedTargets().filter { it.isUsed() }.forEach { target ->
- target.getInverseBindings().forEach { inverseBinding ->
+ layoutBinder.sortedTargets.filter { it.isUsed }.forEach { target ->
+ target.inverseBindings.forEach { inverseBinding ->
val className : String
val param : String
- if (inverseBinding.isOnBinder()) {
+ if (inverseBinding.isOnBinder) {
className = "android.databinding.ViewDataBinding.PropertyChangedInverseListener"
param = "BR.${inverseBinding.eventAttribute}"
} else {
className = "android.databinding.InverseBindingListener"
param = ""
}
- nl("private ${className} ${inverseBinding.fieldName} = new ${className}(${param}) {") {
+ nl("private $className ${inverseBinding.fieldName} = new $className($param) {") {
tab("@Override")
tab("public void onChange() {") {
tab(inverseBinding.toJavaCode("mBindingComponent", mDirtyFlags)).app(";");
diff --git a/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java b/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
index 1bcc4df9..04813e16 100644
--- a/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
+++ b/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
@@ -1003,7 +1003,7 @@ public class ExprModelTest {
}
private List<Expr> getShouldRead() {
- return mExprModel.filterShouldRead(mExprModel.getPendingExpressions());
+ return ExprModel.filterShouldRead(mExprModel.getPendingExpressions());
}
public static class User implements Observable {