- for (TransactionModification mod : request.getModifications()) {
- if (mod instanceof TransactionWrite) {
- modification.write(mod.getPath(), ((TransactionWrite)mod).getData());
- } else if (mod instanceof TransactionMerge) {
- modification.merge(mod.getPath(), ((TransactionMerge)mod).getData());
- } else if (mod instanceof TransactionDelete) {
- modification.delete(mod.getPath());
- } else {
- throw new IllegalArgumentException("Unsupported modification " + mod);
- }
- }
-
- final java.util.Optional<PersistenceProtocol> maybeProtocol = request.getPersistenceProtocol();
- if (maybeProtocol.isPresent()) {
- seal();
- Verify.verify(callback != null, "Request {} has null callback", request);
-
- switch (maybeProtocol.get()) {
- case ABORT:
- sendAbort(callback);
- break;
- case SIMPLE:
- sendRequest(commitRequest(false), callback);
- break;
- case THREE_PHASE:
- sendRequest(commitRequest(true), callback);
- break;
- default:
- throw new IllegalArgumentException("Unhandled protocol " + maybeProtocol.get());
- }
+ if (request instanceof ReadTransactionRequest) {
+ final YangInstanceIdentifier path = ((ReadTransactionRequest) request).getPath();
+ final Optional<NormalizedNode<?, ?>> result = readOnlyView().readNode(path);
+ callback.accept(new ReadTransactionSuccess(request.getTarget(), request.getSequence(), result));
+ return true;
+ } else if (request instanceof ExistsTransactionRequest) {
+ final YangInstanceIdentifier path = ((ExistsTransactionRequest) request).getPath();
+ final boolean result = readOnlyView().readNode(path).isPresent();
+ callback.accept(new ExistsTransactionSuccess(request.getTarget(), request.getSequence(), result));
+ return true;
+ } else {
+ return false;