code: public static <T> Collection<OIndexProxy<T>> createdProxy(OIndex<T> index, OSQLFilterItemField.FieldChain longChain,
        ODatabaseComplex<?> database) {
      Collection<OIndexProxy<T>> proxies = new ArrayList<OIndexProxy<T>>();
  
      for (List<OIndex<?>> indexChain : getIndexesForChain(index, longChain, database)) {
        proxies.add(new OIndexProxy<T>(index, indexChain));
      }
  
      return proxies;
    }
docs: Create proxies that support maximum number of different operations. In case when several different indexes which support
  different operations (e.g. indexes of {@code UNIQUE} and {@code FULLTEXT} types) are possible, the creates the only one index
  of each type.
  
  @param index
  - the index which proxies created for
  @param longChain
  - property chain from the query, which should be evaluated
  @param database
  - current database instance
  @return proxies needed to process query.