public InviteServiceImpl( final StackContext stackContext, final TransactionManager transactionManager) { super(stackContext, transactionManager); transactionSafeView = TransactionUtils.wrap(this, InviteService.class); subscribeToTransactionManager(); }
private SteppedAcceptable createSafeInviteAcceptable(final Dialog dialog) { return TransactionUtils.wrap( new SteppedAcceptable<Dialog>() { private final Dialog dlg = dialog; public void reject(Dialog parameter, int statusCode, String alternativeUserAddress) { if (dialog.isUpdateInProgress()) { InviteServiceImpl.this.doRejectUpdate(dlg, statusCode, alternativeUserAddress); dialog.unmarkUpdateInProgress(); } else { InviteServiceImpl.this.doReject(dlg, statusCode, alternativeUserAddress); } } public void accept(Dialog parameter) { Logger.log( "SteppedAcceptable", "accept#dialog.isUpdateInProgress() = " + dialog.isUpdateInProgress()); if (dialog.isUpdateInProgress()) { Logger.log("SteppedAcceptable", "doAcceptUpdate"); InviteServiceImpl.this.doAcceptUpdate(dialog); dialog.unmarkUpdateInProgress(); } else { Logger.log("SteppedAcceptable", "doAccept"); InviteServiceImpl.this.doAccept(dlg); } } public void preAccept() { if (!dialog.isUpdateInProgress()) { InviteServiceImpl.this.preAccept(dlg); } else { assert false : "Method not supported"; } } }, SteppedAcceptable.class); }