Merge "AbstractConfigTest - exposed BundleContext and ServiceRegistration mock."
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / dom / serializer / impl / IntermediateMapping.xtend
1 package org.opendaylight.controller.sal.binding.dom.serializer.impl
2
3 import org.opendaylight.yangtools.yang.data.api.Node
4 import java.util.Map
5 import org.opendaylight.yangtools.yang.common.QName
6 import java.util.List
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
11
12 class IntermediateMapping {
13     
14     
15     
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;
20         val qname = elem.key;
21         val value = elem.value;
22         toNodeImpl(qname, value);
23     }
24
25     static def dispatch Node<?> toNodeImpl(QName name, List<?> objects) {
26         val values = new ArrayList<Node<?>>(objects.size);
27         for (obj : objects) {
28             values.add(toNode(obj as Map));
29         }
30         return new CompositeNodeTOImpl(name, null, values);
31     }
32
33     static def dispatch Node<?> toNodeImpl(QName name, Map<QName, Object> object) {
34         throw new UnsupportedOperationException("Unsupported node hierarchy.");
35     }
36
37     static def dispatch Node<?> toNodeImpl(QName name, Object object) {
38         return new SimpleNodeTOImpl(name, null, object);
39     } 
40 }