Having InMemoryDOMDatastore in its own bundle.To make it configurable
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / md / sal / dom / store / impl / DOMImmutableDataChangeEvent.java
diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DOMImmutableDataChangeEvent.java
deleted file mode 100644 (file)
index af47974..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.sal.dom.store.impl;
-
-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.schema.NormalizedNode;
-
-import com.google.common.base.Preconditions;
-
-public final class DOMImmutableDataChangeEvent implements
-        AsyncDataChangeEvent<InstanceIdentifier, NormalizedNode<?, ?>> {
-
-
-    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<InstanceIdentifier, ? extends NormalizedNode<?, ?>> originalData;
-    private final Map<InstanceIdentifier, NormalizedNode<?, ?>> createdData;
-    private final Map<InstanceIdentifier, NormalizedNode<?, ?>> updatedData;
-    private final Set<InstanceIdentifier> removedPaths;
-    private final DataChangeScope scope;
-
-
-
-    private DOMImmutableDataChangeEvent(final Builder change) {
-        original = change.before;
-        updated = change.after;
-        originalData = Collections.unmodifiableMap(change.original);
-        createdData = Collections.unmodifiableMap(change.created);
-        updatedData = Collections.unmodifiableMap(change.updated);
-        removedPaths = Collections.unmodifiableSet(change.removed);
-        scope = change.scope;
-    }
-
-    public static final Builder builder(final DataChangeScope scope) {
-        return new Builder(scope);
-    }
-
-    protected DataChangeScope getScope() {
-        return scope;
-    }
-
-    @Override
-    public NormalizedNode<?, ?> getOriginalSubtree() {
-        return original;
-    }
-
-    @Override
-    public NormalizedNode<?, ?> getUpdatedSubtree() {
-        return updated;
-    }
-
-    @Override
-    public Map<InstanceIdentifier, ? extends NormalizedNode<?, ?>> getOriginalData() {
-        return originalData;
-    }
-
-    @Override
-    public Map<InstanceIdentifier, NormalizedNode<?, ?>> getCreatedData() {
-        return createdData;
-    }
-
-    @Override
-    public Map<InstanceIdentifier, NormalizedNode<?, ?>> getUpdatedData() {
-        return updatedData;
-    }
-
-    @Override
-    public Set<InstanceIdentifier> getRemovedPaths() {
-        return removedPaths;
-    }
-
-    @Override
-    public String toString() {
-        return "DOMImmutableDataChangeEvent [created=" + createdData.keySet() + ", updated=" + updatedData.keySet()
-                + ", removed=" + removedPaths + "]";
-    }
-
-    /**
-     * Simple event factory which creates event based on path and data
-     *
-     *
-     */
-    public interface SimpleEventFactory {
-        DOMImmutableDataChangeEvent create(InstanceIdentifier path, NormalizedNode<PathArgument,?> 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() {
-        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() {
-        return REMOVE_EVENT_FACTORY;
-    }
-    public static class Builder {
-
-        public DataChangeScope scope;
-        private NormalizedNode<?, ?> after;
-        private NormalizedNode<?, ?> before;
-
-        private final Map<InstanceIdentifier, NormalizedNode<?, ?>> original = new HashMap<>();
-        private final Map<InstanceIdentifier, NormalizedNode<?, ?>> created = new HashMap<>();
-        private final Map<InstanceIdentifier, NormalizedNode<?, ?>> updated = new HashMap<>();
-        private final Set<InstanceIdentifier> removed = new HashSet<>();
-
-        private Builder(final DataChangeScope scope) {
-            Preconditions.checkNotNull(scope, "Data change scope should not be null.");
-            this.scope = scope;
-        }
-
-        public Builder setAfter(final NormalizedNode<?, ?> node) {
-            after = node;
-            return this;
-        }
-
-        public DOMImmutableDataChangeEvent build() {
-
-            return new DOMImmutableDataChangeEvent(this);
-        }
-
-        public void merge(final DOMImmutableDataChangeEvent nestedChanges) {
-
-            original.putAll(nestedChanges.getOriginalData());
-            created.putAll(nestedChanges.getCreatedData());
-            updated.putAll(nestedChanges.getUpdatedData());
-            removed.addAll(nestedChanges.getRemovedPaths());
-
-        }
-
-        public Builder setBefore(final NormalizedNode<?, ?> node) {
-            this.before = node;
-            return this;
-        }
-
-        public Builder addCreated(final InstanceIdentifier path, final NormalizedNode<?, ?> node) {
-            created.put(path, node);
-            return this;
-        }
-
-        public Builder addRemoved(final InstanceIdentifier 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);
-            return this;
-        }
-    }
-
-    private static final class RemoveEventFactory implements SimpleEventFactory {
-
-        @Override
-        public DOMImmutableDataChangeEvent create(final InstanceIdentifier path, final NormalizedNode<PathArgument, ?> data) {
-            return builder(DataChangeScope.BASE) //
-                    .setBefore(data) //
-                    .addRemoved(path, data) //
-                    .build();
-        }
-
-    }
-
-    private static final class CreateEventFactory implements SimpleEventFactory {
-
-        @Override
-        public DOMImmutableDataChangeEvent create(final InstanceIdentifier path, final NormalizedNode<PathArgument, ?> data) {
-            return builder(DataChangeScope.BASE) //
-                    .setAfter(data) //
-                    .addCreated(path, data) //
-                    .build();
-        }
-    }
-
-}