1d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar/* 2d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Copyright (C) 2015 The Android Open Source Project 3d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 4d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * you may not use this file except in compliance with the License. 5d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * You may obtain a copy of the License at 6d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 7d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Unless required by applicable law or agreed to in writing, software 8d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 9d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * See the License for the specific language governing permissions and 11d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * limitations under the License. 12d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar */ 13d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 14fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.tool.reflection.java; 15d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.Bindable; 17fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.tool.reflection.ModelClass; 18fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.tool.reflection.ModelField; 19fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 2097d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyarimport java.lang.reflect.Field; 21fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mountimport java.lang.reflect.Modifier; 2297d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 23fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mountpublic class JavaField extends ModelField { 2497d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public final Field mField; 2597d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar 2697d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar public JavaField(Field field) { 2797d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar mField = field; 2897d6ddf47f4ff1abb3ed5201ce5232163f5325b1Yigit Boyar } 29fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 30fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount @Override 31fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public boolean isBindable() { 32fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount return mField.getAnnotation(Bindable.class) != null; 33fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount } 34fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 35fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount @Override 36fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public String getName() { 37fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount return mField.getName(); 38fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount } 39fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 40fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount @Override 41fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public boolean isPublic() { 42fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount return Modifier.isPublic(mField.getModifiers()); 43fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount } 44fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 45fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount @Override 46fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public boolean isStatic() { 47fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount return Modifier.isStatic(mField.getModifiers()); 48fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount } 49fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 50fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount @Override 51fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public boolean isFinal() { 52fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount return Modifier.isFinal(mField.getModifiers()); 53fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount } 54fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount 55fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount @Override 56fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount public ModelClass getFieldType() { 57fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount return new JavaClass(mField.getType()); 58fa9fe12980ef1103fabe33bf5ff0e2f53042a204George Mount } 59d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar} 60