code: @SuppressWarnings("unchecked")
      static <S extends Storable> Factory<S> getFactory(Filter<S> filter) {
          if (filter == null) {
              throw new IllegalArgumentException();
          }
          synchronized (cCache) {
              Factory<S> factory = (Factory<S>) cCache.get(filter);
              if (factory != null) {
                  return factory;
              }
              Class<Cursor<S>> clazz = generateClass(filter);
              factory = QuickConstructorGenerator.getInstance(clazz, Factory.class);
              cCache.put(filter, factory);
              return factory;
          }
      }
docs: Returns a factory for creating new filtered cursor instances.
  
  @param filter filter specification
  @throws IllegalArgumentException if filter is null
  @throws UnsupportedOperationException if filter is not supported