code: public static <T> C10NFilterProvider<T> cachedFilterProvider(C10NFilterProvider<T> filterProvider) {
          Preconditions.assertNotNull(filterProvider, "filterProvider");
          return new CachedC10NFilterProvider<T>(filterProvider);
      }
docs: <p>Decorates the specified filter provider with a simple static cache.
  Only the first call will result in an execution of {@link com.github.rodionmoiseev.c10n.C10NFilterProvider#get()} method.
  The following calls will always return a cached instance of the first call.
  
  @param filterProvider filter provider to decorate with caching (not-null)
  @param <T>            Filter argument type
  @return instance of a filter provider decorated with simple static cache (never-null)