code: public Object getProperty(PropertyKey key)
      {
          if (!isValidKey(key))
              throw new IllegalArgumentException("Key " + key + " is not valid for " + _mapClass);
  
  
          //
          // Look for the property value on the associated annotated element
          //
          Class propertySet = key.getPropertySet();
          Annotation annot = _annotElem.getAnnotation(propertySet);
          if (annot != null)
              return key.extractValue(annot);
  
          //
          // If the property supports inheritance and the annotated element is an interface,
          // then we'll search up the ControlInheritance/Extension hierachy to see if it is
          // provided higher up the chain.
          //
          if (propertySet.isAnnotationPresent(Inherited.class) && _annotElem instanceof Class)
          {
              Class controlIntf = (Class)_annotElem;
              do
              {
                  Class [] superIntfs = controlIntf.getInterfaces();
                  controlIntf = null;
                  for (int i = 0; i < superIntfs.length; i++)
                  {
                      if (superIntfs[i].isAnnotationPresent(ControlInterface.class) ||
                          superIntfs[i].isAnnotationPresent(ControlExtension.class))
                      {
                          controlIntf = superIntfs[i];
                          annot = controlIntf.getAnnotation(propertySet);
                          if (annot != null)
                              return key.extractValue(annot);
                      }
                  }
  
              }
              while (controlIntf != null);
          }
  
          //
          // Call up to superclass for delegation / default value
          //
          return super.getProperty(key);
      }
docs: Returns the property value specified by 'key' within this map.