Unmarshaller tests Ok

change_data_scheme
Terekhin Alexander 5 years ago
parent 5880abc72b
commit fbd200c8d0
  1. 8
      src/main/java/me/bearns/fias/helpers/UpdaterImpl.java
  2. 11
      src/main/java/me/bearns/fias/xml/AddrObjAdapter.java
  3. 19
      src/test/java/me/bearns/fias/helper/XMLSourceHelper.java

@ -5,9 +5,11 @@ import me.bearns.fias.domain.FiasVersion;
import me.bearns.fias.exceptions.CommonException;
import me.bearns.fias.exceptions.DownloadException;
import me.bearns.fias.exceptions.UnzipException;
import me.bearns.fias.repository.AddrobjRepository;
import me.bearns.fias.repository.FiasVersionRepository;
import me.bearns.fias.service.Downloader;
import me.bearns.fias.service.StreamSaver;
import me.bearns.fias.xml.AddrObjAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component;
@ -122,6 +124,12 @@ public class UpdaterImpl implements UpdateHelper {
final UnmarshallerParameters config = catalog.getByPrefix(name);
if(config!=null) {
final JpaRepository repository = config.getRepository();
if(repository instanceof AddrobjRepository){
AddrObjAdapter.setRepository((AddrobjRepository) repository);
}
try (InputStream is = zipFile.getInputStream(entry)) {
log.debug("Process '{}' in zip", name);
unmarshaller.process(is, config, filter);

@ -9,10 +9,9 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.util.Optional;
import java.util.UUID;
@Component
public class AddrObjAdapter extends XmlAdapter<String, Addrobj> {
@Autowired
private static AddrobjRepository repository;
@Override
@ -20,7 +19,9 @@ public class AddrObjAdapter extends XmlAdapter<String, Addrobj> {
final UUID aoguid = UUID.fromString(v);
final Addrobj addrobj = repository.findByAoguid(aoguid).orElseGet(Addrobj::new);
addrobj.aoguid = aoguid;
//final Addrobj addrobj = new Addrobj(); //TODO FIX IT
addrobj.aoguid = aoguid;
addrobj.aoid = aoguid;
return addrobj;
}
@ -36,4 +37,8 @@ public class AddrObjAdapter extends XmlAdapter<String, Addrobj> {
return null;
}
public static void setRepository(AddrobjRepository repo){
repository = repo;
}
}

@ -5,25 +5,6 @@ import java.io.InputStream;
public class XMLSourceHelper {
/* <? xml version = "1.0" encoding="utf-8"?>
<AddressObjects>
<Object AOID="7635a901-83d9-4ce5-8472-ff8f31476566"AOGUID="7635a901-83d9-4ce5-8472-ff8f31476566"PARENTGUID="f696b011-8ba9-4059-8e35-aa202e97eb2d"FORMALNAME="Объездная"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="006"AUTOCODE="0"CITYCODE="000"CTARCODE="000"PLACECODE="001"PLANCODE="0000"STREETCODE="0045"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890060000010045"CODE="89006000001004500"CURRSTATUS="0"ACTSTATUS="1"LIVESTATUS="1"CENTSTATUS="0"OPERSTATUS="10"IFNSFL="8901"IFNSUL="8901"OKATO="71166912001"OKTMO="71926412101"STARTDATE="2020-08-25"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="789843b8-8101-4f72-baa2-aeef3712304a"AOGUID="4f1abc44-1bfb-4c8d-b41b-5544dde1fa38"PARENTGUID="4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7"NEXTID="dc4fa806-30cb-4b71-a223-3504b8488e77"FORMALNAME="Северное Кольцо"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="000"AUTOCODE="0"CITYCODE="006"CTARCODE="000"PLACECODE="000"PLANCODE="0000"STREETCODE="0104"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890000060000104"CODE="89000006000010401"CURRSTATUS="1"ACTSTATUS="0"LIVESTATUS="0"CENTSTATUS="0"OPERSTATUS="1"IFNSFL="8904"IFNSUL="8904"OKATO="71176000000"OKTMO="71956000"POSTALCODE="629306"STARTDATE="1900-01-01"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="dc4fa806-30cb-4b71-a223-3504b8488e77"AOGUID="4f1abc44-1bfb-4c8d-b41b-5544dde1fa38"PARENTGUID="4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7"PREVID="789843b8-8101-4f72-baa2-aeef3712304a"NEXTID="02dd311b-dfff-4e9d-8c65-07b90e4d9001"FORMALNAME="Северное Кольцо"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="000"AUTOCODE="0"CITYCODE="006"CTARCODE="000"PLACECODE="000"PLANCODE="0000"STREETCODE="0104"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890000060000104"CODE="89000006000010400"CURRSTATUS="0"ACTSTATUS="0"LIVESTATUS="0"CENTSTATUS="0"OPERSTATUS="21"IFNSFL="8904"IFNSUL="8904"OKATO="71176000000"OKTMO="71956000"STARTDATE="2015-08-31"ENDDATE="2020-08-25"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="02dd311b-dfff-4e9d-8c65-07b90e4d9001"AOGUID="4f1abc44-1bfb-4c8d-b41b-5544dde1fa38"PARENTGUID="4136d0c1-3ff7-44c0-aa30-fa2e7eb96ef7"PREVID="dc4fa806-30cb-4b71-a223-3504b8488e77"FORMALNAME="Северное Кольцо"SHORTNAME="ул"AOLEVEL="7"REGIONCODE="89"AREACODE="000"AUTOCODE="0"CITYCODE="006"CTARCODE="000"PLACECODE="000"PLANCODE="0000"STREETCODE="0104"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="890000060000104"CODE="89000006000010400"CURRSTATUS="0"ACTSTATUS="1"LIVESTATUS="1"CENTSTATUS="0"OPERSTATUS="20"IFNSFL="8904"IFNSUL="8904"OKATO="71176000000"OKTMO="71956000001"STARTDATE="2020-08-25"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
<Object AOID="fe893ae4-db60-4276-9c75-2aa0538a909a"AOGUID="fe893ae4-db60-4276-9c75-2aa0538a909a"PARENTGUID="5cb37760-9ac7-4d35-b3bb-b54e559c0017"FORMALNAME="Капитана Раскина"SHORTNAME="пр-д"AOLEVEL="7"REGIONCODE="91"AREACODE="000"AUTOCODE="0"CITYCODE="001"CTARCODE="000"PLACECODE="000"PLANCODE="0963"STREETCODE="0965"EXTRCODE="0000"SEXTCODE="000"PLAINCODE="910000010000965"CODE="91000001000096500"CURRSTATUS="0"ACTSTATUS="1"LIVESTATUS="1"CENTSTATUS="0"OPERSTATUS="10"IFNSFL="9111"IFNSUL="9111"OKATO="35412000000"OKTMO="35715000001"STARTDATE="2020-08-25"ENDDATE="2079-06-06"UPDATEDATE="2020-08-27"DIVTYPE="0"/>
</AddressObjects>*/
/*<?xml version="1.0" encoding="utf-8"?>
<Houses>
<House HOUSEID="67774cf4-f7e5-425c-9ab1-474e835dda74" HOUSEGUID="67774cf4-f7e5-425c-9ab1-474e835dda74" AOGUID="f31986b1-d29e-4aa5-aea0-a1e9f261c735" HOUSENUM="108" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30207000021" OKTMO="30607421101" POSTALCODE="684017" STARTDATE="2020-08-28" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="1" CADNUM="41:05:0101081:2153" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="23b7f431-72f1-47ee-bb1c-6b59a6567490" HOUSEGUID="23b7f431-72f1-47ee-bb1c-6b59a6567490" AOGUID="7e2cb4f7-1f8f-48bf-84a4-07899022f5a7" HOUSENUM="42" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30207554000" OKTMO="30607154051" POSTALCODE="684036" STARTDATE="2020-08-28" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="32" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="ba1974ff-b056-47eb-b0d6-60eab6a5b122" HOUSEGUID="ba1974ff-b056-47eb-b0d6-60eab6a5b122" AOGUID="f8b60155-e3ba-4d29-8994-5e4be88e8523" HOUSENUM="8а" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30402000000" OKTMO="30607101001" POSTALCODE="684007" STARTDATE="2020-08-27" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="42" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="3b565d5b-8ca7-460e-9271-0e56723917d7" HOUSEGUID="3b565d5b-8ca7-460e-9271-0e56723917d7" AOGUID="273b6a28-c1c4-4b40-96fa-7a783b0f71ca" HOUSENUM="42" STRSTATUS="0" ESTSTATUS="5" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30207554000" OKTMO="30607154051" POSTALCODE="684036" STARTDATE="2020-08-28" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="20" DIVTYPE="0" REGIONCODE="41" />
<House HOUSEID="9a2abe0e-5d39-496d-b442-8ca9588bc775" HOUSEGUID="9a2abe0e-5d39-496d-b442-8ca9588bc775" AOGUID="72f96554-fc02-48ed-a7ad-b1f807f4d99a" HOUSENUM="9" STRSTATUS="0" ESTSTATUS="2" STATSTATUS="0" IFNSFL="4177" IFNSUL="4177" TERRIFNSFL="4105" TERRIFNSUL="4105" OKATO="30402000000" OKTMO="30607101001" POSTALCODE="684000" STARTDATE="2020-08-27" ENDDATE="2079-06-06" UPDATEDATE="2020-08-29" COUNTER="4" DIVTYPE="0" REGIONCODE="41" />
</Houses>
*/
public static InputStream getAOStream() {
final StringBuilder sba = new StringBuilder();

Loading…
Cancel
Save