1 package org.opendaylight.controller.sal.binding.dom.serializer.impl
3 import org.opendaylight.yangtools.yang.data.api.Node
5 import org.opendaylight.yangtools.yang.common.QName
7 import java.util.ArrayList
8 import org.opendaylight.yangtools.yang.data.impl.CompositeNodeTOImpl
9 import org.opendaylight.yangtools.yang.data.impl.SimpleNodeTOImpl
10 import com.google.common.base.Preconditions
12 class IntermediateMapping {
16 static def Node<?> toNode(Map map) {
17 val nodeMap = map as Map<QName,Object>;
18 Preconditions.checkArgument(map.size == 1);
19 val elem = nodeMap.entrySet.iterator.next;
21 val value = elem.value;
22 toNodeImpl(qname, value);
25 static def dispatch Node<?> toNodeImpl(QName name, List<?> objects) {
26 val values = new ArrayList<Node<?>>(objects.size);
28 values.add(toNode(obj as Map));
30 return new CompositeNodeTOImpl(name, null, values);
33 static def dispatch Node<?> toNodeImpl(QName name, Map<QName, Object> object) {
34 throw new UnsupportedOperationException("Unsupported node hierarchy.");
37 static def dispatch Node<?> toNodeImpl(QName name, Object object) {
38 return new SimpleNodeTOImpl(name, null, object);