* open. It needs to be either submitted or cancelled before another one can be open.
* Once a transaction is submitted, it will proceed to be committed asynchronously.
*
- * Each instance has an upper bound on the number of transactions which can be in-flight,
+ * <p>
+ * Each instance has an upper bound on the number of transactions which can be in-flight,
* once that capacity is exceeded, an attempt to create a new transaction will block
* until some transactions complete.
*
+ * <p>
* Each {@link DOMDataTreeProducer} can be in two logical states, bound and unbound,
* which define the lifecycle rules for when is it legal to create and submit transactions
* in relationship with {@link DOMDataTreeListener} callbacks.
*
+ * <p>
* When a producer is first created, it is unbound. In this state the producer can be
* accessed by any application thread to allocate or submit transactions, as long as
* the 'single open transaction' rule is maintained. The producer and any transaction
* object MUST NOT be accessed, directly or indirectly, from a {@link DOMDataTreeListener}
* callback.
*
- * When a producer is referenced in a call to {@link DOMDataTreeService#registerListener(DOMDataTreeListener, java.util.Collection, boolean, java.util.Collection)},
+ * <p>
+ * When a producer is referenced in a call to {@link DOMDataTreeService#registerListener(DOMDataTreeListener,
+ * Collection, boolean, Collection)},
* an attempt will be made to bind the producer to the specified {@link DOMDataTreeListener}.
* Such an attempt will fail the producer is already bound, or it has an open transaction.
* Once bound, the producer can only be accessed from within the {@link DOMDataTreeListener}
@Nonnull DOMDataTreeCursorAwareTransaction createTransaction(boolean isolated);
/**
- * {@inheritDoc}
+ * {@inheritDoc}.
*
+ * <p>
* When invoked on a {@link DOMDataTreeProducer}, this method has additional restrictions. There
* may not be an open transaction from this producer. The method needs to be invoked in
* appropriate context, e.g. bound or unbound.
*
+ * <p>
* Specified subtrees must be accessible by this producer. Accessible means they are a subset of
* the subtrees specified when the producer is instantiated. The set is further reduced as child
* producers are instantiated -- if you create a producer for /a and then a child for /a/b, /a/b
* is not accessible from the first producer.
- *
* Once this method returns successfully, this (parent) producer loses the ability to access the
* specified paths until the resulting (child) producer is shut down.
*
@Nonnull DOMDataTreeProducer createProducer(@Nonnull Collection<DOMDataTreeIdentifier> subtrees);
/**
- * {@inheritDoc}
+ * {@inheritDoc}.
*
* @throws DOMDataTreeProducerBusyException when there is an open transaction.
*/