@Override public Scheduled schedule(Duration delay, Runnable callback) { return parent.schedule(delay, callback); }
@Override public StateMachineContext context() { return parent.context(); }
@Override public final void init(StateMachineExecutor executor) { try { executor.serializer().resolve(type.typeResolver().newInstance()); } catch (InstantiationException | IllegalAccessException e) { throw new ResourceException("failed to instantiate resource type resolver"); } executor.serializer().register(ResourceCommand.class, -50); executor.serializer().register(ResourceQuery.class, -51); executor.serializer().register(ConfigureCommand.class, -52); executor.serializer().register(DeleteCommand.class, -53); executor.<DeleteCommand>register(DeleteCommand.class, this::delete); executor.<ConfigureCommand>register(ConfigureCommand.class, this::configure); super.init(new ResourceStateMachineExecutor(executor)); }
@Override public final void init(StateMachineExecutor executor) { executor.serializer().register(ResourceCommand.class, -50); executor.serializer().register(ResourceQuery.class, -51); executor.serializer().register(ResourceQuery.Config.class, -52); executor.serializer().register(ResourceCommand.Delete.class, -53); executor.serializer().register(ResourceEvent.class, -49); executor.context().sessions().addListener(this); ResourceStateMachineExecutor wrappedExecutor = new ResourceStateMachineExecutor(executor); wrappedExecutor.register(ResourceQuery.Config.class, this::config); wrappedExecutor.<ResourceCommand.Register>register(ResourceCommand.Register.class, this::register); wrappedExecutor.<ResourceCommand.Unregister>register(ResourceCommand.Unregister.class, this::unregister); wrappedExecutor.<ResourceCommand.Delete>register(ResourceCommand.Delete.class, this::delete); super.init(wrappedExecutor); }
@Override public <T> CompletableFuture<T> execute(Supplier<T> callback) { return parent.execute(callback); }
@Override public Serializer serializer() { return parent.serializer(); }
@Override public Executor executor() { return parent.executor(); }
@Override public <T> CompletableFuture<T> execute(Supplier<T> callback) { return parent.execute(callback); }
@Override public Serializer serializer() { return parent.serializer(); }
@Override public Executor executor() { return parent.executor(); }
@Override public Scheduled schedule(Duration initialDelay, Duration interval, Runnable callback) { return parent.schedule(initialDelay, interval, callback); }
@Override public void configure(StateMachineExecutor executor) { this.executor = executor; executor.register(InstanceOperation.class, (Function<Commit<InstanceOperation>, Object>) this::operateResource); executor.register(GetResource.class, this::getResource); executor.register(GetResourceIfExists.class, this::getResourceIfExists); executor.register(CloseResource.class, this::closeResource); executor.register(DeleteResource.class, this::deleteResource); executor.register(ResourceExists.class, this::resourceExists); executor.register(GetResourceKeys.class, this::getResourceKeys); }
@Override public StateMachineContext context() { return parent.context(); }
@Override public CompletableFuture<Void> execute(Runnable callback) { return parent.execute(callback); }
@Override public Serializer serializer() { return parent.serializer(); }
@Override public Executor executor() { return parent.executor(); }
@Override public Scheduled schedule(Duration delay, Runnable callback) { return parent.schedule(delay, callback); }
@Override public void configure(StateMachineExecutor executor) { this.executor = executor; executor.register(InstanceOperation.class, (Function<Commit<InstanceOperation>, Object>) this::operateResource); executor.register(GetResource.class, this::getResource); executor.register(GetResourceIfExists.class, this::getResourceIfExists); executor.register(CloseResource.class, this::closeResource); executor.register(DeleteResource.class, this::deleteResource); executor.register(ResourceExists.class, this::resourceExists); executor.register(GetResourceKeys.class, this::getResourceKeys); }
@Override public StateMachineContext context() { return parent.context(); }