All Downloads are FREE. Search and download functionalities are using the official Maven repository.

es.tid.topologyModuleBase.UnifyTopoModel.model.TranslateModel Maven / Gradle / Ivy

The newest version!
package es.tid.topologyModuleBase.UnifyTopoModel.model;

import es.tid.tedb.*;

import java.net.Inet4Address;
import java.util.ArrayList;
import java.util.List;

//import es.tid.tedb.elements.Link;


public class TranslateModel {
	

	

	public static Port translateNode(DomainTEDB db, es.tid.tedb.elements.Node n){
		Port port = new Port();
		port.setId( ((es.tid.tedb.elements.Node) n).getNodeID() );
		return port;
	}
	
	public static Port translateNodeIp(DomainTEDB ted, Inet4Address n, Node_Info nodeInfo) {
		Port port = new Port();
		port.setId(((java.net.Inet4Address) n).getHostAddress());
		return port;
	}
	
	
	
	
	public static Node translateTopology(String domainID, DomainTEDB ted){
		  Node node = new Node();
		  node.setId(domainID);
		  
		  //Translating nodes from TEDB to Unify Model
		  PortsSchema ports = new PortsSchema();
		  List portlist = new ArrayList();
		  for(Object nodeFromTed : ted.getIntraDomainLinksvertexSet()){			  
			  if(nodeFromTed instanceof es.tid.tedb.elements.Node){
				  portlist.add(translateNode(ted, (es.tid.tedb.elements.Node)nodeFromTed));
			  } else if(nodeFromTed instanceof java.net.Inet4Address){
				  portlist.add(translateNodeIp(ted, (java.net.Inet4Address)nodeFromTed, ted.getNodeTable().get(node)));
			  }
			  
		  }
		  
		  node.setLinks(translateIntraDomainLinks(domainID, ted));
		  if (ted.getItResources()!=null){
			  SoftwareResource resources = new SoftwareResource();		  
			  resources.setCpu(ted.getItResources().getCpu());
			  resources.setMem(ted.getItResources().getMem());
			  resources.setStorage(ted.getItResources().getStorage());
			  node.setResources(resources);
			  Metadata metadata = new Metadata();
			  MetadataMetadata e= new MetadataMetadata();
			  e.setKey("unify-slor");
			  e.setValue(ted.getItResources().getControllerIT());
			  metadata.getMetadata().add(e);
			  node.metadata.add(e);
		  }
				  
		  ports.setPort(portlist);
		  node.setPorts(ports);
		  
		  return node;
	  }
	
	public static LinksSchema translateInterDomainLinks(String domainID, MultiDomainTEDB ted){
			//Translating InterDomain links from TEDB to Unify Model
			LinksSchema links = new LinksSchema();
			List linklist = new ArrayList();
			
			for(InterDomainEdge linkTed : ted.getInterDomainLinks()){
				Link link = new Link();
				if (linkTed.getSrc_router_id() instanceof java.net.Inet4Address){
					String src = ((java.net.Inet4Address) linkTed.getSrc_router_id()).getHostAddress();
					String srcDomain = ((java.net.Inet4Address) linkTed.getDomain_src_router()).getHostAddress();
					String srcUnify = "/nodes/node[id="+srcDomain+"]/ports/port[id="+src+"]";
					link.setSrc(srcUnify);		
				}else{
					System.out.println("Type of InterDomain link not implemented for UnifyModel");
				}
				
				if (linkTed.getDst_router_id() instanceof java.net.Inet4Address){
					String dst = ((java.net.Inet4Address) linkTed.getDst_router_id()).getHostAddress();
					String dstDomain = ((java.net.Inet4Address) linkTed.getDomain_dst_router()).getHostAddress();
					String dstUnify = "/nodes/node[id="+dstDomain+"]/ports/port[id="+dst+"]";
					link.setDst(dstUnify);					
				}else{
					System.out.println("Type of InterDomain link not implemented for UnifyModel");
				}
				linklist.add(link);
			}
			links.setLink(linklist);
		  
			return links;
		}
	
	public static LinksSchema translateIntraDomainLinks(String domainID, DomainTEDB ted){
		//Translating InterDomain links from TEDB to Unify Model
		LinksSchema links = new LinksSchema();
		List linklist = new ArrayList();
		
	  
		for(IntraDomainEdge linkTed : ted.getIntraDomainLinks()){
			Link link = new Link();
			link.setId(linkTed.getLinkID());
			
			if( linkTed.getSource() instanceof  java.net.Inet4Address){
				String src = "/nodes/node[id="+domainID+"]/ports/port[id="+((java.net.Inet4Address)linkTed.getSource()).getHostAddress()+"]";
				link.setSrc(src);
			//} else if( linkTed.getSource( instanceof es.tid.tedb.elements.EndPoint ){
				
			} else {
				System.out.println("Type of link not implemented for UnifyModel");
			}
			
			
			if( linkTed.getTarget() instanceof  java.net.Inet4Address){
				String dst = "/nodes/node[id="+domainID+"]/ports/port[id="+((java.net.Inet4Address)linkTed.getTarget()).getHostAddress()+"]";
				link.setDst(dst);
			//} else if( linkTed.getTarget( instanceof es.tid.tedb.elements.EndPoint ){
				
			} else {
				System.out.println("Type of link not implemented for UnifyModel");
			}
			LinkResource linkResource = new LinkResource();
			if (linkTed.getTE_info().getUndirLinkDelay() != null) linkResource.setDelay(String.valueOf(linkTed.getTE_info().getUndirLinkDelay().getDelay()));
			if (linkTed.getTE_info().getUndirAvailableBw() != null) linkResource.setBandwidth(String.valueOf(linkTed.getTE_info().getUndirAvailableBw().getAvailableBw()));
			if (linkResource != null) link.setResources(linkResource);
			linklist.add(link);
		}
		links.setLink(linklist);
	  
		return links;
	}




}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy