1275e7088223c097c1a2df718455bede42bc9efedYigit Boyar/* 2275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * Copyright (C) 2017 The Android Open Source Project 3275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * 4275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 5275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * you may not use this file except in compliance with the License. 6275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * You may obtain a copy of the License at 7275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * 8275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 9275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * 10275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * Unless required by applicable law or agreed to in writing, software 11275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 12275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * See the License for the specific language governing permissions and 14275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * limitations under the License. 15275e7088223c097c1a2df718455bede42bc9efedYigit Boyar */ 16275e7088223c097c1a2df718455bede42bc9efedYigit Boyar 17bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viverettepackage androidx.room.vo 18275e7088223c097c1a2df718455bede42bc9efedYigit Boyar 19bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.ext.hasAnyOf 20bdc4c86d3dff74f6634a38e2f7b316b0e823a2c8Alan Viveretteimport androidx.room.ext.typeName 21275e7088223c097c1a2df718455bede42bc9efedYigit Boyarimport com.squareup.javapoet.TypeName 22275e7088223c097c1a2df718455bede42bc9efedYigit Boyarimport javax.lang.model.element.ExecutableElement 23275e7088223c097c1a2df718455bede42bc9efedYigit Boyarimport javax.lang.model.element.Modifier 24275e7088223c097c1a2df718455bede42bc9efedYigit Boyarimport javax.lang.model.type.TypeMirror 25275e7088223c097c1a2df718455bede42bc9efedYigit Boyar 26275e7088223c097c1a2df718455bede42bc9efedYigit Boyar/** 27275e7088223c097c1a2df718455bede42bc9efedYigit Boyar * Generated when we parse a method annotated with TypeConverter. 28275e7088223c097c1a2df718455bede42bc9efedYigit Boyar */ 29275e7088223c097c1a2df718455bede42bc9efedYigit Boyardata class CustomTypeConverter(val type: TypeMirror, 306f1f5567abe765d30fda9c8fedce5617ecdeda9cAurimas Liutikas val method: ExecutableElement, 31275e7088223c097c1a2df718455bede42bc9efedYigit Boyar val from: TypeMirror, val to: TypeMirror) { 32275e7088223c097c1a2df718455bede42bc9efedYigit Boyar val typeName: TypeName by lazy { type.typeName() } 33275e7088223c097c1a2df718455bede42bc9efedYigit Boyar val fromTypeName: TypeName by lazy { from.typeName() } 34275e7088223c097c1a2df718455bede42bc9efedYigit Boyar val toTypeName: TypeName by lazy { to.typeName() } 35275e7088223c097c1a2df718455bede42bc9efedYigit Boyar val methodName by lazy { method.simpleName.toString() } 36275e7088223c097c1a2df718455bede42bc9efedYigit Boyar val isStatic by lazy { method.hasAnyOf(Modifier.STATIC) } 37275e7088223c097c1a2df718455bede42bc9efedYigit Boyar} 38