javapoet_ext.kt revision 3f426b1704c8037737ff3657d295ab23d978e9e2
12259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar/* 22259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * Copyright (C) 2016 The Android Open Source Project 32259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * 42259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 52259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * you may not use this file except in compliance with the License. 62259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * You may obtain a copy of the License at 72259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * 82259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 92259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * 102259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * Unless required by applicable law or agreed to in writing, software 112259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 122259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * See the License for the specific language governing permissions and 142259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar * limitations under the License. 152259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar */ 162259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar 1764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyarpackage android.arch.persistence.room.ext 182259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyar 198e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarimport com.squareup.javapoet.ArrayTypeName 208e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarimport com.squareup.javapoet.ClassName 218e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarimport com.squareup.javapoet.TypeName 228e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarimport javax.lang.model.type.TypeMirror 238e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarimport kotlin.reflect.KClass 248e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyar 252259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyarval L = "\$L" 262259e4dc433701d006db35df4c5e9f8d51e7d29bYigit Boyarval T = "\$T" 278e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarval N = "\$N" 288e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarval S = "\$S" 298e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyar 308e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarfun KClass<*>.typeName() = ClassName.get(this.java) 318e543c445cb5559e579f54c1ac00d0ca83ec3fbbYigit Boyarfun KClass<*>.arrayTypeName() = ArrayTypeName.of(typeName()) 32250a3e6dc5d50c533575b7d276730b89eecc7c19Yigit Boyarfun TypeMirror.typeName() = TypeName.get(this) 33250a3e6dc5d50c533575b7d276730b89eecc7c19Yigit Boyar 34efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyarobject SupportDbTypeNames { 3564db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val DB: ClassName = ClassName.get("android.arch.persistence.db", "SupportSQLiteDatabase") 366f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SQLITE_STMT: ClassName = 3764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteStatement") 386f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SQLITE_OPEN_HELPER: ClassName = 3964db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper") 406f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SQLITE_OPEN_HELPER_CALLBACK: ClassName = 4164db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper.Callback") 426f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SQLITE_OPEN_HELPER_FACTORY: ClassName = 4364db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper.Factory") 446f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SQLITE_OPEN_HELPER_CONFIG: ClassName = 4564db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper.Configuration") 466f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SQLITE_OPEN_HELPER_CONFIG_BUILDER: ClassName = 4764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", 4864db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar "SupportSQLiteOpenHelper.Configuration.Builder") 49de23b91b2c982ef5c93349b16415654ae3fe5ac9Yigit Boyar val QUERY: ClassName = 50de23b91b2c982ef5c93349b16415654ae3fe5ac9Yigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteQuery") 51efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar} 52efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar 53250a3e6dc5d50c533575b7d276730b89eecc7c19Yigit Boyarobject RoomTypeNames { 5464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val STRING_UTIL: ClassName = ClassName.get("android.arch.persistence.room.util", "StringUtil") 556f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val CURSOR_CONVERTER: ClassName = 5664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "CursorConverter") 576f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val ROOM: ClassName = ClassName.get("android.arch.persistence.room", "Room") 586f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val ROOM_DB: ClassName = ClassName.get("android.arch.persistence.room", "RoomDatabase") 596f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val ROOM_DB_CONFIG: ClassName = ClassName.get("android.arch.persistence.room", 60d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar "DatabaseConfiguration") 616f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val INSERTION_ADAPTER: ClassName = 6264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "EntityInsertionAdapter") 636f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val DELETE_OR_UPDATE_ADAPTER: ClassName = 6464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "EntityDeletionOrUpdateAdapter") 656f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val SHARED_SQLITE_STMT: ClassName = 6664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "SharedSQLiteStatement") 676f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val INVALIDATION_TRACKER: ClassName = 6864db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "InvalidationTracker") 696f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val INVALIDATION_OBSERVER: ClassName = 7064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.InvalidationTracker", "Observer") 716f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val ROOM_SQL_QUERY: ClassName = 7264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "RoomSQLiteQuery") 736f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val OPEN_HELPER: ClassName = 7464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "RoomOpenHelper") 75a64756a18111a7312b3fa03b76d13381a8907176Yigit Boyar val OPEN_HELPER_DELEGATE: ClassName = 7664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "RoomOpenHelper.Delegate") 776f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val TABLE_INFO: ClassName = 7864db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo") 796f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val TABLE_INFO_COLUMN: ClassName = 8064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo.Column") 816f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val TABLE_INFO_FOREIGN_KEY: ClassName = 8264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo.ForeignKey") 836f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val TABLE_INFO_INDEX: ClassName = 842db0875dfb15f3d909e7721bd97e3544d0fe9ae1Yigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo.Index") 856f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val LIMIT_OFFSET_DATA_SOURCE: ClassName = 869fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik ClassName.get("android.arch.persistence.room.paging", "LimitOffsetDataSource") 879fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik} 889fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik 899fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craikobject ArchTypeNames { 906f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val APP_EXECUTOR: ClassName = 91ae36c8b11a64d3cdc9ba6e37d9f3d1d250fdc4a8Yigit Boyar ClassName.get("android.arch.core.executor", "ArchTaskExecutor") 929fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik} 939fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik 949fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craikobject PagingTypeNames { 95abd098954d3fe996f336201ccb25884aaa34e07fYigit Boyar val DATA_SOURCE: ClassName = 96ef346ae131affbba6345e00d833103acc5743c8aChris Craik ClassName.get("android.arch.paging", "DataSource") 97dc60cacc66972b47f27acdf727332878ce5958aeChris Craik val POSITIONAL_DATA_SOURCE: ClassName = 98dc60cacc66972b47f27acdf727332878ce5958aeChris Craik ClassName.get("android.arch.paging", "PositionalDataSource") 99dc60cacc66972b47f27acdf727332878ce5958aeChris Craik val DATA_SOURCE_FACTORY: ClassName = 100dc60cacc66972b47f27acdf727332878ce5958aeChris Craik ClassName.get("android.arch.paging", "DataSource.Factory") 101846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar} 102846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar 103846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyarobject LifecyclesTypeNames { 10464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val LIVE_DATA: ClassName = ClassName.get("android.arch.lifecycle", "LiveData") 1056f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val COMPUTABLE_LIVE_DATA: ClassName = ClassName.get("android.arch.lifecycle", 106846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar "ComputableLiveData") 107efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar} 108efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar 109efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyarobject AndroidTypeNames { 1106f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val CURSOR: ClassName = ClassName.get("android.database", "Cursor") 1116f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val ARRAY_MAP: ClassName = ClassName.get("android.support.v4.util", "ArrayMap") 1123f426b1704c8037737ff3657d295ab23d978e9e2Yuichi Araki val BUILD: ClassName = ClassName.get("android.os", "Build") 113092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar} 114092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar 115092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyarobject CommonTypeNames { 116092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar val LIST = ClassName.get("java.util", "List") 117092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar val SET = ClassName.get("java.util", "Set") 1183a433f7ddbffa6131883cc3b23fc80edf54add19Yigit Boyar val STRING = ClassName.get("java.lang", "String") 1199fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik val INTEGER = ClassName.get("java.lang", "Integer") 120c1fa1f4c9d1d61e344d4310928014132cb4fa4f4Tyson Henning val OPTIONAL = ClassName.get("java.util", "Optional") 121250a3e6dc5d50c533575b7d276730b89eecc7c19Yigit Boyar} 1223c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar 12367ff17da9546803a38f8144b7a466a116e622866Tyson Henningobject GuavaBaseTypeNames { 12467ff17da9546803a38f8144b7a466a116e622866Tyson Henning val OPTIONAL = ClassName.get("com.google.common.base", "Optional") 12567ff17da9546803a38f8144b7a466a116e622866Tyson Henning} 12667ff17da9546803a38f8144b7a466a116e622866Tyson Henning 127f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henningobject GuavaUtilConcurrentTypeNames { 128f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henning val LISTENABLE_FUTURE = ClassName.get("com.google.common.util.concurrent", "ListenableFuture") 129f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henning} 130f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henning 1313c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyarobject RxJava2TypeNames { 1323c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar val FLOWABLE = ClassName.get("io.reactivex", "Flowable") 1330cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar val MAYBE = ClassName.get("io.reactivex", "Maybe") 1340cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar val SINGLE = ClassName.get("io.reactivex", "Single") 1353c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar} 1363c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar 1373c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyarobject ReactiveStreamsTypeNames { 1383c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar val PUBLISHER = ClassName.get("org.reactivestreams", "Publisher") 1393c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar} 1403c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar 141f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henningobject RoomGuavaTypeNames { 142f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henning val GUAVA_ROOM = ClassName.get("android.arch.persistence.room.guava", "GuavaRoom") 143f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henning} 144f1ae0061c85cdb02bd124f8f8c7a934aa75e62feTyson Henning 1453c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyarobject RoomRxJava2TypeNames { 14664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val RX_ROOM = ClassName.get("android.arch.persistence.room", "RxRoom") 1470cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar val RX_EMPTY_RESULT_SET_EXCEPTION = ClassName.get("android.arch.persistence.room", 1480cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar "EmptyResultSetException") 1493c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar} 150f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar 1516f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikasfun TypeName.defaultValue(): String { 152f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar return if (!isPrimitive) { 153f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar "null" 154f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar } else if (this == TypeName.BOOLEAN) { 155f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar "false" 156f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar } else { 157f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar "0" 158f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar } 159f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar} 160