code: public AptControlInterface getMostDerivedInterface()
      {
          //
          // Walk up ControlInterface chain looking for the 1st instance annotated
          // w/ @ControlInterface (as opposed to @ControlExtension)
          //
          // REVIEW: TBD rules for inheritance of @ControlInterface will affect this.
          // Probably need to keep walking and examine each @ControlInterface in the chain.
          // Run all checkers in chain?  Make checkers responsible for invoking their base
          // class-defined checkers?
          //
  
          AptControlInterface ancestor = getSuperClass();
          while (ancestor != null)
          {
              if (!ancestor.isExtension())
                  break;
  
              ancestor = ancestor.getSuperClass();
          }
  
          return ancestor;
      }
docs: Returns the most-derived interface in the inheritance chain that is annotated
  with @ControlInterface.  It represents the point in the inheritance chain
  where @ControlInterface becomes @ControlExtension (i.e., anything interface derived from
  the 'most-derived interface' is annotated with @ControlExtension).  May return
  null if the inheritance chain is malformed.