1 package org.opendaylight.alto.commons.types.converter;
2 import java.util.LinkedList;
4 import org.opendaylight.alto.commons.helper.Converter;
5 import org.opendaylight.alto.commons.types.model150404.ModelCostMap;
6 import org.opendaylight.alto.commons.types.model150404.ModelCostMapData;
7 import org.opendaylight.alto.commons.types.rfc7285.RFC7285CostMap;
9 public class RFC2ModelCostMapConverter
10 extends Converter<RFC7285CostMap, ModelCostMap>{
12 protected RFC2ModelCostMapMetaConverter metaConv = new RFC2ModelCostMapMetaConverter();
13 protected RFC2ModelCostMapDataConverter dataConv = new RFC2ModelCostMapDataConverter();
15 public RFC2ModelCostMapConverter() {
18 public RFC2ModelCostMapConverter(RFC7285CostMap _in) {
23 protected Object _convert() {
24 ModelCostMap out = new ModelCostMap();
25 out.rid = getCostMapResourceId(in());
26 //TODO: replace the dummy one in the future
27 out.tag = "da65eca2eb7a10ce8b059740b0b2e3f8eb1d4786";
29 out.meta = metaConv.convert(in().meta);
30 out.map = new LinkedList<ModelCostMapData>();
31 for (String src : in().map.keySet()) {
32 ModelCostMapData data = new ModelCostMapData();
34 data.dstCosts = dataConv.convert(in().map.get(src));
40 private String getCostMapResourceId(RFC7285CostMap costMap) {
41 String networkMapRID = costMap.meta.netmap_tags.get(0).rid;
42 String costMetric = costMap.meta.costType.metric;
43 String costMode = costMap.meta.costType.mode;
44 return networkMapRID + "-" + costMetric + "-" + costMode;