X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FDOMImmutableDataChangeEvent.java;h=43b1c636e491f678e0550f25b3bef84e46f2206f;hp=743ddd1ae069f6f1435c51fa7eb5fe709650fbc3;hb=c5f3be93482d6b06d95ebf22b2ef2723fd813f89;hpb=a14731b4fae8abadc04cfb2588e8d1b6117ee488 diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java index 743ddd1ae0..43b1c636e4 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java @@ -7,37 +7,32 @@ */ package org.opendaylight.controller.md.sal.dom.store.impl; +import com.google.common.base.Preconditions; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; - import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import com.google.common.base.Preconditions; - public final class DOMImmutableDataChangeEvent implements - AsyncDataChangeEvent> { - + AsyncDataChangeEvent> { private static final RemoveEventFactory REMOVE_EVENT_FACTORY = new RemoveEventFactory(); private static final CreateEventFactory CREATE_EVENT_FACTORY = new CreateEventFactory(); private final NormalizedNode original; private final NormalizedNode updated; - private final Map> originalData; - private final Map> createdData; - private final Map> updatedData; - private final Set removedPaths; + private final Map> originalData; + private final Map> createdData; + private final Map> updatedData; + private final Set removedPaths; private final DataChangeScope scope; - - private DOMImmutableDataChangeEvent(final Builder change) { original = change.before; updated = change.after; @@ -48,7 +43,7 @@ public final class DOMImmutableDataChangeEvent implements scope = change.scope; } - public static final Builder builder(final DataChangeScope scope) { + public static Builder builder(final DataChangeScope scope) { return new Builder(scope); } @@ -67,22 +62,22 @@ public final class DOMImmutableDataChangeEvent implements } @Override - public Map> getOriginalData() { + public Map> getOriginalData() { return originalData; } @Override - public Map> getCreatedData() { + public Map> getCreatedData() { return createdData; } @Override - public Map> getUpdatedData() { + public Map> getUpdatedData() { return updatedData; } @Override - public Set getRemovedPaths() { + public Set getRemovedPaths() { return removedPaths; } @@ -93,50 +88,49 @@ public final class DOMImmutableDataChangeEvent implements } /** - * Simple event factory which creates event based on path and data - * - * + * Simple event factory which creates event based on path and data. */ public interface SimpleEventFactory { - DOMImmutableDataChangeEvent create(InstanceIdentifier path, NormalizedNode data); + DOMImmutableDataChangeEvent create(YangInstanceIdentifier path, NormalizedNode data); } /** * Event factory which takes after state and creates event for it. * + *

* Factory for events based on path and after state. * After state is set as {@link #getUpdatedSubtree()} and is path, * state mapping is also present in {@link #getUpdatedData()}. - * - * @return */ - public static final SimpleEventFactory getCreateEventFactory() { + public static SimpleEventFactory getCreateEventFactory() { return CREATE_EVENT_FACTORY; } /** * Event factory which takes before state and creates event for it. * + *

* Factory for events based on path and after state. * After state is set as {@link #getOriginalSubtree()} and is path, * state mapping is also present in {@link #getOriginalSubtree()}. * + *

* Path is present in {@link #getRemovedPaths()}. - * @return */ - public static final SimpleEventFactory getRemoveEventFactory() { + public static SimpleEventFactory getRemoveEventFactory() { return REMOVE_EVENT_FACTORY; } - public static class Builder { + + public static final class Builder { public DataChangeScope scope; private NormalizedNode after; private NormalizedNode before; - private final Map> original = new HashMap<>(); - private final Map> created = new HashMap<>(); - private final Map> updated = new HashMap<>(); - private final Set removed = new HashSet<>(); + private final Map> original = new HashMap<>(); + private final Map> created = new HashMap<>(); + private final Map> updated = new HashMap<>(); + private final Set removed = new HashSet<>(); private Builder(final DataChangeScope scope) { Preconditions.checkNotNull(scope, "Data change scope should not be null."); @@ -167,29 +161,34 @@ public final class DOMImmutableDataChangeEvent implements return this; } - public Builder addCreated(final InstanceIdentifier path, final NormalizedNode node) { + public Builder addCreated(final YangInstanceIdentifier path, final NormalizedNode node) { created.put(path, node); return this; } - public Builder addRemoved(final InstanceIdentifier path, final NormalizedNode node) { + public Builder addRemoved(final YangInstanceIdentifier path, final NormalizedNode node) { original.put(path, node); removed.add(path); return this; } - public Builder addUpdated(final InstanceIdentifier path, final NormalizedNode before, - final NormalizedNode after) { - original.put(path, before); - updated.put(path, after); + public Builder addUpdated(final YangInstanceIdentifier path, final NormalizedNode nodeBefore, + final NormalizedNode nodeAfter) { + original.put(path, nodeBefore); + updated.put(path, nodeAfter); return this; } + + public boolean isEmpty() { + return created.isEmpty() && removed.isEmpty() && updated.isEmpty(); + } } private static final class RemoveEventFactory implements SimpleEventFactory { @Override - public DOMImmutableDataChangeEvent create(final InstanceIdentifier path, final NormalizedNode data) { + public DOMImmutableDataChangeEvent create(final YangInstanceIdentifier path, + final NormalizedNode data) { return builder(DataChangeScope.BASE) // .setBefore(data) // .addRemoved(path, data) // @@ -201,12 +200,12 @@ public final class DOMImmutableDataChangeEvent implements private static final class CreateEventFactory implements SimpleEventFactory { @Override - public DOMImmutableDataChangeEvent create(final InstanceIdentifier path, final NormalizedNode data) { + public DOMImmutableDataChangeEvent create(final YangInstanceIdentifier path, + final NormalizedNode data) { return builder(DataChangeScope.BASE) // .setAfter(data) // .addCreated(path, data) // .build(); } } - }