code: public MethodDescriptor[] 
      getTeaContextMethodDescriptors(Class<?>[] contextClasses) {
  
          Vector<MethodDescriptor> v = new Vector<MethodDescriptor>();
          Hashtable<Method, Method> methods = new Hashtable<Method, Method>();
  
          if (contextClasses != null) {
  
              // Combine all of the MethodDescriptors
  
              for (int i = 0; i < contextClasses.length; i++) {
                  Class<?> c = contextClasses[i];
                  if (c == null) {
                      continue;
                  }
  
                  MethodDescriptor[] mds = 
                      getTeaContextMethodDescriptors(c, false);
                  
                  for (int j = 0; j < mds.length; j++) {
                      MethodDescriptor md = mds[j];
                      Method m = md.getMethod();
                      // Check uniqueness of method
                      if (methods.get(m) == null) {
                          methods.put(m, m);
                          v.addElement(md);
                      }
                  }
              }
          }
  
          MethodDescriptor[] methodDescriptors = new MethodDescriptor[v.size()];
          v.copyInto(methodDescriptors);
  
          // Sort the combined results
          sortMethodDescriptors(methodDescriptors);
  
          return methodDescriptors;
      }
docs: Gets the complete, combined set of MethodDescriptors for the specified
  context classes.
  
  @param contextClasses the Tea context classes to introspect