package com.legind.swinedroid.xml; import java.io.IOException; import org.achartengine.chartlib.AlertChart; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import com.legind.swinedroid.RequestService.Request; import com.legind.web.WebTransport.WebTransportException; public class OverviewXMLHandler extends XMLHandler{ private boolean in_all_time = false; private boolean in_last_72 = false; private boolean in_last_24 = false; private boolean in_high = false; private boolean in_medium = false; private boolean in_low = false; private boolean in_graph_info = false; private boolean in_label = false; public OverviewXMLElement current_element = new OverviewXMLElement(); public AlertChart alertChart; @Override public void startElement(String uri, String name, String qName, Attributes atts){ super.startElement(uri, name, qName, atts); if(name.trim().equals("graph_info")){ alertChart.addAlertMoment(); in_graph_info = true; } if(name.trim().equals("label")){ super.clearStringBuilder(); in_label = true; } if(name.trim().equals("all_time")){ in_all_time = true; } if(name.trim().equals("last_72")){ in_last_72 = true; } if(name.trim().equals("last_24")){ in_last_24 = true; } if(name.trim().equals("high")){ super.clearStringBuilder(); in_high = true; } if(name.trim().equals("medium")){ super.clearStringBuilder(); in_medium = true; } if(name.trim().equals("low")){ super.clearStringBuilder(); in_low = true; } } @Override public void endElement(String uri, String name, String qName){ handleString(); super.endElement(uri, name, qName); if(name.trim().equals("graph_info")){ in_graph_info = false; } if(name.trim().equals("label")){ in_label = false; } if(name.trim().equals("all_time")){ in_all_time = false; } if(name.trim().equals("last_72")){ in_last_72 = false; } if(name.trim().equals("last_24")){ in_last_24 = false; } if(name.trim().equals("high")){ in_high = false; } if(name.trim().equals("medium")){ in_medium = false; } if(name.trim().equals("low")){ in_low = false; } } public void handleString(){ if(in_graph_info && in_high){ alertChart.setLastMomentHighAlert(Integer.parseInt(super.getStringBuilder().toString())); } if(in_graph_info && in_medium){ alertChart.setLastMomentMediumAlert(Integer.parseInt(super.getStringBuilder().toString())); } if(in_graph_info && in_low){ alertChart.setLastMomentLowAlert(Integer.parseInt(super.getStringBuilder().toString())); } if(in_graph_info && in_label){ alertChart.setLastMomentLabel(super.getStringBuilder().toString()); } if(in_all_time && in_high) current_element.all_time_high = Integer.parseInt(super.getStringBuilder().toString()); if(in_all_time && in_medium) current_element.all_time_medium = Integer.parseInt(super.getStringBuilder().toString()); if(in_all_time && in_low) current_element.all_time_low = Integer.parseInt(super.getStringBuilder().toString()); if(in_last_72 && in_high) current_element.last_72_high = Integer.parseInt(super.getStringBuilder().toString()); if(in_last_72 && in_medium) current_element.last_72_medium = Integer.parseInt(super.getStringBuilder().toString()); if(in_last_72 && in_low) current_element.last_72_low = Integer.parseInt(super.getStringBuilder().toString()); if(in_last_24 && in_high) current_element.last_24_high = Integer.parseInt(super.getStringBuilder().toString()); if(in_last_24 && in_medium) current_element.last_24_medium = Integer.parseInt(super.getStringBuilder().toString()); if(in_last_24 && in_low) current_element.last_24_low = Integer.parseInt(super.getStringBuilder().toString()); } @Override public void createElement(Request request, String call) throws IOException, SAXException, XMLHandlerException, WebTransportException{ alertChart = new AlertChart(); super.createElement(request, call); } }