1 8 9 15 package jfun.yan; 16 17 import jfun.yan.function.Function; 18 19 25 final class PropertyReader implements Function { 26 private final jfun.util.beans.Bean bean; 27 private final String prop; 28 29 30 PropertyReader(final jfun.util.beans.Bean bean, final String prop) { 31 this.bean = bean; 32 this.prop = prop; 33 } 34 35 public Object call(Object [] args) throws Throwable { 36 return bean.getProperty(prop); 37 } 38 public Class [] getParameterTypes() { 39 return Utils.no_params; 40 } 41 public Class getReturnType() { 42 return bean.getBeanType().getPropertyType(prop); 43 } 44 public boolean isConcrete(){ 45 return false; 46 } 47 public boolean equals(Object obj) { 48 if(obj instanceof PropertyReader){ 49 final PropertyReader other = (PropertyReader)obj; 50 return prop.equals(other.prop) && bean.equals(other.bean); 51 } 52 else return false; 53 } 54 public int hashCode() { 55 return bean.hashCode() * 31 + prop.hashCode(); 56 } 57 public String toString() { 58 return bean.toString() + "." + prop; 59 } 60 public String getName(){ 61 return prop; 62 } 63 } 64 | Popular Tags |