test_class.declarator: x =0
test_class.original_string: int x =0;
test_class.type: int
test_class.var_name: x
test_class.file: cyclops/src/test/java/cyclops/function/MemoizeTest.java
test_class.identifier: MemoizeTest
test_case.body: @Test
      public void asyncUpdate() throws InterruptedException {
          Function1<Integer, Integer> fn = Memoize.memoizeFunctionAsync(Lambda.<Integer, Integer>λ(i -> i + x), Executors.newScheduledThreadPool(1), 1);
          assertThat(fn.apply(1),equalTo(1));
          assertThat(fn.apply(1),equalTo(1));
          x=x+1;
          Thread.sleep(2);
  
          assertThat(fn.apply(1),equalTo(2));
      }
test_case.class_method_signature: MemoizeTest.asyncUpdate()
test_case.full_signature: @Test public void asyncUpdate()
test_case.identifier: asyncUpdate
test_case.invocations: memoizeFunctionAsync Lambda ewScheduledThreadPool( assertThat apply equalTo assertThat apply equalTo sleep assertThat apply equalTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void asyncUpdate()
focal_class.declarator: UNSET = new Object()
focal_class.modifier: private final static
focal_class.original_string: private final static Object UNSET = new Object();
focal_class.type: Object
focal_class.var_name: UNSET
focal_class.file: cyclops/src/main/java/cyclops/function/Memoize.java
focal_class.identifier: Memoize
focal_class.class_method_signature: Memoize.memoizeSupplier(final Supplier<T> s)
focal_class.full_signature: public static Function0<T> memoizeSupplier(final Supplier<T> s)
focal_class.identifier: memoizeSupplier
focal_class.modifiers: public static
focal_class.parameters: (final Supplier<T> s)
focal_class.return: Function0<T>
focal_class.signature: Function0<T> memoizeSupplier(final Supplier<T> s)
focal_class.class_method_signature: Memoize.memoizeSupplier(final Supplier<T> s, final Cacheable<T> cache)
focal_class.full_signature: public static Function0<T> memoizeSupplier(final Supplier<T> s, final Cacheable<T> cache)
focal_class.identifier: memoizeSupplier
focal_class.modifiers: public static
focal_class.parameters: (final Supplier<T> s, final Cacheable<T> cache)
focal_class.return: Function0<T>
focal_class.signature: Function0<T> memoizeSupplier(final Supplier<T> s, final Cacheable<T> cache)
focal_class.class_method_signature: Memoize.memoizeSupplierAsync(final Supplier<R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.full_signature: public static Function0<R> memoizeSupplierAsync(final Supplier<R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.identifier: memoizeSupplierAsync
focal_class.modifiers: public static
focal_class.parameters: (final Supplier<R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.return: Function0<R>
focal_class.signature: Function0<R> memoizeSupplierAsync(final Supplier<R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.class_method_signature: Memoize.memoizeSupplierAsync(final Supplier<R> fn, ScheduledExecutorService ex, String cron)
focal_class.full_signature: public static Function0<R> memoizeSupplierAsync(final Supplier<R> fn, ScheduledExecutorService ex, String cron)
focal_class.identifier: memoizeSupplierAsync
focal_class.modifiers: public static
focal_class.parameters: (final Supplier<R> fn, ScheduledExecutorService ex, String cron)
focal_class.return: Function0<R>
focal_class.signature: Function0<R> memoizeSupplierAsync(final Supplier<R> fn, ScheduledExecutorService ex, String cron)
focal_class.class_method_signature: Memoize.memoizeCallable(final Callable<T> s, final Cacheable<T> cache)
focal_class.full_signature: public static Callable<T> memoizeCallable(final Callable<T> s, final Cacheable<T> cache)
focal_class.identifier: memoizeCallable
focal_class.modifiers: public static
focal_class.parameters: (final Callable<T> s, final Cacheable<T> cache)
focal_class.return: Callable<T>
focal_class.signature: Callable<T> memoizeCallable(final Callable<T> s, final Cacheable<T> cache)
focal_class.class_method_signature: Memoize.memoizeCallable(final Callable<T> s)
focal_class.full_signature: public static Callable<T> memoizeCallable(final Callable<T> s)
focal_class.identifier: memoizeCallable
focal_class.modifiers: public static
focal_class.parameters: (final Callable<T> s)
focal_class.return: Callable<T>
focal_class.signature: Callable<T> memoizeCallable(final Callable<T> s)
focal_class.class_method_signature: Memoize.memoizeRunnable(final Runnable r)
focal_class.full_signature: public static Runnable memoizeRunnable(final Runnable r)
focal_class.identifier: memoizeRunnable
focal_class.modifiers: public static
focal_class.parameters: (final Runnable r)
focal_class.return: Runnable
focal_class.signature: Runnable memoizeRunnable(final Runnable r)
focal_class.class_method_signature: Memoize.memoizeFunction(final Function<T, R> fn)
focal_class.full_signature: public static Function1<T, R> memoizeFunction(final Function<T, R> fn)
focal_class.identifier: memoizeFunction
focal_class.modifiers: public static
focal_class.parameters: (final Function<T, R> fn)
focal_class.return: Function1<T, R>
focal_class.signature: Function1<T, R> memoizeFunction(final Function<T, R> fn)
focal_class.class_method_signature: Memoize.memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.full_signature: public static Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.identifier: memoizeFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.return: Function1<T, R>
focal_class.signature: Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.class_method_signature: Memoize.memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, String cron)
focal_class.full_signature: public static Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, String cron)
focal_class.identifier: memoizeFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final Function<T, R> fn, ScheduledExecutorService ex, String cron)
focal_class.return: Function1<T, R>
focal_class.signature: Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, String cron)
focal_class.class_method_signature: Memoize.memoizeFunction(final Function<T, R> fn, final Cacheable<R> cache)
focal_class.full_signature: public static Function1<T, R> memoizeFunction(final Function<T, R> fn, final Cacheable<R> cache)
focal_class.identifier: memoizeFunction
focal_class.modifiers: public static
focal_class.parameters: (final Function<T, R> fn, final Cacheable<R> cache)
focal_class.return: Function1<T, R>
focal_class.signature: Function1<T, R> memoizeFunction(final Function<T, R> fn, final Cacheable<R> cache)
focal_class.class_method_signature: Memoize.memoizeBiFunctionAsync(final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.full_signature: public static Function2<T1, T2, R> memoizeBiFunctionAsync(final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.identifier: memoizeBiFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.return: Function2<T1, T2, R>
focal_class.signature: Function2<T1, T2, R> memoizeBiFunctionAsync(final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.class_method_signature: Memoize.memoizeBiFunctionAsync(final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, String cron)
focal_class.full_signature: public static Function2<T1, T2, R> memoizeBiFunctionAsync(final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, String cron)
focal_class.identifier: memoizeBiFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, String cron)
focal_class.return: Function2<T1, T2, R>
focal_class.signature: Function2<T1, T2, R> memoizeBiFunctionAsync(final BiFunction<T1, T2, R> fn, ScheduledExecutorService ex, String cron)
focal_class.class_method_signature: Memoize.memoizeBiFunction(final BiFunction<T1, T2, R> fn)
focal_class.full_signature: public static Function2<T1, T2, R> memoizeBiFunction(final BiFunction<T1, T2, R> fn)
focal_class.identifier: memoizeBiFunction
focal_class.modifiers: public static
focal_class.parameters: (final BiFunction<T1, T2, R> fn)
focal_class.return: Function2<T1, T2, R>
focal_class.signature: Function2<T1, T2, R> memoizeBiFunction(final BiFunction<T1, T2, R> fn)
focal_class.class_method_signature: Memoize.memoizeBiFunction(final BiFunction<T1, T2, R> fn, final Cacheable<R> cache)
focal_class.full_signature: public static Function2<T1, T2, R> memoizeBiFunction(final BiFunction<T1, T2, R> fn, final Cacheable<R> cache)
focal_class.identifier: memoizeBiFunction
focal_class.modifiers: public static
focal_class.parameters: (final BiFunction<T1, T2, R> fn, final Cacheable<R> cache)
focal_class.return: Function2<T1, T2, R>
focal_class.signature: Function2<T1, T2, R> memoizeBiFunction(final BiFunction<T1, T2, R> fn, final Cacheable<R> cache)
focal_class.class_method_signature: Memoize.memoizeTriFunction(final Function3<T1, T2, T3, R> fn)
focal_class.full_signature: public static Function3<T1, T2, T3, R> memoizeTriFunction(final Function3<T1, T2, T3, R> fn)
focal_class.identifier: memoizeTriFunction
focal_class.modifiers: public static
focal_class.parameters: (final Function3<T1, T2, T3, R> fn)
focal_class.return: Function3<T1, T2, T3, R>
focal_class.signature: Function3<T1, T2, T3, R> memoizeTriFunction(final Function3<T1, T2, T3, R> fn)
focal_class.class_method_signature: Memoize.memoizeTriFunctionAsync(final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, String cron)
focal_class.full_signature: public static Function3<T1, T2, T3, R> memoizeTriFunctionAsync(final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, String cron)
focal_class.identifier: memoizeTriFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, String cron)
focal_class.return: Function3<T1, T2, T3, R>
focal_class.signature: Function3<T1, T2, T3, R> memoizeTriFunctionAsync(final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, String cron)
focal_class.class_method_signature: Memoize.memoizeTriFunction(final Function3<T1, T2, T3, R> fn, final Cacheable<R> cache)
focal_class.full_signature: public static Function3<T1, T2, T3, R> memoizeTriFunction(final Function3<T1, T2, T3, R> fn, final Cacheable<R> cache)
focal_class.identifier: memoizeTriFunction
focal_class.modifiers: public static
focal_class.parameters: (final Function3<T1, T2, T3, R> fn, final Cacheable<R> cache)
focal_class.return: Function3<T1, T2, T3, R>
focal_class.signature: Function3<T1, T2, T3, R> memoizeTriFunction(final Function3<T1, T2, T3, R> fn, final Cacheable<R> cache)
focal_class.class_method_signature: Memoize.memoizeTriFunctionAsync(final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.full_signature: public static Function3<T1, T2, T3, R> memoizeTriFunctionAsync(final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.identifier: memoizeTriFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.return: Function3<T1, T2, T3, R>
focal_class.signature: Function3<T1, T2, T3, R> memoizeTriFunctionAsync(final Function3<T1, T2, T3, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.class_method_signature: Memoize.memoizeQuadFunction(final Function4<T1, T2, T3, T4, R> fn)
focal_class.full_signature: public static Function4<T1, T2, T3, T4, R> memoizeQuadFunction(final Function4<T1, T2, T3, T4, R> fn)
focal_class.identifier: memoizeQuadFunction
focal_class.modifiers: public static
focal_class.parameters: (final Function4<T1, T2, T3, T4, R> fn)
focal_class.return: Function4<T1, T2, T3, T4, R>
focal_class.signature: Function4<T1, T2, T3, T4, R> memoizeQuadFunction(final Function4<T1, T2, T3, T4, R> fn)
focal_class.class_method_signature: Memoize.memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, String cron)
focal_class.full_signature: public static Function4<T1, T2, T3, T4, R> memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, String cron)
focal_class.identifier: memoizeQuadFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, String cron)
focal_class.return: Function4<T1, T2, T3, T4, R>
focal_class.signature: Function4<T1, T2, T3, T4, R> memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, String cron)
focal_class.class_method_signature: Memoize.memoizeQuadFunction(final Function4<T1, T2, T3, T4, R> fn,
                                                                                         final Cacheable<R> cache)
focal_class.full_signature: public static Function4<T1, T2, T3, T4, R> memoizeQuadFunction(final Function4<T1, T2, T3, T4, R> fn,
                                                                                         final Cacheable<R> cache)
focal_class.identifier: memoizeQuadFunction
focal_class.modifiers: public static
focal_class.parameters: (final Function4<T1, T2, T3, T4, R> fn,
                                                                                         final Cacheable<R> cache)
focal_class.return: Function4<T1, T2, T3, T4, R>
focal_class.signature: Function4<T1, T2, T3, T4, R> memoizeQuadFunction(final Function4<T1, T2, T3, T4, R> fn,
                                                                                         final Cacheable<R> cache)
focal_class.class_method_signature: Memoize.memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.full_signature: public static Function4<T1, T2, T3, T4, R> memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.identifier: memoizeQuadFunctionAsync
focal_class.modifiers: public static
focal_class.parameters: (final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.return: Function4<T1, T2, T3, T4, R>
focal_class.signature: Function4<T1, T2, T3, T4, R> memoizeQuadFunctionAsync(final Function4<T1, T2, T3, T4, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_class.class_method_signature: Memoize.memoizePredicate(final Predicate<T> p)
focal_class.full_signature: public static Predicate<T> memoizePredicate(final Predicate<T> p)
focal_class.identifier: memoizePredicate
focal_class.modifiers: public static
focal_class.parameters: (final Predicate<T> p)
focal_class.return: Predicate<T>
focal_class.signature: Predicate<T> memoizePredicate(final Predicate<T> p)
focal_class.class_method_signature: Memoize.memoizePredicate(final Predicate<T> p, final Cacheable<Boolean> cache)
focal_class.full_signature: public static Predicate<T> memoizePredicate(final Predicate<T> p, final Cacheable<Boolean> cache)
focal_class.identifier: memoizePredicate
focal_class.modifiers: public static
focal_class.parameters: (final Predicate<T> p, final Cacheable<Boolean> cache)
focal_class.return: Predicate<T>
focal_class.signature: Predicate<T> memoizePredicate(final Predicate<T> p, final Cacheable<Boolean> cache)
focal_method.body: public static <T, R> Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis){
          final Map<T, R> lazy = new ConcurrentHashMap<>();
  
          ReactiveSeq.generate(()->{
  
              lazy.forEach((k,v)->{
  
                  lazy.put(k,fn.apply(k));
              });
              return null;
          }).scheduleFixedRate(updateRateInMillis,ex);
  
          return t -> lazy.computeIfAbsent(t, fn);
      }
focal_method.class_method_signature: Memoize.memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_method.full_signature: public static Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_method.identifier: memoizeFunctionAsync
focal_method.invocations: scheduleFixedRate generate forEach put apply computeIfAbsent
focal_method.modifiers: public static
focal_method.parameters: (final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)
focal_method.return: Function1<T, R>
focal_method.signature: Function1<T, R> memoizeFunctionAsync(final Function<T, R> fn, ScheduledExecutorService ex, long updateRateInMillis)