public static Map.Entry<Symbol,DescribedType> findFilter(Map<Symbol,Object> filters,Object[] filterIds){
  if (filterIds == null || filterIds.length == 0) {
    throw new IllegalArgumentException("Invalid empty Filter Ids array passed: ");
  }
  if (filters == null || filters.isEmpty()) {
    return null;
  }
  for (  Map.Entry<Symbol,Object> filter : filters.entrySet()) {
    if (filter.getValue() instanceof DescribedType) {
      DescribedType describedType=((DescribedType)filter.getValue());
      Object descriptor=describedType.getDescriptor();
      for (      Object filterId : filterIds) {
        if (descriptor.equals(filterId)) {
          return new AbstractMap.SimpleImmutableEntry<>(filter.getKey(),describedType);
        }
      }
    }
  }
  return null;
}

public static Map . Entry < Symbol , DescribedType > findFilter ( Map < Symbol , Object > filters , Object [ ] filterIds ) { if ( filterIds == null || filterIds . length == 0 ) { throw new IllegalArgumentException ( "Invalid empty Filter Ids array passed: " ) ; } if ( filters == null || filters . isEmpty ( ) ) { return null ; } for ( Map . Entry < Symbol , Object > filter : filters . entrySet ( ) ) { if ( filter . getValue ( ) instanceof DescribedType ) { DescribedType describedType = ( ( DescribedType ) filter . getValue ( ) ) ; Object descriptor = describedType . getDescriptor ( ) ; for ( Object filterId : filterIds ) { if ( descriptor . equals ( filterId ) ) { return new AbstractMap . SimpleImmutableEntry < > ( filter . getKey ( ) , describedType ) ; } } } } return null ; }
search for a particular filter using a set of known indentification values in the map of filters .
