/** * A chain of filters, each of them is a {@link java.util.function.Predicate <Operation>}. When {@link #processRequest} is called * the filters are evaluated sequentially, where each filter's {@link java.util.function.Predicate <Operation>#test} can return * <code>true</code> to have the next filter in the chain continue process the request or * <code>false</code> to stop processing. */ @Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } RequestRouter myRouter = new RequestRouter(); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<>( StrictUpdateRequest.class, "kind", StrictUpdateRequest.KIND), this::handlePatchForStrictUpdate, "Strict update version check"); OperationProcessingChain opProcessingChain = OperationProcessingChain.create(myRouter); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } OperationProcessingChain opProcessingChain = OperationProcessingChain.create( new TransactionalRequestFilter(this)); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } OperationProcessingChain opProcessingChain = OperationProcessingChain.create( new TransactionalRequestFilter(this)); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } RequestRouter myRouter = new RequestRouter(); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<>( EnrollRequest.class, "kind", EnrollRequest.KIND), this::handlePatchForEnroll, "Register service"); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<>( EndTransactionRequest.class, "kind", EndTransactionRequest.KIND), this::handlePatchForEndTransaction, "Commit or abort transaction"); OperationProcessingChain opProcessingChain = OperationProcessingChain.create(myRouter); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } RequestRouter myRouter = new RequestRouter(); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.DEPOSIT), this::handlePatchForDeposit, "Deposit"); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.WITHDRAW), this::handlePatchForWithdraw, "Withdraw"); OperationProcessingChain opProcessingChain = OperationProcessingChain.create( myRouter); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } RequestRouter myRouter = new RequestRouter(); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.DEPOSIT), this::handlePatchForDeposit, "Deposit"); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.WITHDRAW), this::handlePatchForWithdraw, "Withdraw"); OperationProcessingChain opProcessingChain = OperationProcessingChain.create( myRouter); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } RequestRouter myRouter = new RequestRouter(); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.DEPOSIT), this::handlePatchForDeposit, "Deposit"); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.WITHDRAW), this::handlePatchForWithdraw, "Withdraw"); OperationProcessingChain opProcessingChain = OperationProcessingChain.create( new TransactionalRequestFilter(this), myRouter); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
@Override public OperationProcessingChain getOperationProcessingChain() { if (super.getOperationProcessingChain() != null) { return super.getOperationProcessingChain(); } RequestRouter myRouter = new RequestRouter(); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.DEPOSIT), this::handlePatchForDeposit, "Deposit"); myRouter.register( Action.PATCH, new RequestRouter.RequestBodyMatcher<BankAccountServiceRequest>( BankAccountServiceRequest.class, "kind", BankAccountServiceRequest.Kind.WITHDRAW), this::handlePatchForWithdraw, "Withdraw"); OperationProcessingChain opProcessingChain = OperationProcessingChain.create( new TransactionalRequestFilter(this), myRouter); setOperationProcessingChain(opProcessingChain); return opProcessingChain; }
OperationProcessingChain opProcessingChain = getOperationProcessingChain(); if (opProcessingChain != null) { OperationProcessingContext context = opProcessingChain.createContext(getHost());