@ Override public Iterator < FeatureDescriptor > getFeatureDescriptors ( final ELContext context , final Object base ) { return new Iterator < FeatureDescriptor > ( ) { Iterator < FeatureDescriptor > empty = Collections . < FeatureDescriptor > emptyList ( ) . iterator ( ) ; Iterator < ELResolver > resolvers = CompositeELResolver . this . resolvers . iterator ( ) ; Iterator < FeatureDescriptor > features = empty ; Iterator < FeatureDescriptor > features ( ) { while ( ! features . hasNext ( ) && resolvers . hasNext ( ) ) { features = resolvers . next ( ) . getFeatureDescriptors ( context , base ) ; if ( features == null ) { features = empty ; } } return features ; } public boolean hasNext ( ) { return features ( ) . hasNext ( ) ; } public FeatureDescriptor next ( ) { return features ( ) . next ( ) ; } public void remove ( ) { features ( ) . remove ( ) ; } } ; }
Returns information about the set of variables or properties that can be resolved for the given base object . One use for this method is to assist tools in auto - completion . The results are collected from all component resolvers . The propertyResolved property of the ELContext is not relevant to this method . The results of all ELResolvers are concatenated . The Iterator returned is an iterator over the collection of FeatureDescriptor objects returned by the iterators returned by each component resolver s getFeatureDescriptors method . If null is returned by a resolver it is skipped .