/* * Test bed to learn using java properties files. */ package Utilities; import Entity.Disaster; import Entity.Hospital; import GeographicInformation.BoundingBox; import GlobalData.CTANetwork; import java.util.ArrayList; import org.xml.sax.SAXException; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; import org.xml.sax.Locator; /** * * @author harsha */ public class ConfigParser implements ContentHandler { private Locator locator; private String value; //For Location area private BoundingBox boundingBox; //private boolean simFlag = false; //private boolean northFlag = false; //For location in general private double lat; private double lon; //For agent Config //private Location tempLocation; //forDisasters //private boolean disasterFlag = false; private Disaster disaster; private int intensity; private int disTime; private ArrayList<Disaster> disasterList; //Infrastructure private Hospital hospital; private ArrayList<Hospital> hospitalList; private String tempName; private int capacity; //Agent Configurations //private String hostIp; @Override public void setDocumentLocator(Locator locator) { System.out.println(" * setDocumentLocator() called"); //We save this for latter use if desired. this.locator = locator; } @Override public void startDocument() throws SAXException { System.out.println("Parsing Begins...."); } @Override public void endDocument() throws SAXException { System.out.println(".....Parsing Ends"); } @Override public void processingInstruction(String target, String data) throws SAXException { System.out.println("PI: Target:" + target + " and Data:" + data); } @Override public void startPrefixMapping(String prefix, String uri) { System.out.println("Mapping starts for prefix " + prefix + " mapped to URI " + uri); } @Override public void endPrefixMapping(String prefix) { System.out.println("Mapping ends for prefix " + prefix); } @Override /* * TODO * Include the location name tag in the xml to name the locations. */ public void startElement(String namespaceURI, String localName, String rawName, Attributes atts) throws SAXException { System.out.print("startElement: " + localName); // if (!namespaceURI.equals("")) { // System.out.println(" in namespace " + namespaceURI // + " (" + rawName + ")"); // } else { // System.out.println(" has no associated namespace"); // } // for (int i = 0; i < atts.getLength(); i++) { // System.out.println(" Attribute: " + atts.getLocalName(i) // + "=" + atts.getValue(i)); // } //Create Objects here. if (localName.equalsIgnoreCase("simulation_area")) { //simFlag = true; boundingBox = new BoundingBox(); } else if (localName.equalsIgnoreCase("disasters")) { //disasterFlag = true; disasterList = new ArrayList<Disaster>(); } else if (localName.equalsIgnoreCase("infrastructure")) { hospitalList = new ArrayList<Hospital>(); //Other infrastructure can be initilized here. } } @Override public void endElement(String namespaceURI, String localName, String rawName) throws SAXException { //Assign Values here. System.out.println("endElement: " + localName + "\n"); if (localName.equalsIgnoreCase("latitude")) { lat = Double.parseDouble(value); } else if (localName.equalsIgnoreCase("longitude")) { lon = Double.parseDouble(value); } else if (localName.equalsIgnoreCase("north")) { boundingBox.nw.x = lat; boundingBox.nw.y = lon; } else if (localName.equalsIgnoreCase("east")) { boundingBox.se.x = lat; boundingBox.se.y = lon; } else if (localName.equalsIgnoreCase("time_disaster")) { disTime = Integer.parseInt(value); } else if (localName.equalsIgnoreCase("intensity")) { intensity = Integer.parseInt(value); } else if (localName.equalsIgnoreCase("disaster")) { disaster = new Disaster(lat, lon, intensity, disTime); disasterList.add(disaster); } else if (localName.equalsIgnoreCase("name")) { tempName = value; } else if (localName.equalsIgnoreCase("capacity")) { capacity = Integer.parseInt(value); } else if (localName.equalsIgnoreCase("hospital")) { hospital = new Hospital(lat, lon, tempName, capacity); hospitalList.add(hospital); } else if (localName.equalsIgnoreCase("ip")){ CTANetwork.hosts.add(value); } else if (localName.equalsIgnoreCase("")){ } } @Override public void characters(char[] ch, int start, int end) throws SAXException { value = new String(ch, start, end); System.out.println("characters: " + value); } @Override public void ignorableWhitespace(char[] ch, int start, int end) throws SAXException { String s = new String(ch, start, end); System.out.println("ignorableWhitespace: [" + s + "]"); } @Override public void skippedEntity(String name) throws SAXException { System.out.println("Skipping entity " + name); } }