}
Method method = null;
boolean global = false;
PropertyMap pmap = omap.getPropertyMapFromName(methodName);
if (pmap == null)
pmap = omap.getPropertyMapFromName(lowerCaseFirst(methodName));
if (pmap == null)
pmap = omap.getPropertyMapFromName(capitalizeFirst(methodName));
// Check to see if it's globally defined
if (pmap == null)
{
pmap = config.getPropertyMapByName(methodName);
if (pmap == null)
pmap = config.getPropertyMapByName(lowerCaseFirst(methodName));
if (pmap == null)
pmap = config.getPropertyMapByName(capitalizeFirst(methodName));
if (pmap != null)
global = true;
}
StringBuffer trace = new StringBuffer(methodName);
if (pmap == null)
{
Object thisObject = instantiateObject(methodName);
Class superClass = null;
if (thisObject != null)
superClass = thisObject.getClass().getSuperclass();
while (superClass != null && pmap == null)
{
methodName = nameWithoutPackage(superClass.getName());
trace.append(" or ");
trace.append(methodName);
pmap = omap.getPropertyMapFromName(methodName);
if (pmap == null)
pmap = omap.getPropertyMapFromName(lowerCaseFirst(methodName));
// Check to see if it's globally defined
if (pmap == null)
{
pmap = config.getPropertyMapByName(methodName);
if (pmap == null)
pmap = config.getPropertyMapByName(capitalizeFirst(methodName));
if (pmap != null)
global = true;
}
superClass = superClass.getSuperclass();
}
}
if (pmap == null)
{
String error = EX_SETTER_NAME +" for " + trace.toString() + " in " + objectName;
logger.fine(error);
throw new SAXException(error);
}
if (pmap != null)
method = pmap.getSetter();
// If the setter method is undefined for this property map, then the
// property map was probably added to config programmatically or through
// a config file, rather than being generated from a class.
if (method == null && pmap != null)
{
// Guess what the setter might be
method = pmap.guessSetter(object);
// And cache the method if it's not a global property map
if (method != null && global == false)
pmap.setSetter(method);
}
try
{
propertyHelper.setAttribute(pmap, object, method, value);