code: public void set(Object object, String attributeName, Object attributeValue)
          throws IllegalAccessException, InvocationTargetException, 
                 BeanContextException
      {
          Class<?> objectClass = object.getClass();
          String methodName = 
              "set" + attributeName.substring(0,1).toUpperCase() + 
              attributeName.substring(1);
          
          String methodKey = objectClass.getName() + "." + methodName;
          MethodTypePair pair = mMethodTypePairMap.get(methodKey);
          if (pair == null) {
              pair = getMethodTypePair(objectClass, methodName, attributeValue);
              mMethodTypePairMap.put(methodKey, pair);
          }
          
          if (pair != null) {        
              Object[] params = {convertObjectType(attributeValue, pair.type)};
              pair.method.invoke(object, params);            
          } else {
              throw new BeanContextException
              (
                  methodName + "(" + 
                  (attributeValue == null ? "null" : attributeValue.getClass()) + 
                  ") could not be found."
              );
          }
      }
docs: Method to set attributes of an object.  This method may be
  called to set the values of an object by passing in the object,
  the attribute name to set, and the attribute value.  To get a
  listing of attribute values that can be set for a given object,
  see the createObject method for the object.
  
  @param object The object to set an attribute value for.
  @param attributeName The name of the attribute to set.
  @param attributeValue The value of the attribute to set.