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

es.tid.emulator.node.topology.ParametersPrueba Maven / Gradle / Ivy

The newest version!
package es.tid.emulator.node.topology;

import java.io.File;
import java.net.Inet4Address;
import java.util.LinkedList;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.CharacterData;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class ParametersPrueba {
	
	private LinkedList PCETEDBAddressList;
	
	private boolean OSPF_RAW_SOCKET;
	
	private boolean OSPF_TCP_SOCKET;
	
	private LinkedList OSPF_TCP_PORTList;
	/**
	 * Parametro utilizado para saber si la red es de tipo multilayer o no
	 */
	private boolean multilayer;
	private String networkFile;
	/**
	 * Address where we are executing the program that create a NetworkEmulator
	 */
	private Inet4Address address;



	public Inet4Address getAddress() {
		if (address==null){
			//Ver c�mo puedo sacar la direccion donde estoy
			//FIXME:
		}
		return address;
	}


	public void setAddress(Inet4Address address) {
		this.address = address;
	}




	public String getNetworkFile() {
		return networkFile;
	}
	





	public boolean isMultilayer() {
		return multilayer;
	}


	public boolean isOSPF_RAW_SOCKET() {
		return OSPF_RAW_SOCKET;
	}





	public void setOSPF_RAW_SOCKET(boolean oSPF_RAW_SOCKET) {
		OSPF_RAW_SOCKET = oSPF_RAW_SOCKET;
	}





	public boolean isOSPF_TCP_SOCKET() {
		return OSPF_TCP_SOCKET;
	}





	public void setOSPF_TCP_SOCKET(boolean oSPF_TCP_SOCKET) {
		OSPF_TCP_SOCKET = oSPF_TCP_SOCKET;
	}





		public LinkedList getPCETEDBAddressList() {
		return PCETEDBAddressList;
	}


	public void setPCETEDBAddressList(LinkedList pCETEDBAddressList) {
		PCETEDBAddressList = pCETEDBAddressList;
	}


	public LinkedList getOSPF_TCP_PORTList() {
		return OSPF_TCP_PORTList;
	}


	public void setOSPF_TCP_PORTList(LinkedList oSPF_TCP_PORTList) {
		OSPF_TCP_PORTList = oSPF_TCP_PORTList;
	}


		public void initialize(String readFile){
			File file = new File(readFile);
			try {
				DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
				Document doc = builder.parse(file);
				
					NodeList session_nl = doc.getElementsByTagName("Session");
					if (session_nl!=null){	
						PCETEDBAddressList = new LinkedList();
						OSPF_TCP_PORTList = new LinkedList();
						
						for (int i=0; i0){					
									Element PCETEDBAddress_el = (Element) PCETEDBAddress_nl.item(0);
									String PCETEDBAddress_s = getCharacterDataFromElement(PCETEDBAddress_el);
									PCETEDBAddressList.add((Inet4Address) Inet4Address.getByName(PCETEDBAddress_s));
								}
							}
							NodeList OSPF_TCP_PORT_nl = session_el.getElementsByTagName("OSPF_TCP_PORT");
							if (OSPF_TCP_PORT_nl!=null){
								if (OSPF_TCP_PORT_nl.getLength()>0){					
									Element OSPF_TCP_PORT_el = (Element) OSPF_TCP_PORT_nl.item(0);
									String OSPF_TCP_PORT_s = getCharacterDataFromElement(OSPF_TCP_PORT_el);
									OSPF_TCP_PORTList.add(Integer.valueOf(OSPF_TCP_PORT_s));
								}
							}
						}

					}
					NodeList OSPF_RAW_SOCKET_nl = doc.getElementsByTagName("OSPF_RAW_SOCKET");
					if (OSPF_RAW_SOCKET_nl!=null){
						if (OSPF_RAW_SOCKET_nl.getLength()>0){					
							Element OSPF_RAW_SOCKET_el = (Element) OSPF_RAW_SOCKET_nl.item(0);
							String OSPF_RAW_SOCKET_s = getCharacterDataFromElement(OSPF_RAW_SOCKET_el);
							OSPF_RAW_SOCKET=Boolean.parseBoolean(OSPF_RAW_SOCKET_s);
							}
					}
					NodeList OSPF_TCP_SOCKET_nl = doc.getElementsByTagName("OSPF_TCP_SOCKET");
					if (OSPF_TCP_SOCKET_nl!=null){
						if (OSPF_TCP_SOCKET_nl.getLength()>0){					
							Element OSPF_TCP_SOCKET_el = (Element) OSPF_TCP_SOCKET_nl.item(0);
							String OSPF_TCP_SOCKET_s = getCharacterDataFromElement(OSPF_TCP_SOCKET_el);
							OSPF_TCP_SOCKET=Boolean.parseBoolean(OSPF_TCP_SOCKET_s);
							}
					}
					
					NodeList multilayer_nl = doc.getElementsByTagName("multilayer");
					if (multilayer_nl!=null){
						if (multilayer_nl.getLength()>0){					
							Element multilayer_el = (Element)multilayer_nl.item(0);
							String multilayer_s = getCharacterDataFromElement(multilayer_el);
							multilayer=Boolean.parseBoolean(multilayer_s);
							}
					}
					
					NodeList networkFile_nl = doc.getElementsByTagName("networkFile");
					if (networkFile_nl!=null){
						if (networkFile_nl.getLength()>0){					
							Element networkFile_el = (Element) networkFile_nl.item(0);
							 networkFile = getCharacterDataFromElement(networkFile_el);
							
							}
					}
					
		
					
//			     SAXParserFactory factory = SAXParserFactory.newInstance();
//			     SAXParser saxParser = factory.newSAXParser();
//			 
//			     DefaultHandler handler = new DefaultHandler() {
//			    	 
//			    	  String tempVal;
//			    	 
//			    	  public void startElement(String uri, String localName,
//			    		        String qName, Attributes attributes)
//			    		        throws SAXException {
//
//
//			    	  }
//			    	  
//			    	   public void endElement(String uri, String localName,
//			    		          String qName)
//			    		          throws SAXException {
//			    		   try{
//			    		          if(qName.equalsIgnoreCase("PCETEDBAddress")) {
//			    		        	  PCETEDBAddress=(Inet4Address) Inet4Address.getByName(tempVal.trim());
//			    		          }
//			    		          else if (qName.equalsIgnoreCase("OSPF_RAW_SOCKET")){				    		      
//			    		     
//			    		        	  OSPF_RAW_SOCKET = Boolean.parseBoolean(tempVal.trim());
//			    		          }
//			    		          else if (qName.equalsIgnoreCase("OSPF_TCP_SOCKET")){
//			    		        	  OSPF_TCP_SOCKET = Boolean.parseBoolean(tempVal.trim());
//			    		          }
//			    		          else if (qName.equalsIgnoreCase("OSPF_TCP_PORT")){
//			    		        	  OSPF_TCP_PORT = Integer.parseInt(tempVal.trim());
//			    		        	  
//			    		          }
//			    		          else if (qName.equalsIgnoreCase("networkFile")){
//			    		        	  networkFile= tempVal.trim();
//			    		          }
//			    		          else if (qName.equalsIgnoreCase("NetworkLSPtype")){
//			    		        	  networkLSPtype = tempVal.trim();
//			    		          }
//			    		          /*Sacar mi direccion: getLocalHost...mirar si puedo sacarla*/
//			    		          else if (qName.equalsIgnoreCase("Address")){
//			    		        	  address=(Inet4Address) Inet4Address.getByName(tempVal.trim());
//			    		          }
//			    		      	}catch (Exception e) {
//			    	    			e.printStackTrace();
//			    	    		}
//			    		        
//			    		          
//			    		    		 
//			    	   }		   
//			    	   
//			    	   public void characters(char[] ch, int start, int length) throws SAXException {
//			    			tempVal = new String(ch,start,length);
//			    		}
//			    	   };
//			
//			saxParser.parse("NetworkEmulatorConfiguration.xml", handler);     
			     
			}catch (Exception e) {
				  System.err.println("Problemas al leer la configuracion");	
			      e.printStackTrace();
			      System.exit(1);
		    }
				
			
		}
		
		public static String getCharacterDataFromElement(Element e) {
			Node child = e.getFirstChild();
			if (child instanceof CharacterData) {
				CharacterData cd = (CharacterData) child;
				return cd.getData();
			} else {
				return "?";
			}
		}



}






© 2015 - 2025 Weber Informatics LLC | Privacy Policy