code: public Iterator<FeatureDescriptor> getFeatureDescriptors(
                                            ELContext context,
                                            Object base) {
          return new CompositeIterator(elResolvers, size, context, base);
      }
docs: Returns information about the set of variables or properties that
  can be resolved for the given <code>base</code> object. One use for
  this method is to assist tools in auto-completion. The results are
  collected from all component resolvers.
  
  <p>The <code>propertyResolved</code> property of the
  <code>ELContext</code> is not relevant to this method.
  The results of all <code>ELResolver</code>s are concatenated.</p>
  
  <p>The <code>Iterator</code> returned is an iterator over the
  collection of <code>FeatureDescriptor</code> objects returned by
  the iterators returned by each component resolver's
  <code>getFeatureDescriptors</code> method. If <code>null</code> is
  returned by a resolver, it is skipped.</p>
  
  @param context The context of this evaluation.
  @param base The base object whose set of valid properties is to
  be enumerated, or <code>null</code> to enumerate the set of
  top-level variables that this resolver can evaluate.
  @return An <code>Iterator</code> containing zero or more (possibly
  infinitely more) <code>FeatureDescriptor</code> objects, or
  <code>null</code> if this resolver does not handle the given
  <code>base</code> object or that the results are too complex to
  represent with this method