package com.nortal.jroad.client.liiklusregister; import java.math.BigInteger; import java.util.Calendar; import java.util.Date; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.nortal.jroad.client.exception.XRoadServiceConsumptionException; import com.nortal.jroad.client.liiklusregister.database.LiiklusregisterXRoadDatabase; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.MuuDokParing; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.MuuDokVastus; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolIsikudParing; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolIsikudVastus; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolJuhtoigusParing; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolJuhtoigusVastus; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolSoidukParing; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolSoidukVastus; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolYlevParing; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.PolYlevVastus; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.VlaevRequest; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.VlaevResponse; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.VlaevTunnParing; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.VlaevTunnVastus; import com.nortal.jroad.client.liiklusregister.types.ee.riik.xtee.liiklusregister.producers.producer.liiklusregister.VlaevRequest.OmaAndmed; /** * @author Dmitri Danilkin */ @Service("liiklusregisterXTeeService") public class LiiklusregisterXTeeServiceImpl implements LiiklusregisterXTeeService { @Resource private LiiklusregisterXRoadDatabase liiklusregisterXRoadDatabase; public PolJuhtoigusVastus polJuhtoigus(String isikukood) throws XRoadServiceConsumptionException { PolJuhtoigusParing paring = PolJuhtoigusParing.Factory.newInstance(); paring.setIsikukood(isikukood); return liiklusregisterXRoadDatabase.polJuhtoigusV1(paring); } public PolSoidukVastus findPolSoiduk(PolSoidukParingCallback callback) throws XRoadServiceConsumptionException { PolSoidukParing request = PolSoidukParing.Factory.newInstance(); callback.populate(request); return liiklusregisterXRoadDatabase.polSoidukV1(request); } public PolJuhtoigusVastus findPolJuhtoigus(String isikukood, Long identifikaator) throws XRoadServiceConsumptionException { PolJuhtoigusParing paring = PolJuhtoigusParing.Factory.newInstance(); if (isikukood != null) paring.setIsikukood(isikukood); if (identifikaator != null) paring.setId(BigInteger.valueOf(identifikaator)); return liiklusregisterXRoadDatabase.polJuhtoigusV1(paring); } public PolYlevVastus findPolYlev(Long identifikaator, String vin) throws XRoadServiceConsumptionException { PolYlevParing paring = PolYlevParing.Factory.newInstance(); if (identifikaator != null) paring.setId(BigInteger.valueOf(identifikaator)); if (vin != null) paring.setVinkood(vin); return liiklusregisterXRoadDatabase.polYlevV1(paring); } public PolIsikudVastus findPolIsiku(String isikukood, String eesnimi, String perenimi, Date synniaeg) throws XRoadServiceConsumptionException { PolIsikudParing paring = PolIsikudParing.Factory.newInstance(); if (isikukood != null) paring.setIsikukood(isikukood); if (eesnimi != null) paring.setEesnimi(eesnimi); if (perenimi != null) paring.setPerenimi(perenimi); if (synniaeg != null) { Calendar cal = Calendar.getInstance(); cal.setTime(synniaeg); paring.setSynniaeg(cal); } return liiklusregisterXRoadDatabase.polIsikudV1(paring); } public VlaevResponse findVLaevAndmed(String regNr, String hinKood, String omaKood, String omaNimi, String omaEesnimi) throws XRoadServiceConsumptionException { VlaevRequest paring = VlaevRequest.Factory.newInstance(); if (regNr != null) paring.setLaevaRegnr(regNr); if (hinKood != null) paring.setHinKood(hinKood); if (omaKood != null || omaNimi != null || omaEesnimi != null) { OmaAndmed oma = paring.addNewOmaAndmed(); if (omaKood != null) oma.setOmaKood(omaKood); if (omaNimi != null) oma.setOmaNimi(omaNimi); if (omaEesnimi != null) oma.setOmaEesnimi(omaEesnimi); } return liiklusregisterXRoadDatabase.vlaevV1(paring); } public VlaevTunnVastus findVlaevTunnistused(String tunnistusNr, String isikukood, String eesnimi, String perenimi) throws XRoadServiceConsumptionException { VlaevTunnParing paring = VlaevTunnParing.Factory.newInstance(); if (tunnistusNr != null) { try { BigInteger nr = new BigInteger(tunnistusNr); paring.setTunnistusNr(nr); } catch (NumberFormatException e) { //Ignore it } } if (isikukood != null) paring.setIsikukood(isikukood); if (eesnimi != null) paring.setEesnimi(eesnimi); if (perenimi != null) paring.setPerenimi(perenimi); return liiklusregisterXRoadDatabase.vlaevTunnV1(paring); } public MuuDokVastus findMuuDok(String eesnimi, String perenimi, String kood, String loaNr) throws XRoadServiceConsumptionException { MuuDokParing paring = MuuDokParing.Factory.newInstance(); paring.setEesnimi(eesnimi); paring.setNimi(perenimi); paring.setKood(kood); paring.setLoaNr(loaNr); return liiklusregisterXRoadDatabase.muuDokV1(paring); } public void setLiiklusregisterXRoadDatabase(LiiklusregisterXRoadDatabase liiklusregisterXTeeService) { this.liiklusregisterXRoadDatabase = liiklusregisterXTeeService; } }