*/
package org.opendaylight.mdsal.binding.dom.adapter;
-import com.google.common.base.Preconditions;
import java.util.Collection;
+import org.opendaylight.mdsal.binding.api.CursorAwareWriteTransaction;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.binding.api.DataTreeProducer;
import org.opendaylight.mdsal.binding.api.DataTreeProducerException;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.api.DOMDataTreeProducer;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeProducerBusyException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeProducerException;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
-class BindingDOMDataTreeProducerAdapter implements DataTreeProducer {
-
- private final DOMDataTreeProducer delegate;
- private final BindingToNormalizedNodeCodec codec;
-
- protected BindingDOMDataTreeProducerAdapter(final DOMDataTreeProducer delegate,
- final BindingToNormalizedNodeCodec codec) {
- super();
- this.delegate = Preconditions.checkNotNull(delegate);
- this.codec = codec;
+final class BindingDOMDataTreeProducerAdapter extends AbstractBindingAdapter<DOMDataTreeProducer>
+ implements DataTreeProducer {
+ BindingDOMDataTreeProducerAdapter(final AdapterContext adapterContext, final DOMDataTreeProducer delegate) {
+ super(adapterContext, delegate);
}
@Override
- public WriteTransaction createTransaction(final boolean isolated) {
- final DOMDataTreeWriteTransaction domTx = delegate.createTransaction(isolated);
- return new BindingDOMWriteTransactionAdapter<DOMDataTreeWriteTransaction>(domTx, codec);
- }
-
- static DataTreeProducer create(final DOMDataTreeProducer domProducer,
- final BindingToNormalizedNodeCodec codec) {
- return new BindingDOMDataTreeProducerAdapter(domProducer, codec);
+ public CursorAwareWriteTransaction createTransaction(final boolean isolated) {
+ final DOMDataTreeCursorAwareTransaction domTx = getDelegate().createTransaction(isolated);
+ return new BindingDOMCursorAwareWriteTransactionAdapter<>(adapterContext(), domTx);
}
@Override
public DataTreeProducer createProducer(final Collection<DataTreeIdentifier<?>> subtrees) {
- final Collection<DOMDataTreeIdentifier> domSubtrees = codec.toDOMDataTreeIdentifiers(subtrees);
- final DOMDataTreeProducer domChildProducer = delegate.createProducer(domSubtrees);
- return BindingDOMDataTreeProducerAdapter.create(domChildProducer, codec);
+ final Collection<DOMDataTreeIdentifier> domSubtrees = currentSerializer().toDOMDataTreeIdentifiers(subtrees);
+ final DOMDataTreeProducer domChildProducer = getDelegate().createProducer(domSubtrees);
+ return new BindingDOMDataTreeProducerAdapter(adapterContext(), domChildProducer);
}
@Override
public void close() throws DataTreeProducerException {
try {
- delegate.close();
- } catch (final DOMDataTreeProducerBusyException e) {
- throw new DataTreeProducerException(e.getMessage(), e);
+ getDelegate().close();
} catch (final DOMDataTreeProducerException e) {
throw new DataTreeProducerException(e.getMessage(), e);
}
}
-
}