2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.dom.store.impl.tree;
10 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
11 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
14 * Class encapsulation of set of modifications to a base tree. This tree is backed
15 * by a read-only snapshot and tracks modifications on top of that. The modification
16 * has the ability to rebase itself to a new snapshot.
18 public interface DataTreeModification extends DataTreeSnapshot {
20 * Delete the node at specified path.
22 * @param path Node path
24 void delete(InstanceIdentifier path);
27 * Merge the specified data with the currently-present data
30 * @param path Node path
31 * @param data Data to be merged
33 void merge(InstanceIdentifier path, NormalizedNode<?, ?> data);
36 * Replace the data at specified path with supplied data.
38 * @param path Node path
39 * @param data New node data
41 void write(InstanceIdentifier path, NormalizedNode<?, ?> data);
44 * Finish creation of a modification, making it ready for application
45 * to the data tree. Any calls to this object's methods will result
46 * in undefined behavior, possibly with an
47 * {@link IllegalStateException} being thrown.