From 860a2fc4aa6f1006d0d19e1285b512cd1ffae395 Mon Sep 17 00:00:00 2001 From: George Mount Date: Tue, 27 Jan 2015 10:58:49 -0800 Subject: [PATCH] Project renaming --- .../annotationprocessor/build.gradle | 2 +- .../{annotations => baseLibrary}/build.gradle | 2 +- .../main/java/android/binding/Bindable.java | 0 .../java/android/binding/BindingAdapter.java | 0 .../android/binding/BindingConversion.java | 0 .../java/android/binding/BindingMethod.java | 0 .../java/android/binding/BindingMethods.java | 0 tools/data-binding/compiler/build.gradle | 6 +- .../BindingExpression.g4 | 0 .../build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../gradlew | 0 .../gradlew.bat | 0 .../databinding/BindingExpression.tokens | 0 .../BindingExpressionBaseListener.java | 0 .../BindingExpressionBaseVisitor.java | 0 .../databinding/BindingExpressionLexer.java | 0 .../databinding/BindingExpressionLexer.tokens | 0 .../BindingExpressionListener.java | 0 .../databinding/BindingExpressionParser.java | 0 .../databinding/BindingExpressionVisitor.java | 0 .../com/android/databinding/DataBinder.tokens | 0 .../databinding/DataBinderBaseListener.java | 0 .../databinding/DataBinderBaseVisitor.java | 0 .../android/databinding/DataBinderLexer.java | 0 .../databinding/DataBinderLexer.tokens | 0 .../databinding/DataBinderListener.java | 0 .../android/databinding/DataBinderParser.java | 0 .../databinding/DataBinderVisitor.java | 0 .../com/android/databinder/parser/Main.java | 0 .../BindingExpressionParserTest.java | 0 tools/data-binding/library/build.gradle | 11 +- .../library/CallbackRegistryTest.java | 314 ++++++++++++++++++ .../samples/BindingDemo/app/build.gradle | 2 +- tools/data-binding/settings.gradle | 8 +- .../{xmlGrammer => xmlGrammar}/XMLLexer.g4 | 0 .../{xmlGrammer => xmlGrammar}/XMLParser.g4 | 0 .../{xmlGrammer => xmlGrammar}/build.gradle | 0 .../com/android/databinding/XMLLexer.java | 0 .../com/android/databinding/XMLLexer.tokens | 0 .../com/android/databinding/XMLParser.java | 0 .../com/android/databinding/XMLParser.tokens | 0 .../databinding/XMLParserBaseListener.java | 0 .../databinding/XMLParserBaseVisitor.java | 0 .../databinding/XMLParserListener.java | 0 .../android/databinding/XMLParserVisitor.java | 0 .../src/main/kotlin/xmlEditorTest.kt | 0 48 files changed, 334 insertions(+), 13 deletions(-) rename tools/data-binding/{annotations => baseLibrary}/build.gradle (96%) rename tools/data-binding/{annotations => baseLibrary}/src/main/java/android/binding/Bindable.java (100%) rename tools/data-binding/{annotations => baseLibrary}/src/main/java/android/binding/BindingAdapter.java (100%) rename tools/data-binding/{annotations => baseLibrary}/src/main/java/android/binding/BindingConversion.java (100%) rename tools/data-binding/{annotations => baseLibrary}/src/main/java/android/binding/BindingMethod.java (100%) rename tools/data-binding/{annotations => baseLibrary}/src/main/java/android/binding/BindingMethods.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/BindingExpression.g4 (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/build.gradle (96%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/gradle/wrapper/gradle-wrapper.jar (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/gradle/wrapper/gradle-wrapper.properties (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/gradlew (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/gradlew.bat (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpression.tokens (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionBaseListener.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionBaseVisitor.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionLexer.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionLexer.tokens (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionListener.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionParser.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/BindingExpressionVisitor.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinder.tokens (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderBaseListener.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderBaseVisitor.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderLexer.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderLexer.tokens (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderListener.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderParser.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java-gen/com/android/databinding/DataBinderVisitor.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/main/java/com/android/databinder/parser/Main.java (100%) rename tools/data-binding/{grammerBuilder => grammarBuilder}/src/test/java/com/android/databinding/BindingExpressionParserTest.java (100%) create mode 100644 tools/data-binding/library/src/test/java/com/android/databinding/library/CallbackRegistryTest.java rename tools/data-binding/{xmlGrammer => xmlGrammar}/XMLLexer.g4 (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/XMLParser.g4 (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/build.gradle (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLLexer.java (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLLexer.tokens (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLParser.java (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLParser.tokens (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLParserBaseListener.java (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLParserBaseVisitor.java (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLParserListener.java (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/java/com/android/databinding/XMLParserVisitor.java (100%) rename tools/data-binding/{xmlGrammer => xmlGrammar}/src/main/kotlin/xmlEditorTest.kt (100%) diff --git a/tools/data-binding/annotationprocessor/build.gradle b/tools/data-binding/annotationprocessor/build.gradle index a6cd563c84602..7e478b20fa2c3 100644 --- a/tools/data-binding/annotationprocessor/build.gradle +++ b/tools/data-binding/annotationprocessor/build.gradle @@ -37,7 +37,7 @@ sourceSets { } dependencies { - compile project(":annotations") + compile project(":baseLibrary") compile project(":compiler") } diff --git a/tools/data-binding/annotations/build.gradle b/tools/data-binding/baseLibrary/build.gradle similarity index 96% rename from tools/data-binding/annotations/build.gradle rename to tools/data-binding/baseLibrary/build.gradle index 8b3ba9eb4986c..73c8970a2bf7d 100644 --- a/tools/data-binding/annotations/build.gradle +++ b/tools/data-binding/baseLibrary/build.gradle @@ -41,7 +41,7 @@ uploadArchives { mavenDeployer { repository(url: mavenLocal().url) pom.version = '0.3-SNAPSHOT' - pom.artifactId = 'annotations' + pom.artifactId = 'baseLibrary' pom.groupId='com.android.databinding' } } diff --git a/tools/data-binding/annotations/src/main/java/android/binding/Bindable.java b/tools/data-binding/baseLibrary/src/main/java/android/binding/Bindable.java similarity index 100% rename from tools/data-binding/annotations/src/main/java/android/binding/Bindable.java rename to tools/data-binding/baseLibrary/src/main/java/android/binding/Bindable.java diff --git a/tools/data-binding/annotations/src/main/java/android/binding/BindingAdapter.java b/tools/data-binding/baseLibrary/src/main/java/android/binding/BindingAdapter.java similarity index 100% rename from tools/data-binding/annotations/src/main/java/android/binding/BindingAdapter.java rename to tools/data-binding/baseLibrary/src/main/java/android/binding/BindingAdapter.java diff --git a/tools/data-binding/annotations/src/main/java/android/binding/BindingConversion.java b/tools/data-binding/baseLibrary/src/main/java/android/binding/BindingConversion.java similarity index 100% rename from tools/data-binding/annotations/src/main/java/android/binding/BindingConversion.java rename to tools/data-binding/baseLibrary/src/main/java/android/binding/BindingConversion.java diff --git a/tools/data-binding/annotations/src/main/java/android/binding/BindingMethod.java b/tools/data-binding/baseLibrary/src/main/java/android/binding/BindingMethod.java similarity index 100% rename from tools/data-binding/annotations/src/main/java/android/binding/BindingMethod.java rename to tools/data-binding/baseLibrary/src/main/java/android/binding/BindingMethod.java diff --git a/tools/data-binding/annotations/src/main/java/android/binding/BindingMethods.java b/tools/data-binding/baseLibrary/src/main/java/android/binding/BindingMethods.java similarity index 100% rename from tools/data-binding/annotations/src/main/java/android/binding/BindingMethods.java rename to tools/data-binding/baseLibrary/src/main/java/android/binding/BindingMethods.java diff --git a/tools/data-binding/compiler/build.gradle b/tools/data-binding/compiler/build.gradle index 5b169f4755d60..5b8f742e504e6 100644 --- a/tools/data-binding/compiler/build.gradle +++ b/tools/data-binding/compiler/build.gradle @@ -35,9 +35,9 @@ dependencies { compile 'org.apache.commons:commons-lang3:3.3.2' compile 'com.google.guava:guava:18.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" - compile project(":annotations") - compile project(":grammerBuilder") - compile project(":xmlGrammer") + compile project(":baseLibrary") + compile project(":grammarBuilder") + compile project(":xmlGrammar") } uploadArchives { repositories { diff --git a/tools/data-binding/grammerBuilder/BindingExpression.g4 b/tools/data-binding/grammarBuilder/BindingExpression.g4 similarity index 100% rename from tools/data-binding/grammerBuilder/BindingExpression.g4 rename to tools/data-binding/grammarBuilder/BindingExpression.g4 diff --git a/tools/data-binding/grammerBuilder/build.gradle b/tools/data-binding/grammarBuilder/build.gradle similarity index 96% rename from tools/data-binding/grammerBuilder/build.gradle rename to tools/data-binding/grammarBuilder/build.gradle index a83a2a5c14161..7c86f4545448c 100644 --- a/tools/data-binding/grammerBuilder/build.gradle +++ b/tools/data-binding/grammarBuilder/build.gradle @@ -48,7 +48,7 @@ uploadArchives { repositories { mavenDeployer { repository(url: mavenLocal().url) - pom.artifactId = 'grammerBuilder' + pom.artifactId = 'grammarBuilder' } } } diff --git a/tools/data-binding/grammerBuilder/gradle/wrapper/gradle-wrapper.jar b/tools/data-binding/grammarBuilder/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from tools/data-binding/grammerBuilder/gradle/wrapper/gradle-wrapper.jar rename to tools/data-binding/grammarBuilder/gradle/wrapper/gradle-wrapper.jar diff --git a/tools/data-binding/grammerBuilder/gradle/wrapper/gradle-wrapper.properties b/tools/data-binding/grammarBuilder/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from tools/data-binding/grammerBuilder/gradle/wrapper/gradle-wrapper.properties rename to tools/data-binding/grammarBuilder/gradle/wrapper/gradle-wrapper.properties diff --git a/tools/data-binding/grammerBuilder/gradlew b/tools/data-binding/grammarBuilder/gradlew similarity index 100% rename from tools/data-binding/grammerBuilder/gradlew rename to tools/data-binding/grammarBuilder/gradlew diff --git a/tools/data-binding/grammerBuilder/gradlew.bat b/tools/data-binding/grammarBuilder/gradlew.bat similarity index 100% rename from tools/data-binding/grammerBuilder/gradlew.bat rename to tools/data-binding/grammarBuilder/gradlew.bat diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpression.tokens b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpression.tokens similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpression.tokens rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpression.tokens diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseListener.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseListener.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseListener.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseListener.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseVisitor.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseVisitor.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseVisitor.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionBaseVisitor.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.tokens b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.tokens similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.tokens rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionLexer.tokens diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionListener.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionListener.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionListener.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionListener.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionParser.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionParser.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionParser.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionParser.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionVisitor.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionVisitor.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/BindingExpressionVisitor.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/BindingExpressionVisitor.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinder.tokens b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinder.tokens similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinder.tokens rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinder.tokens diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseListener.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseListener.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseListener.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseListener.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseVisitor.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseVisitor.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseVisitor.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderBaseVisitor.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.tokens b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.tokens similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.tokens rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderLexer.tokens diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderListener.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderListener.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderListener.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderListener.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderParser.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderParser.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderParser.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderParser.java diff --git a/tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderVisitor.java b/tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderVisitor.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java-gen/com/android/databinding/DataBinderVisitor.java rename to tools/data-binding/grammarBuilder/src/main/java-gen/com/android/databinding/DataBinderVisitor.java diff --git a/tools/data-binding/grammerBuilder/src/main/java/com/android/databinder/parser/Main.java b/tools/data-binding/grammarBuilder/src/main/java/com/android/databinder/parser/Main.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/main/java/com/android/databinder/parser/Main.java rename to tools/data-binding/grammarBuilder/src/main/java/com/android/databinder/parser/Main.java diff --git a/tools/data-binding/grammerBuilder/src/test/java/com/android/databinding/BindingExpressionParserTest.java b/tools/data-binding/grammarBuilder/src/test/java/com/android/databinding/BindingExpressionParserTest.java similarity index 100% rename from tools/data-binding/grammerBuilder/src/test/java/com/android/databinding/BindingExpressionParserTest.java rename to tools/data-binding/grammarBuilder/src/test/java/com/android/databinding/BindingExpressionParserTest.java diff --git a/tools/data-binding/library/build.gradle b/tools/data-binding/library/build.gradle index 1359956bb52cc..f2dc745bc9de9 100644 --- a/tools/data-binding/library/build.gradle +++ b/tools/data-binding/library/build.gradle @@ -31,6 +31,7 @@ buildscript { apply plugin: 'com.android.library' apply plugin: 'maven' + android { compileSdkVersion 21 buildToolsVersion "21.1" @@ -52,10 +53,16 @@ android { } } } - +sourceSets { + test { + java { + srcDir 'src/test/java' + } + } +} dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile project(":annotations") + compile project(":baseLibrary") provided 'com.android.support:cardview-v7:+' provided 'com.android.support:appcompat-v7:+' provided project(":annotationprocessor") diff --git a/tools/data-binding/library/src/test/java/com/android/databinding/library/CallbackRegistryTest.java b/tools/data-binding/library/src/test/java/com/android/databinding/library/CallbackRegistryTest.java new file mode 100644 index 0000000000000..56f0599fa8a3b --- /dev/null +++ b/tools/data-binding/library/src/test/java/com/android/databinding/library/CallbackRegistryTest.java @@ -0,0 +1,314 @@ +/* + * 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 com.android.databinding.library; + +import org.junit.Test; + +import static org.junit.Assert.*; + +import java.util.ArrayList; + +public class CallbackRegistryTest { + + final Integer callback1 = 1; + final Integer callback2 = 2; + final Integer callback3 = 3; + + CallbackRegistry registry; + + int notify1; + int notify2; + int notify3; + + int[] deepNotifyCount = new int[300]; + + Integer argValue; + + private void addNotifyCount(Integer callback) { + if (callback == callback1) { + notify1++; + } else if (callback == callback2) { + notify2++; + } else if (callback == callback3) { + notify3++; + } + deepNotifyCount[callback]++; + } + + @Test + public void testAddListener() { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg, Integer arg2) { + } + }; + registry = new CallbackRegistry(notifier); + Integer callback = 0; + + assertNotNull(registry.copyListeners()); + assertEquals(0, registry.copyListeners().size()); + + registry.add(callback); + ArrayList callbacks = registry.copyListeners(); + assertEquals(1, callbacks.size()); + assertEquals(callback, callbacks.get(0)); + + registry.add(callback); + callbacks = registry.copyListeners(); + assertEquals(1, callbacks.size()); + assertEquals(callback, callbacks.get(0)); + + Integer otherListener = 1; + registry.add(otherListener); + callbacks = registry.copyListeners(); + assertEquals(2, callbacks.size()); + assertEquals(callback, callbacks.get(0)); + assertEquals(otherListener, callbacks.get(1)); + + registry.remove(callback); + registry.add(callback); + callbacks = registry.copyListeners(); + assertEquals(2, callbacks.size()); + assertEquals(callback, callbacks.get(1)); + assertEquals(otherListener, callbacks.get(0)); + } + + @Test + public void testSimpleNotify() { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + assertEquals(arg1, (int) arg); + addNotifyCount(callback); + argValue = arg; + } + }; + registry = new CallbackRegistry(notifier); + registry.add(callback2); + Integer arg = 1; + registry.notifyCallbacks(this, arg, arg); + assertEquals(arg, argValue); + assertEquals(1, notify2); + } + + @Test + public void testRemoveWhileNotifying() { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + addNotifyCount(callback); + if (callback == callback1) { + registry.remove(callback1); + registry.remove(callback2); + } + } + }; + registry = new CallbackRegistry(notifier); + registry.add(callback1); + registry.add(callback2); + registry.add(callback3); + registry.notifyCallbacks(this, 0, null); + assertEquals(1, notify1); + assertEquals(1, notify2); + assertEquals(1, notify3); + + ArrayList callbacks = registry.copyListeners(); + assertEquals(1, callbacks.size()); + assertEquals(callback3, callbacks.get(0)); + } + + @Test + public void testDeepRemoveWhileNotifying() { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + addNotifyCount(callback); + registry.remove(callback); + registry.notifyCallbacks(CallbackRegistryTest.this, arg1, null); + } + }; + registry = new CallbackRegistry(notifier); + registry.add(callback1); + registry.add(callback2); + registry.add(callback3); + registry.notifyCallbacks(this, 0, null); + assertEquals(1, notify1); + assertEquals(2, notify2); + assertEquals(3, notify3); + + ArrayList callbacks = registry.copyListeners(); + assertEquals(0, callbacks.size()); + } + + @Test + public void testAddRemovedListener() { + + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + addNotifyCount(callback); + if (callback == callback1) { + registry.remove(callback2); + } else if (callback == callback3) { + registry.add(callback2); + } + } + }; + registry = new CallbackRegistry(notifier); + + registry.add(callback1); + registry.add(callback2); + registry.add(callback3); + registry.notifyCallbacks(this, 0, null); + + ArrayList callbacks = registry.copyListeners(); + assertEquals(3, callbacks.size()); + assertEquals(callback1, callbacks.get(0)); + assertEquals(callback3, callbacks.get(1)); + assertEquals(callback2, callbacks.get(2)); + assertEquals(1, notify1); + assertEquals(1, notify2); + assertEquals(1, notify3); + } + + @Test + public void testVeryDeepRemoveWhileNotifying() { + final Integer[] callbacks = new Integer[deepNotifyCount.length]; + for (int i = 0; i < callbacks.length; i++) { + callbacks[i] = i; + } + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + addNotifyCount(callback); + registry.remove(callback); + registry.remove(callbacks[callbacks.length - callback - 1]); + registry.notifyCallbacks(CallbackRegistryTest.this, arg1, null); + } + }; + registry = new CallbackRegistry(notifier); + for (int i = 0; i < callbacks.length; i++) { + registry.add(callbacks[i]); + } + registry.notifyCallbacks(this, 0, null); + for (int i = 0; i < deepNotifyCount.length; i++) { + int expectedCount = Math.min(i + 1, deepNotifyCount.length - i); + assertEquals(expectedCount, deepNotifyCount[i]); + } + + ArrayList callbackList = registry.copyListeners(); + assertEquals(0, callbackList.size()); + } + + @Test + public void testClear() { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + addNotifyCount(callback); + } + }; + registry = new CallbackRegistry(notifier); + for (int i = 0; i < deepNotifyCount.length; i++) { + registry.add(i); + } + registry.clear(); + + ArrayList callbackList = registry.copyListeners(); + assertEquals(0, callbackList.size()); + + registry.notifyCallbacks(this, 0, null); + for (int i = 0; i < deepNotifyCount.length; i++) { + assertEquals(0, deepNotifyCount[i]); + } + } + + @Test + public void testNestedClear() { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg1, Integer arg) { + addNotifyCount(callback); + registry.clear(); + } + }; + registry = new CallbackRegistry(notifier); + for (int i = 0; i < deepNotifyCount.length; i++) { + registry.add(i); + } + registry.notifyCallbacks(this, 0, null); + for (int i = 0; i < deepNotifyCount.length; i++) { + assertEquals(1, deepNotifyCount[i]); + } + + ArrayList callbackList = registry.copyListeners(); + assertEquals(0, callbackList.size()); + } + + @Test + public void testIsEmpty() throws Exception { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg, Integer arg2) { + } + }; + registry = new CallbackRegistry(notifier); + Integer callback = 0; + + assertTrue(registry.isEmpty()); + registry.add(callback); + assertFalse(registry.isEmpty()); + } + + @Test + public void testClone() throws Exception { + CallbackRegistry.NotifierCallback notifier = + new CallbackRegistry.NotifierCallback() { + @Override + public void onNotifyCallback(Integer callback, CallbackRegistryTest sender, + int arg, Integer arg2) { + } + }; + registry = new CallbackRegistry(notifier); + + assertTrue(registry.isEmpty()); + CallbackRegistry registry2 = registry.clone(); + Integer callback = 0; + registry.add(callback); + assertFalse(registry.isEmpty()); + assertTrue(registry2.isEmpty()); + registry2 = registry.clone(); + assertFalse(registry2.isEmpty()); + } +} \ No newline at end of file diff --git a/tools/data-binding/samples/BindingDemo/app/build.gradle b/tools/data-binding/samples/BindingDemo/app/build.gradle index 731d4e210f9ec..a2d1be0ccfeb6 100644 --- a/tools/data-binding/samples/BindingDemo/app/build.gradle +++ b/tools/data-binding/samples/BindingDemo/app/build.gradle @@ -59,7 +59,7 @@ dependencies { compile 'com.android.support:recyclerview-v7:21.0.2' compile 'com.android.support:gridlayout-v7:21.+' compile 'com.android.support:cardview-v7:21.+' - compile 'com.android.databinding:annotations:0.3-SNAPSHOT' + compile 'com.android.databinding:baseLibrary:0.3-SNAPSHOT' //provided 'com.android.databinding:compiler:0.3-SNAPSHOT' provided 'com.android.databinding:annotationprocessor:0.3-SNAPSHOT' provided fileTree(dir : 'build/databinder/src', include : ['*.java']) diff --git a/tools/data-binding/settings.gradle b/tools/data-binding/settings.gradle index 374e1730abc40..f3b2c33c7abda 100644 --- a/tools/data-binding/settings.gradle +++ b/tools/data-binding/settings.gradle @@ -1,8 +1,8 @@ -include ':library' +include ':library', ':baseLibrary' include ':compiler' include ':gradlePlugin' -include ':annotations' -include ':grammerBuilder' +include ':baseLibrary' +include ':grammarBuilder' include ':annotationprocessor' -include ':xmlGrammer' +include ':xmlGrammar' include ':TestApp' diff --git a/tools/data-binding/xmlGrammer/XMLLexer.g4 b/tools/data-binding/xmlGrammar/XMLLexer.g4 similarity index 100% rename from tools/data-binding/xmlGrammer/XMLLexer.g4 rename to tools/data-binding/xmlGrammar/XMLLexer.g4 diff --git a/tools/data-binding/xmlGrammer/XMLParser.g4 b/tools/data-binding/xmlGrammar/XMLParser.g4 similarity index 100% rename from tools/data-binding/xmlGrammer/XMLParser.g4 rename to tools/data-binding/xmlGrammar/XMLParser.g4 diff --git a/tools/data-binding/xmlGrammer/build.gradle b/tools/data-binding/xmlGrammar/build.gradle similarity index 100% rename from tools/data-binding/xmlGrammer/build.gradle rename to tools/data-binding/xmlGrammar/build.gradle diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLLexer.java b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLLexer.java similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLLexer.java rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLLexer.java diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLLexer.tokens b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLLexer.tokens similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLLexer.tokens rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLLexer.tokens diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParser.java b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParser.java similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParser.java rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParser.java diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParser.tokens b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParser.tokens similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParser.tokens rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParser.tokens diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserBaseListener.java b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserBaseListener.java similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserBaseListener.java rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserBaseListener.java diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserBaseVisitor.java b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserBaseVisitor.java similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserBaseVisitor.java rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserBaseVisitor.java diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserListener.java b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserListener.java similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserListener.java rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserListener.java diff --git a/tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserVisitor.java b/tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserVisitor.java similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/java/com/android/databinding/XMLParserVisitor.java rename to tools/data-binding/xmlGrammar/src/main/java/com/android/databinding/XMLParserVisitor.java diff --git a/tools/data-binding/xmlGrammer/src/main/kotlin/xmlEditorTest.kt b/tools/data-binding/xmlGrammar/src/main/kotlin/xmlEditorTest.kt similarity index 100% rename from tools/data-binding/xmlGrammer/src/main/kotlin/xmlEditorTest.kt rename to tools/data-binding/xmlGrammar/src/main/kotlin/xmlEditorTest.kt