siddur.solidtrust.azure.InterDataConnector.java Source code

Java tutorial

Introduction

Here is the source code for siddur.solidtrust.azure.InterDataConnector.java

Source

package siddur.solidtrust.azure;

import java.io.StringReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import siddur.solidtrust.entity.AzureCar;

import com.interdata.InterData;
import com.interdata.InterDataLocator;
import com.interdata.InterDataSoap_BindingStub;

public class InterDataConnector {
    //https://interdata.vwe.nl/DataAanvraag.asmx?WSDL

    private static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

    public static AzureCar findByLicensePlate(String lp) throws Exception {
        InterData g = new InterDataLocator();
        InterDataSoap_BindingStub stub = (InterDataSoap_BindingStub) g.getInterDataSoap();
        String result = stub.standaardDataRequest(buildXML(lp));
        return convert(result);
    }

    private static String buildXML(String lp) {
        StringBuffer sb = new StringBuffer();
        sb.append("<bericht>");
        sb.append("<authenticatie>");
        sb.append("<naam>VBGA01</naam>");
        sb.append("<wachtwoord>V#B9G2</wachtwoord>");
        sb.append("<berichtsoort>SB-RDW-ADVANCED</berichtsoort>");
        sb.append("</authenticatie>");
        sb.append("<parameters>");
        sb.append("<kenteken>");
        sb.append(lp);
        sb.append("</kenteken>");
        sb.append("</parameters>");
        sb.append("</bericht>");
        return sb.toString();
    }

    private static AzureCar convert(String xml) throws Exception {
        SAXReader reader = new SAXReader();
        Document document = reader.read(new StringReader(xml));
        Element root = document.getRootElement();
        Element rubrieken = (Element) root.elements("rubrieken").get(0);
        if (rubrieken != null) {
            Element rdwInfoAdvanced = (Element) rubrieken.elements("rdwInfoAdvanced").get(0);
            return convert(rdwInfoAdvanced);
        }
        return null;
    }

    private static AzureCar convert(Element ele) {
        AzureCar car = new AzureCar();
        car.setLicensePlate(getEleString(ele, "kenteken"));
        car.setBpm(getEleInt(ele, "bpm"));
        car.setNewPrice(getEleInt(ele, "catalogusPrijs "));
        //      car.setCo2(getEleShort(ele, ""));
        //      car.setDateRegistedOnName(getEleDate(ele, ""));
        //      car.setDateRegistedOnHolland(getEleDate(ele, ""));
        car.setDateOfBuild(getEleDate(ele, "datumEersteToelatingInternationaal"));
        car.setType(getEleString(ele, "Handelsbenaming"));
        car.setFirstColor(getEleString(ele, "kleur1"));
        car.setFuelType(getEleString(ele, "brandstof1"));
        car.setArrangement(getEleString(ele, "inrichting"));
        car.setBrand(getEleString(ele, "merk"));
        //      car.setEnviromentClassification(getEleString(ele, ""));
        car.setSecondFuel(getEleString(ele, "brandstof2"));
        //      car.setDieselFilter(getEleString(ele, ""));
        car.setSecondColor(getEleString(ele, "kleur2"));
        car.setDateOfNextInspection(getEleDate(ele, "datumVervalApk"));
        car.setVehicleType(getEleString(ele, "Voertuigsoort"));
        //      car.setEconomicalLabel(getEleString(ele, ""));
        car.setNumOfCylinders(getEleShort(ele, "aantalcilinders"));
        car.setNumOfStandingPlace(getEleShort(ele, "aantalStaanplaatsen"));
        car.setNumOfSittingPlace(getEleShort(ele, "aantalZitplaatsen"));
        //      car.setFuelUseOfHignway(getEleFloat(ele, ""));
        //      car.setFuelUseOfCity(fuelUseOfCity);      
        //      car.setFuelUseOfCombined(fuelUseOfCombined);
        car.setVolumeOfCylinder(getEleInt(ele, "cilinderinhoud"));
        car.setG3GassInstallation(getEleString(ele, "g3Installatie"));
        car.setLoadCapacity(getEleInt(ele, "laadvermogen"));
        car.setMassOfEmptyVehicle(getEleInt(ele, "massaLeegVoertuig"));
        car.setMassOfDriveReady(getEleInt(ele, "massaRijklaar"));
        car.setMaximumConstructionSpeed(getEleShort(ele, "maximaleConstructiesnelheid"));
        car.setMaximumMassOfPullingAutoBrake(getEleInt(ele, "maximumMassaAutonoomGeremd"));
        car.setMaximumMassOfPullingBrake(getEleInt(ele, "maximumMassaGeremd"));
        car.setMaximumMassOfPullingMidaxelBrake(getEleInt(ele, "maximumMassaMiddenasGeremd"));
        car.setMaximumMassOfPullingNotBrake(getEleInt(ele, "maximumMassaOngeremd"));
        car.setMaximumMassOfPullingTrailer(getEleInt(ele, "maximumMassaOpleggerGeremd"));
        car.setMaximumMassOfPullingAllowed(getEleInt(ele, "maximumMassa"));
        car.setPower(getEleShort(ele, "vermogenKw"));
        //      car.setWaitingForMot(getEleString(ele, ""));
        //      car.setRegisteredInsurance(registeredInsurance);
        return car;
    }

    private static String getEleString(Element ele, String eleName) {
        return ele.elementTextTrim(eleName);
    }

    private static int getEleInt(Element ele, String eleName) {
        String v = getEleString(ele, eleName);
        if (StringUtils.isEmpty(v)) {
            return 0;
        }
        return Integer.parseInt(v);
    }

    private static short getEleShort(Element ele, String eleName) {
        String v = getEleString(ele, eleName);
        if (StringUtils.isEmpty(v)) {
            return 0;
        }
        return Short.parseShort(v);
    }

    private static Date getEleDate(Element ele, String eleName) {
        String v = getEleString(ele, eleName);
        if (StringUtils.isEmpty(v)) {
            return null;
        }
        try {
            return df.parse(v);
        } catch (ParseException e) {
            return null;
        }
    }

    public static void main(String[] args) throws Exception {
        String xml = "<antwoordbericht xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><aanvraag>&lt;bericht&gt;&lt;authenticatie&gt;&lt;naam&gt;VBGA01&lt;/naam&gt;&lt;wachtwoord&gt;V#B9G2&lt;/wachtwoord&gt;&lt;berichtsoort&gt;SB-RDW-ADVANCED&lt;/berichtsoort&gt;&lt;/authenticatie&gt;&lt;parameters&gt;&lt;kenteken&gt;26nffv&lt;/kenteken&gt;&lt;/parameters&gt;&lt;/bericht&gt;</aanvraag><resultaat><code>00</code><omschrijving>Ok</omschrijving><interdataReferentie>1716736</interdataReferentie></resultaat><rubrieken><rdwInfoAdvanced xsi:type=\"rdw:rdwInfoAdvancedTypeV4\" xmlns:rdw=\"http://www.xmlmode.nl/interdata/rdw\"><rdw:kenteken>26NFFV</rdw:kenteken><rdw:isMeldCodeCorrect>false</rdw:isMeldCodeCorrect><rdw:kentekenSignaal xsi:nil=\"true\" /><rdw:merk code=\"RENA\">renault</rdw:merk><rdw:handelsbenaming>LAGUNA; GRAND TOUR 1.8 16V 89KW E4</rdw:handelsbenaming><rdw:voertuigsoort>P</rdw:voertuigsoort><rdw:brandstof1 code=\"B\">benzine</rdw:brandstof1><rdw:brandstof2 xsi:nil=\"true\" /><rdw:kleur1 code=\"05\">groen</rdw:kleur1><rdw:kleur2 code=\"99\">niet van toepassing</rdw:kleur2><rdw:aantalZitplaatsen>5</rdw:aantalZitplaatsen><rdw:aantalStaanplaatsen>0</rdw:aantalStaanplaatsen><rdw:datumEersteToelatingInternationaal>2003-08-20</rdw:datumEersteToelatingInternationaal><rdw:datumEersteToelatingNationaal>2003-08-20</rdw:datumEersteToelatingNationaal><rdw:datumAansprakelijkheid>2012-08-08</rdw:datumAansprakelijkheid><rdw:datumVervalApk>2015-01-20</rdw:datumVervalApk><rdw:aantalCilinders>4</rdw:aantalCilinders><rdw:cilinderinhoud>1783</rdw:cilinderinhoud><rdw:massaLeegVoertuig>1290</rdw:massaLeegVoertuig><rdw:laadvermogen>0</rdw:laadvermogen><rdw:maximumMassa>1900</rdw:maximumMassa><rdw:massaRijklaar>1390</rdw:massaRijklaar><rdw:maximumMassaOngeremd>650</rdw:maximumMassaOngeremd><rdw:maximumMassaGeremd>1300</rdw:maximumMassaGeremd><rdw:maximumMassaOpleggerGeremd>0</rdw:maximumMassaOpleggerGeremd><rdw:maximumMassaAutonoomGeremd>0</rdw:maximumMassaAutonoomGeremd><rdw:maximumMassaMiddenasGeremd>1300</rdw:maximumMassaMiddenasGeremd><rdw:parallelImport>false</rdw:parallelImport><rdw:uitvoeringsVolgnummer>23379</rdw:uitvoeringsVolgnummer><rdw:aantalDeuren>4</rdw:aantalDeuren><rdw:inrichting code=\"44\">stationwagen</rdw:inrichting><rdw:voertuigClassificatie code=\"01\">personenauto</rdw:voertuigClassificatie><rdw:aantalWielen>4</rdw:aantalWielen><rdw:vermogenKw>88</rdw:vermogenKw><rdw:vermogenBromfiets xsi:nil=\"true\" /><rdw:maximaleConstructiesnelheid>0</rdw:maximaleConstructiesnelheid><rdw:emissieCode xsi:nil=\"true\" /><rdw:g3Installatie>false</rdw:g3Installatie><rdw:bpm>6200</rdw:bpm><rdw:verplichtingennemer>false</rdw:verplichtingennemer><rdw:wamVerzekerd>true</rdw:wamVerzekerd><rdw:wielbasis>274</rdw:wielbasis><rdw:motorcode>F4P C7</rdw:motorcode><rdw:catalogusPrijs xsi:nil=\"true\" /><rdw:isTaxi>false</rdw:isTaxi></rdwInfoAdvanced></rubrieken></antwoordbericht>";
        AzureCar car = convert(xml);
        System.out.println(car.getBpm());
    }
}