Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package se.plushogskolan.jetbroker.plane.integration.airportws;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.parsers.SAXParser;
- import javax.xml.parsers.SAXParserFactory;
- import org.xml.sax.Attributes;
- import org.xml.sax.SAXException;
- import org.xml.sax.helpers.DefaultHandler;
- import se.plushogskolan.jee.utils.integration.FailedIntegrationConnectionException;
- import se.plushogskolan.jetbroker.plane.domain.Airport;
- import se.plushogskolan.jetbroker.plane.integration.airportws.stubs.AirportSoap;
- public class AirportWebserviceImpl implements AirportWebservice {
- @Override
- public Collection<Airport> getAllAirports()
- throws FailedIntegrationConnectionException {
- se.plushogskolan.jetbroker.plane.integration.airportws.stubs.Airport airport = new se.plushogskolan.jetbroker.plane.integration.airportws.stubs.Airport();
- AirportSoap port = airport.getAirportSoap();
- String xmlDataAsString = port.getAirportInformationByCountry("sweden");
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setValidating(true);
- factory.setNamespaceAware(false);
- SAXParser parser = null;
- try {
- parser = factory.newSAXParser();
- } catch (ParserConfigurationException e) {
- e.printStackTrace();
- } catch (SAXException e) {
- e.printStackTrace();
- }
- InputStream is = SAXParser.class.getResourceAsStream(xmlDataAsString);
- MyHandler handler = new MyHandler();
- try {
- parser.parse(is, handler);
- } catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return null;
- }
- static class MyHandler extends DefaultHandler{
- boolean isAirport;
- boolean isAirportCode;
- boolean isLongitudeDegree;
- boolean isLatitudeDegree;
- boolean isLongitudeMinute;
- boolean isLatitudeMinute;
- boolean isAirportName;
- private Airport airport;
- private List<Airport> airports = new ArrayList<Airport>();
- private String currentTextValue;
- private String longitude = "";
- private String latitude = "";
- public void characters(char[] ch, int start, int len) throws SAXException {
- currentTextValue = new String(ch, start, len);
- }
- public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
- if (qName.equals("Table")) {
- airport = new Airport();
- isAirport=true;
- } else if (qName.equals("AirportCode")) {
- isAirportCode = true;
- } else if (qName.equals("CityOrAirportName")) {
- isAirportName = true;
- } else if (qName.equals("LatitudeDegree")) {
- isLatitudeDegree = true;
- } else if (qName.equals("LatitudeMinute")) {
- isLatitudeMinute = true;
- } else if (qName.equals("LongitudeDegree")) {
- isLongitudeDegree = true;
- } else if (qName.equals("LongitudeMinute")) {
- isLongitudeMinute = true;
- }
- }
- public void endElement(String uri, String localName, String qName) throws SAXException {
- if (qName.equals("Table")) {
- airport.setLatitude(Double.parseDouble(latitude));
- airport.setLongitude(Double.parseDouble(longitude));
- longitude = "";
- latitude = "";
- airports.add(airport);
- isAirport = false;
- } else if (qName.equals("AirportCode")) {
- airport.setCode(currentTextValue);
- isAirportCode = false;
- } else if (qName.equals("CityOrAirportName")) {
- airport.setName(currentTextValue);
- isAirportName = false;
- } else if (qName.equals("LatitudeDegree")) {
- latitude = currentTextValue;
- isLatitudeDegree = false;
- } else if (qName.equals("LatitudeMinute")) {
- latitude = latitude+"."+currentTextValue;
- isLatitudeMinute = false;
- } else if (qName.equals("LongitudeDegree")) {
- longitude = currentTextValue;
- isLongitudeDegree = false;
- } else if (qName.equals("LongitudeMinute")) {
- longitude = longitude+"."+currentTextValue;
- isLongitudeMinute = false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement