code: public boolean declaresInterface(ClassNode classNode) {
          ClassNode[] interfaces = redirect().getInterfaces();
          for (ClassNode cn : interfaces) {
              if (cn.equals(classNode)) return true;
          }
          for (ClassNode cn : interfaces) {
              if (cn.declaresInterface(classNode)) return true;
          }
          return false;
      }
docs: @param classNode the class node for the interface
  @return true if this class declares that it implements the given interface
  or if one of its interfaces extends directly or indirectly the interface
  
  NOTE: Doesn't consider an interface to implement itself.
  I think this is intended to be called on ClassNodes representing
  classes, not interfaces.