11b9940e612fc73202837fbe9db2f9035f307b5d1George Mount/* 21b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * Copyright (C) 2015 The Android Open Source Project 31b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * 41b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * Licensed under the Apache License, Version 2.0 (the "License"); 51b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * you may not use this file except in compliance with the License. 61b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * You may obtain a copy of the License at 71b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * 81b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * http://www.apache.org/licenses/LICENSE-2.0 91b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * 101b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * Unless required by applicable law or agreed to in writing, software 111b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * distributed under the License is distributed on an "AS IS" BASIS, 121b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * See the License for the specific language governing permissions and 141b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * limitations under the License. 151b9940e612fc73202837fbe9db2f9035f307b5d1George Mount */ 16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.tool.reflection; 171b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 18fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mountpublic abstract class ModelField { 19fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 20fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount /** 21fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount * @return Whether this field has been annotated with Bindable. 22fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount */ 23fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public abstract boolean isBindable(); 24fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 25fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount /** 26fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount * @return The field name. 27fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount */ 28fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public abstract String getName(); 29fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 30fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount /** 31fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount * @return true if this field is marked public. 32fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount */ 33fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public abstract boolean isPublic(); 34fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 35fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount /** 36fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount * @return true if this is a static field. 37fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount */ 38fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public abstract boolean isStatic(); 39fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 40fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount /** 41fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount * @return true if the field was declared final. 42fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount */ 43fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public abstract boolean isFinal(); 44fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 45fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount /** 46fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount * @return The declared type of the field variable. 47fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount */ 48fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public abstract ModelClass getFieldType(); 491b9940e612fc73202837fbe9db2f9035f307b5d1George Mount} 50