class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIdentifier> implements DOMStoreReadWriteTransaction {

    @Override
    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
        checkState(type != TransactionType.WRITE_ONLY, "Reads from write-only transactions are not allowed");
        requireNonNull(path, "path should not be null");

        LOG.trace("Tx {} read {}", getIdentifier(), path);
        return path.isEmpty() ? readAllData() : singleShardRead(shardNameFromIdentifier(path), path);
    }

    @VisibleForTesting public  TransactionProxy(final AbstractTransactionContextFactory<?> txContextFactory, final TransactionType type);

}