code: @SuppressWarnings("rawtypes")
  public static Object getMappedProperty(Object bean, String name, String key)
         throws IllegalAccessException, InvocationTargetException, NoSuchMethodException,Exception
     {
         if(bean == null)
             throw new IllegalArgumentException("No bean specified");
         if(name == null)
             throw new IllegalArgumentException("No name specified");
         if(key == null)
             throw new IllegalArgumentException("No key specified");
         
         Object result = null;
         PropertyDescriptor descriptor = getPropertyDescriptor(bean, name);
         if(descriptor == null)
             throw new NoSuchMethodException("Unknown property '" + name + "'");
         if(descriptor instanceof JBPropertyDescriber)
         {
             Method readMethod = ((JBPropertyDescriber)descriptor).getMappedReadMethod();
             if(readMethod != null)
             {
                 Object keyArray[] = new Object[1];
                 keyArray[0] = key;
                 result = readMethod.invoke(bean, keyArray);
             } else
             {
                 throw new NoSuchMethodException("Property '" + name + "' has no mapped getter method");
             }
         } else
         {
             Method readMethod = descriptor.getReadMethod();
             if(readMethod != null)
             {
                 Object invokeResult = readMethod.invoke(bean, new Object[0]);
                 if(invokeResult instanceof Map)
                     result = ((Map)invokeResult).get(key);
             } else
             {
                 throw new NoSuchMethodException("Property '" + name + "' has no mapped getter method");
             }
         }
         return result;
     }
docs: ----------------------------------------------------