Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package org.foi.nwtis.mtensic.ws.serveri;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.sql.Timestamp;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.jws.WebService;
- import javax.jws.WebMethod;
- import javax.jws.WebParam;
- import javax.servlet.ServletContext;
- import org.foi.nwtis.mtensic.konfiguracije.Konfiguracija;
- import org.foi.nwtis.mtensic.konfiguracije.bp.BP_Konfiguracija;
- import org.foi.nwtis.mtensic.web.podaci.Aerodrom;
- import org.foi.nwtis.rest.klijenti.LIQKlijent;
- import org.foi.nwtis.rest.podaci.AvionLeti;
- import org.foi.nwtis.rest.podaci.Lokacija;
- /**
- *
- * @author Monika
- */
- @WebService(serviceName = "AIRP2WS")
- public class AIRP2WS {
- private static ServletContext sc = null;
- private Konfiguracija konfig;
- private String airport_name;
- private String country;
- /**
- * Web servis za dohvat svih aerodroma iz tablice MYAIRPORTS
- *
- * @return vraća se lista tipa Aerodrom koja sadrži aerodrome
- */
- @WebMethod(operationName = "dajSveAerodrome")
- public java.util.List<Aerodrom> dajSveAerodrome() {
- List<Aerodrom> aerodromi = new ArrayList<>();
- try {
- BP_Konfiguracija bp_konf = (BP_Konfiguracija) sc.getAttribute("BP_Konfig");
- Class.forName(bp_konf.getDriverDatabase());
- String query = "SELECT * FROM MYAIRPORTS";
- try (Connection c = DriverManager.getConnection(bp_konf.getServerDatabase() + bp_konf.getUserDatabase(), bp_konf.getUserUsername(), bp_konf.getUserPassword());) {
- java.sql.Statement s = c.createStatement();
- ResultSet rs = s.executeQuery(query);
- System.out.println(rs);
- while (rs.next()) {
- String coordinates = rs.getString("COORDINATES");
- String[] split = coordinates.split(",");
- Lokacija lokacija = new Lokacija(split[0], split[1]);
- Aerodrom aerodrom = new Aerodrom(rs.getString("IDENT"), rs.getString("NAME"), rs.getString("ISO_COUNTRY"), lokacija);
- aerodromi.add(aerodrom);
- }
- } catch (SQLException ex) {
- System.out.println("ERROR! Greška kod spajanja na bazu.");
- }
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(AIRP2WS.class.getName()).log(Level.SEVERE, null, ex);
- }
- return aerodromi;
- }
- /**
- * Web servis za dohvaćanje pojedinog aerodroma temeljem icao parametra
- *
- * @param icao je parametar po kojem se traži aerodrom iz tablice AIRPORTS
- * @return vraća se instanca tipa Aerodrom
- */
- @WebMethod(operationName = "dajAerodrom")
- public Aerodrom dajAerodrom(@WebParam(name = "icao") String icao
- ) {
- Aerodrom aerodrom = null;
- konfig = (Konfiguracija) sc.getAttribute("Konfig");
- try {
- BP_Konfiguracija bp_konf = (BP_Konfiguracija) sc.getAttribute("BP_Konfig");
- Class.forName(bp_konf.getDriverDatabase());
- String query = "SELECT * FROM NWTIS_G3.AIRPORTS WHERE IDENT = '" + icao + "'";
- try (Connection c = DriverManager.getConnection(bp_konf.getServerDatabase() + bp_konf.getUserDatabase(), bp_konf.getUserUsername(), bp_konf.getUserPassword());) {
- Statement s = c.createStatement();
- ResultSet rs = s.executeQuery(query);
- while (rs.next()) {
- airport_name = rs.getString("NAME");
- country = rs.getString("ISO_COUNTRY");
- }
- } catch (SQLException ex) {
- System.out.println("ERROR! Greška kod dohvaćanja podataka.");
- }
- } catch (ClassNotFoundException ex) {
- System.out.println("ERROR! Greška kod spajanja na bazu.");
- }
- String token = konfig.dajPostavku("LocationIQ.token");
- LIQKlijent liqk = new LIQKlijent(token);
- //System.out.println("icao: " + icao + ", name: " + airport_name + ", country: " + country + ", location: " + liqk.getGeoLocation(airport_name));
- aerodrom = new Aerodrom(icao, airport_name, country, liqk.getGeoLocation(airport_name));
- //System.out.println(liqk.getGeoLocation(airport_name).getLatitude() + ", " + liqk.getGeoLocation(airport_name).getLongitude());
- return aerodrom;
- }
- /**
- * Static metoda koja vraća servlet context
- *
- * @return vraća se instanca servlet contexta
- */
- public static ServletContext getSc() {
- return sc;
- }
- /**
- * Static metoda koja postavlja servlet context
- *
- * @param servletContext je kontekst servleta
- */
- public static void setSc(ServletContext servletContext) {
- AIRP2WS.sc = servletContext;
- }
- /**
- * Web servis koji služi za dodavanje aerodroma iz tablice AIRPORTS u
- * tablicu MYAIRPORTS temeljem icao identifikatora
- *
- * @param icao je identifikator aerodroma koji se treba dohvatiti iz tablice
- * airports
- * @return vraća se boolean vrijednost ovisno o uspješnosti operacije
- */
- @WebMethod(operationName = "dodajAerodrom")
- public boolean dodajAerodrom(@WebParam(name = "icao") String icao) {
- String naziv = "";
- String drzava = "";
- try {
- BP_Konfiguracija bp_konf = (BP_Konfiguracija) sc.getAttribute("BP_Konfig");
- Class.forName(bp_konf.getDriverDatabase());
- String query = "SELECT name, iso_country FROM AIRPORTS WHERE IDENT = '" + icao + "'";
- try (Connection c = DriverManager.getConnection(bp_konf.getServerDatabase() + bp_konf.getUserDatabase(), bp_konf.getUserUsername(), bp_konf.getUserPassword());) {
- Statement s = c.createStatement();
- ResultSet rs = s.executeQuery(query);
- while (rs.next()) {
- naziv = rs.getString("NAME");
- drzava = rs.getString("ISO_COUNTRY");
- }
- } catch (SQLException ex) {
- System.out.println("ERROR! Greska kod dohvacanja podataka.");
- }
- } catch (ClassNotFoundException ex) {
- System.out.println("ERROR! Greska kod spajanja na bazu.");
- }
- konfig = (Konfiguracija) sc.getAttribute("Konfig");
- String token = konfig.dajPostavku("LocationIQ.token");
- LIQKlijent liqk = new LIQKlijent(token);
- Lokacija lokacija = new Lokacija(liqk.getGeoLocation(naziv).getLatitude(), liqk.getGeoLocation(naziv).getLongitude());
- try {
- BP_Konfiguracija bp_konf = (BP_Konfiguracija) sc.getAttribute("BP_Konfig");
- Class.forName(bp_konf.getDriverDatabase());
- Timestamp timestamp = new Timestamp(new Date().getTime());
- String lok = lokacija.getLatitude() + ", " + lokacija.getLongitude();
- String query = "INSERT INTO MYAIRPORTS (IDENT,NAME,ISO_COUNTRY,COORDINATES,STORED) VALUES (?, ?, ?, ?, ?)";
- try (Connection c = DriverManager.getConnection(bp_konf.getServerDatabase() + bp_konf.getUserDatabase(), bp_konf.getUserUsername(), bp_konf.getUserPassword());) {
- PreparedStatement preparedStatement = c.prepareStatement(query);
- preparedStatement.setString(1, icao);
- preparedStatement.setString(2, naziv);
- preparedStatement.setString(3, drzava);
- preparedStatement.setString(4, lok);
- preparedStatement.setTimestamp(5, timestamp);
- preparedStatement.execute();
- } catch (SQLException ex) {
- System.out.println("ERROR! Greska kod dohvacanja podataka.");
- }
- } catch (ClassNotFoundException ex) {
- System.out.println("ERROR! Greska kod spajanja na bazu.");
- }
- return false;
- }
- /**
- * Web servis koji služi za vraćanje lista tipe AvionLeti koja sadrži sve
- * avione koji su poletjeli s određenog aerodroma u određenom vremenskom
- * intervalu
- *
- * @param icao je identifikator aerodroma
- * @param odVremena je početak vremenskog intervala
- * @param doVremena je kraj vremenskog intervala
- * @return vraća se lista tipa AvionLeti koja sadrži poletjele avione s
- * određenog aerodroma
- */
- @WebMethod(operationName = "dajAvionePoletjeleSAerodroma")
- public java.util.List<AvionLeti> dajAvionePoletjeleSAerodroma(@WebParam(name = "icao") String icao, @WebParam(name = "odVremena") int odVremena, @WebParam(name = "doVremena") int doVremena) {
- java.util.List<AvionLeti> poletjeliAvioni = new ArrayList<>();
- AvionLeti avion;
- konfig = (Konfiguracija) sc.getAttribute("Konfig");
- try {
- BP_Konfiguracija bp_konf = (BP_Konfiguracija) sc.getAttribute("BP_Konfig");
- Class.forName(bp_konf.getDriverDatabase());
- String query = "SELECT * FROM NWTIS_G3.AIRPLANES WHERE ICAO24 = " + icao + " AND LASTSEEN < " + doVremena + " AND LASTSEEN >= " + odVremena;
- try (Connection c = DriverManager.getConnection(bp_konf.getServerDatabase() + bp_konf.getUserDatabase(), bp_konf.getUserUsername(), bp_konf.getUserPassword());) {
- Statement s = c.createStatement();
- ResultSet rs = s.executeQuery(query);
- while (rs.next()) {
- avion = new AvionLeti();
- avion.setIcao24(rs.getString("ICAO24"));
- avion.setFirstSeen(rs.getInt("FIRSTSEEN"));
- avion.setEstDepartureAirport(rs.getString("ESTDEPARTUREAIRPORT"));
- avion.setLastSeen(rs.getInt("LASTSEEN"));
- avion.setEstArrivalAirport(rs.getString("ESTARRIVALAIRPORT"));
- avion.setCallsign(rs.getString("CALLSIGN"));
- avion.setEstDepartureAirportHorizDistance(rs.getInt("ESTDEPARTUREAIRPORTHORIZDISTANCE"));
- avion.setEstDepartureAirportVertDistance(rs.getInt("ESTDEPARTUREAIRPORTVERTDISTANCE"));
- avion.setEstArrivalAirportHorizDistance(rs.getInt("ESTARRIVALAIRPORTHORIZDISTANCE"));
- avion.setEstArrivalAirportVertDistance(rs.getInt("ESTARRIVALAIRPORTVERTDISTANCE"));
- avion.setArrivalAirportCandidatesCount(rs.getInt("ARRIVALAIRPORTCANDIDATESCOUNT"));
- avion.setDepartureAirportCandidatesCount(rs.getInt("DEPARTUREAIRPORTCANDIDATESCOUNT"));
- poletjeliAvioni.add(avion);
- }
- } catch (SQLException ex) {
- System.out.println("ERROR! Greška kod dohvaćanja podataka.");
- }
- } catch (ClassNotFoundException ex) {
- System.out.println("ERROR! Greška kod spajanja na bazu.");
- }
- return poletjeliAvioni;
- }
- /**
- * Web servis koji vraća postavljenu konfiguraciju za broj redaka u
- * izborniku
- *
- * @return vraća se numerička vrijednost broja redaka u izborniku
- */
- @WebMethod(operationName = "izbornikBrojRedaka")
- public int izbornikBrojRedaka() {
- konfig = (Konfiguracija) sc.getAttribute("Konfig");
- int brojRedaka = Integer.parseInt(konfig.dajPostavku("izbornik.brojRedaka"));
- return brojRedaka;
- }
- /**
- * Web servis koji vraća postavljenu konfiguraciju za broj redaka u tablici
- *
- * @return vraća se numerička vrijednost broja redaka u tablici
- */
- @WebMethod(operationName = "tablicaBrojRedaka")
- public int tablicaBrojRedaka() {
- konfig = (Konfiguracija) sc.getAttribute("Konfig");
- int brojRedaka = Integer.parseInt(konfig.dajPostavku("tablica.brojRedaka"));
- return brojRedaka;
- }
- /**
- * Web servis koji služi za provjeru da li je određeni avion poletio s određenog aerodroma u vremenskom intervalu
- *
- * @param icao24 je identifikator polazišnog aerodroma
- * @param icao je identifaktor dolazišnog aerodroma
- * @param odVremena je početak vremenskog intervala
- * @param doVremena je kraj vremenskog intervala
- * @return vraća se boolean vrijednost ovisno o tome je li avion poletio ili ne
- */
- @WebMethod(operationName = "provjeriAvionPoletioSAerodroma")
- public boolean provjeriAvionPoletioSAerodroma(@WebParam(name = "icao24") String icao24, @WebParam(name = "icao") String icao, @WebParam(name = "odVremena") int odVremena, @WebParam(name = "doVremena") int doVremena) {
- konfig = (Konfiguracija) sc.getAttribute("Konfig");
- try {
- BP_Konfiguracija bp_konf = (BP_Konfiguracija) sc.getAttribute("BP_Konfig");
- Class.forName(bp_konf.getDriverDatabase());
- String query = "SELECT * FROM NWTIS_G3.AIRPLANES WHERE ICAO24 = '" + icao24 + "' AND ESTARRIVALAIRPORT = '" + icao + "' AND LASTSEEN >= " + odVremena + " AND LASTSEEN <= " + doVremena;
- try (Connection c = DriverManager.getConnection(bp_konf.getServerDatabase() + bp_konf.getUserDatabase(), bp_konf.getUserUsername(), bp_konf.getUserPassword());) {
- Statement s = c.createStatement();
- ResultSet rs = s.executeQuery(query);
- if (rs.next() != false) {
- return true;
- }
- } catch (SQLException ex) {
- System.out.println("ERROR! Greška kod dohvaćanja podataka.");
- }
- } catch (ClassNotFoundException ex) {
- System.out.println("ERROR! Greška kod spajanja na bazu.");
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement