finalize alto-manager and add README.md file
[alto.git] / alto-commons / src / main / java / org / opendaylight / alto / commons / types / converter / RFC2ModelEndpointPropMapConverter.java
1 package org.opendaylight.alto.commons.types.converter;
2
3 import java.io.IOException;
4 import java.nio.charset.StandardCharsets;
5 import java.nio.file.Files;
6 import java.nio.file.Paths;
7 import java.util.LinkedList;
8 import java.util.Map;
9
10 import org.opendaylight.alto.commons.helper.Converter;
11 import org.opendaylight.alto.commons.types.model150404.ModelDependentVtag;
12 import org.opendaylight.alto.commons.types.model150404.ModelEndpointProperties;
13 import org.opendaylight.alto.commons.types.model150404.ModelEndpointPropertyMap;
14 import org.opendaylight.alto.commons.types.model150404.ModelEndpointPropertyMeta;
15 import org.opendaylight.alto.commons.types.model150404.ModelProperties;
16 import org.opendaylight.alto.commons.types.rfc7285.RFC7285EndpointPropertyMap;
17
18 public class RFC2ModelEndpointPropMapConverter 
19   extends Converter<RFC7285EndpointPropertyMap, ModelEndpointPropertyMap> {
20   
21   @Override
22   protected Object _convert() {
23     ModelEndpointPropertyMap out = new ModelEndpointPropertyMap();
24     out.endpointPropertyMeta = convertMeta(in().meta);
25     out.properties = new LinkedList<ModelEndpointProperties>();
26     for (String endpoint : in().map.keySet()) {
27       out.properties.add(convertEndpointProperty(endpoint, in().map.get(endpoint)));
28     }
29     return out;
30   }
31   
32   protected static String readFromFile(String path) throws IOException {
33     return new String(Files.readAllBytes(Paths.get(path)),
34         StandardCharsets.UTF_8);
35   }
36   
37   private ModelEndpointPropertyMeta convertMeta(RFC7285EndpointPropertyMap.Meta meta) {
38     ModelEndpointPropertyMeta endpointPropertyMeta = new ModelEndpointPropertyMeta();
39     
40     endpointPropertyMeta.dependentVtags = new LinkedList<ModelDependentVtag>();
41     ModelDependentVtag dependentVtag = new ModelDependentVtag();
42     dependentVtag.rid = meta.netmap_tags.get(0).rid;
43     dependentVtag.vTag = meta.netmap_tags.get(0).tag;
44     
45     endpointPropertyMeta.dependentVtags.add(dependentVtag);
46     return endpointPropertyMeta;
47   }
48   
49   private ModelEndpointProperties 
50     convertEndpointProperty(String endpoint, Map<String, String> property) {
51       ModelEndpointProperties endpointProperty = new ModelEndpointProperties();
52       endpointProperty.endpoint = endpoint;
53       endpointProperty.properties = new LinkedList<ModelProperties>();
54       for (String propertyType : property.keySet()) {
55         endpointProperty.properties.add(convertProperty(propertyType, property.get(propertyType)));
56       }
57       return endpointProperty;
58   }
59   
60   private ModelProperties convertProperty(String propertyType, String propertyValue) {
61     ModelProperties property = new ModelProperties();
62     property.propertyType = propertyType;
63     property.propertyValue = propertyValue;
64     return property;
65   }
66
67 }