in src/java/org/apache/fulcrum/intake/IntakeServiceImpl.java [642:687]
public Method getFieldGetter(String className, String propName)
throws ClassNotFoundException, IntrospectionException
{
Map<String, Method> gettersForClassName = getterMap.get(className);
if (gettersForClassName == null)
{
throw new IntrospectionException("No getter Map for " + className
+ " available!");
}
Method getter = gettersForClassName.get(propName);
if (getter == null)
{
PropertyDescriptor pd = null;
synchronized (getterMap)
{
pd = new PropertyDescriptor(propName, Class.forName(className));
getter = pd.getReadMethod();
gettersForClassName.put(propName, getter);
if (getter == null)
{
getLogger().error(
"Intake: getter for '" + propName + "' in class '"
+ className + "' could not be found.");
}
}
// we have already completed the reflection on the setter, so
// save it so we do not have to repeat
synchronized (setterMap)
{
Map<String, Method> settersForClassName = getterMap.get(className);
if (settersForClassName != null)
{
Method setter = pd.getWriteMethod();
if (setter != null)
{
settersForClassName.put(propName, setter);
}
}
}
}
return getter;
}