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.yangtools.binding.data.codec.api;
11 import java.util.Map.Entry;
12 import org.opendaylight.yangtools.yang.binding.DataObject;
13 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
14 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
15 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
18 * Serialization service, which provides two-way serialization between
19 * Java Binding Data representation and NormalizedNode representation.
22 public interface BindingNormalizedNodeSerializer {
25 * Translates supplied Binding Instance Identifier into NormalizedNode instance identifier.
27 * @param binding Binding Instance Identifier
28 * @return DOM Instance Identifier
30 YangInstanceIdentifier toYangInstanceIdentifier(final InstanceIdentifier<?> binding);
33 * Translates supplied YANG Instance Identifier into Binding instance identifier.
35 * @param dom YANG Instance Identifier
36 * @return Binding Instance Identifier
38 InstanceIdentifier<?> fromYangInstanceIdentifier(final YangInstanceIdentifier dom);
41 * Translates supplied Binding Instance Identifier and data into NormalizedNode representatoin.
43 * @param path Binding Instance Identifier pointing to data
44 * @param data Data object representing data
45 * @return NormalizedNode representation
47 <T extends DataObject> Entry<YangInstanceIdentifier,NormalizedNode<?,?>> toNormalizedNode(final InstanceIdentifier<T> path, final T data);
50 * Translates supplied YANG Instance Identifier and NormalizedNode into Binding data.
52 * @param path Binding Instance Identifier
53 * @param data NormalizedNode representing data
54 * @return DOM Instance Identifier
56 Entry<InstanceIdentifier<?>,DataObject> fromNormalizedNode(final YangInstanceIdentifier path, NormalizedNode<?, ?> data);
59 * Returns map view which contains translated set of entries to normalized nodes.
60 * Returned set will not contain representation of leaf nodes.
62 * @param dom Map of YANG Instance Identifier to Data
63 * @return Map of Binding Instance Identifier to data.
65 Map<InstanceIdentifier<?>,DataObject> fromNormalizedNodes(Map<YangInstanceIdentifier,NormalizedNode<?,?>> dom);