javapoet_ext.kt revision abd098954d3fe996f336201ccb25884aaa34e07f
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") 3664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val SQLITE_STMT : ClassName = 3764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteStatement") 38d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar val SQLITE_OPEN_HELPER : ClassName = 3964db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper") 40d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar val SQLITE_OPEN_HELPER_CALLBACK : ClassName = 4164db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper.Callback") 42d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar val SQLITE_OPEN_HELPER_FACTORY : ClassName = 4364db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper.Factory") 44d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar val SQLITE_OPEN_HELPER_CONFIG : ClassName = 4564db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", "SupportSQLiteOpenHelper.Configuration") 46d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar val SQLITE_OPEN_HELPER_CONFIG_BUILDER : ClassName = 4764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.db", 4864db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar "SupportSQLiteOpenHelper.Configuration.Builder") 49efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar} 50efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar 51250a3e6dc5d50c533575b7d276730b89eecc7c19Yigit Boyarobject RoomTypeNames { 5264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val STRING_UTIL: ClassName = ClassName.get("android.arch.persistence.room.util", "StringUtil") 5364db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val CURSOR_CONVERTER : ClassName = 5464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "CursorConverter") 5564db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val ROOM : ClassName = ClassName.get("android.arch.persistence.room", "Room") 5664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val ROOM_DB : ClassName = ClassName.get("android.arch.persistence.room", "RoomDatabase") 5764db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val ROOM_DB_CONFIG : ClassName = ClassName.get("android.arch.persistence.room", 58d72e20e472815b7d0918e0d309cee48a71c7988bYigit Boyar "DatabaseConfiguration") 594f0db7db556b473393dfc31bba5ea67def574877Yigit Boyar val INSERTION_ADAPTER : ClassName = 6064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "EntityInsertionAdapter") 61958df7dd95c2cecf93cacef6998a4d7e8d39b7efYigit Boyar val DELETE_OR_UPDATE_ADAPTER : ClassName = 6264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "EntityDeletionOrUpdateAdapter") 633db6d309415576ef0080c29705dc30496636a986Yigit Boyar val SHARED_SQLITE_STMT : ClassName = 6464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "SharedSQLiteStatement") 6534e5031083f735db3a395b0f6aa430880b072d71Yigit Boyar val INVALIDATION_TRACKER : ClassName = 6664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "InvalidationTracker") 67846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar val INVALIDATION_OBSERVER : ClassName = 6864db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.InvalidationTracker", "Observer") 69b030dcb5b7a62854c0bfe85bf04eaf60caeb83bbYigit Boyar val ROOM_SQL_QUERY : ClassName = 7064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "RoomSQLiteQuery") 71a64756a18111a7312b3fa03b76d13381a8907176Yigit Boyar val OPEN_HELPER : ClassName = 7264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "RoomOpenHelper") 73a64756a18111a7312b3fa03b76d13381a8907176Yigit Boyar val OPEN_HELPER_DELEGATE: ClassName = 7464db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room", "RoomOpenHelper.Delegate") 753a433f7ddbffa6131883cc3b23fc80edf54add19Yigit Boyar val TABLE_INFO : ClassName = 7664db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo") 773a433f7ddbffa6131883cc3b23fc80edf54add19Yigit Boyar val TABLE_INFO_COLUMN : ClassName = 7864db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo.Column") 79ebdeee2c668f632384a7c9b3a098f0cccf88e7cdYigit Boyar val TABLE_INFO_FOREIGN_KEY : ClassName = 8064db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar ClassName.get("android.arch.persistence.room.util", "TableInfo.ForeignKey") 819fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik val LIMIT_OFFSET_DATA_SOURCE : ClassName = 829fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik ClassName.get("android.arch.persistence.room.paging", "LimitOffsetDataSource") 839fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik} 849fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik 859fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craikobject ArchTypeNames { 869fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik val APP_EXECUTOR : ClassName = 879fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik ClassName.get("android.arch.core.executor", "AppToolkitTaskExecutor") 889fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik} 899fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik 909fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craikobject PagingTypeNames { 91abd098954d3fe996f336201ccb25884aaa34e07fYigit Boyar val DATA_SOURCE: ClassName = 92ef346ae131affbba6345e00d833103acc5743c8aChris Craik ClassName.get("android.arch.paging", "DataSource") 93abd098954d3fe996f336201ccb25884aaa34e07fYigit Boyar val TILED_DATA_SOURCE: ClassName = 94abd098954d3fe996f336201ccb25884aaa34e07fYigit Boyar ClassName.get("android.arch.paging", "TiledDataSource") 9524418e9aafa6ae3128ae47cf7087eda46dae4f5dChris Craik val LIVE_PAGED_LIST_PROVIDER: ClassName = 96ef346ae131affbba6345e00d833103acc5743c8aChris Craik ClassName.get("android.arch.paging", "LivePagedListProvider") 979fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik 98846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar} 99846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar 100846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyarobject LifecyclesTypeNames { 10164db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val LIVE_DATA: ClassName = ClassName.get("android.arch.lifecycle", "LiveData") 10264db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val COMPUTABLE_LIVE_DATA : ClassName = ClassName.get("android.arch.lifecycle", 103846dfcf52e22de6d912f8ece05ff939c2c9bd154Yigit Boyar "ComputableLiveData") 104efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar} 105efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar 106efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyarobject AndroidTypeNames { 107efaf86afac3163868eda7f91a1c04e3f6e6d7520Yigit Boyar val CURSOR : ClassName = ClassName.get("android.database", "Cursor") 108092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar val ARRAY_MAP : ClassName = ClassName.get("android.support.v4.util", "ArrayMap") 109092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar} 110092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar 111092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyarobject CommonTypeNames { 112092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar val LIST = ClassName.get("java.util", "List") 113092164e5501d0a254001225acd9dca42e5fa57e9Yigit Boyar val SET = ClassName.get("java.util", "Set") 1143a433f7ddbffa6131883cc3b23fc80edf54add19Yigit Boyar val STRING = ClassName.get("java.lang", "String") 1159fd8e6171bbdc37f5516fe15b2d96f4ae926ef1aChris Craik val INTEGER = ClassName.get("java.lang", "Integer") 116250a3e6dc5d50c533575b7d276730b89eecc7c19Yigit Boyar} 1173c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar 1183c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyarobject RxJava2TypeNames { 1193c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar val FLOWABLE = ClassName.get("io.reactivex", "Flowable") 1200cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar val MAYBE = ClassName.get("io.reactivex", "Maybe") 1210cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar val SINGLE = ClassName.get("io.reactivex", "Single") 1223c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar} 1233c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar 1243c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyarobject ReactiveStreamsTypeNames { 1253c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar val PUBLISHER = ClassName.get("org.reactivestreams", "Publisher") 1263c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar} 1273c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar 1283c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyarobject RoomRxJava2TypeNames { 12964db0cc15b78b62a1d44a70fc8b4552e660d952cYigit Boyar val RX_ROOM = ClassName.get("android.arch.persistence.room", "RxRoom") 1300cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar val RX_EMPTY_RESULT_SET_EXCEPTION = ClassName.get("android.arch.persistence.room", 1310cf0bfe0e88f5d511a2a23495005c2da9ea91fd5Yigit Boyar "EmptyResultSetException") 1323c592c4ccbc6052b11443b0fa575052c08fefa55Yigit Boyar} 133f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar 134f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyarfun TypeName.defaultValue() : String { 135f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar return if (!isPrimitive) { 136f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar "null" 137f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar } else if (this == TypeName.BOOLEAN) { 138f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar "false" 139f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar } else { 140f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar "0" 141f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar } 142f8c3624579d5761a2d34a7199932492d267f5f85Yigit Boyar} 143