code: protected void setMapClass(Class mapClass)
      {
          //
          // If the provided map class is a ControlBean type, then locate associated control
          // interface or extension that defines properties.
          //
          if (ControlBean.class.isAssignableFrom(mapClass))
          {
              Class [] intfs = mapClass.getInterfaces();
              for (int i = 0; i < intfs.length; i++)
              {
                  if (intfs[i].isAnnotationPresent(ControlInterface.class) ||
                      intfs[i].isAnnotationPresent(ControlExtension.class))
                  {
                      mapClass = intfs[i];
                      break;
                  }
              }
          }
          else
          {
              if (!mapClass.isAnnotation() &&
                  !mapClass.isAnnotationPresent(ControlInterface.class) &&
                  !mapClass.isAnnotationPresent(ControlExtension.class))
                  throw new IllegalArgumentException(mapClass+" must be Control or annotation type");
          }
  
          _mapClass = mapClass;
      }
docs: Sets the PropertySet or Control interface associated with this map.  Only properties
  declared by the PropertySet or one of the PropertySets on the Control interface may
  be used with this map.