Skip to content

Commit

Permalink
NVDB-4152: Updated client to responseRevision 1
Browse files Browse the repository at this point in the history
  • Loading branch information
krimjo committed Aug 30, 2019
1 parent 1bc7508 commit 3765e42
Show file tree
Hide file tree
Showing 12 changed files with 61 additions and 93 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public final class ClientFactory implements AutoCloseable {
private final String userAgent;
private final String xClientName;

private static final String apiRevision = "application/vnd.vegvesen.nvdb-v3-rev0+json";
private static final String apiRevision = "application/vnd.vegvesen.nvdb-v3-rev1+json";
private final ProxyConfig proxyConfig;

private Datakatalog datakatalog;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,30 +75,13 @@ public static Geometry parseAttribute(JsonObject obj) {
String wkt = parseStringMember(obj, "verdi");
Projection srid = Projection.UTM33;

Quality quality = getAttributeQuality(obj);
Quality quality = getQuality(obj);

GeometryAttributes geometryAttributes = getGeometryAttributes(obj);

return new Geometry(wkt, srid, quality, false, true, geometryAttributes);
}

/*
Remove in response rev 1
*/
private static Quality getAttributeQuality(JsonObject obj) {
if (obj.has("kvalitet")) {
Integer method = parseIntMember(obj, "kvalitet.målemetode");
Integer accuracy = parseIntMember(obj, "kvalitet.nøyaktighet");
Integer heightMethod = parseIntMember(obj, "kvalitet.målemetodeHøyde");
Integer heightAccuracy = parseIntMember(obj, "kvalitet.nøyaktighetHøyde");
Integer tolerance = parseIntMember(obj, "kvalitet.maksimaltAvvik");
Integer visibility = parseIntMember(obj, "kvalitet.synbarhet");
return new Quality(method, accuracy, heightMethod, heightAccuracy, tolerance, visibility);
} else {
return null;
}
}

private static Quality getQuality(JsonObject obj) {
if (obj.has("kvalitet")) {
Integer method = parseIntMember(obj, "kvalitet.metode");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,6 @@ static Placement parsePlacement(JsonObject obj) {
return parsePlacement(obj, "startposisjon", "sluttposisjon");
}

// Will be fixed in response rev1
static RefLinkExtentPlacement parseRefLinkExtentPlacementAttribute(JsonObject obj) {
return parseRefLinkExtentPlacement(obj, "fra_posisjon", "til_posisjon");
}

public static RefLinkExtentPlacement parseRefLinkExtentPlacement(JsonObject obj) {
return parseRefLinkExtentPlacement(obj, "startposisjon", "sluttposisjon");
}
Expand Down Expand Up @@ -108,12 +103,7 @@ private static RefLinkExtentPlacement parseRefLinkExtentPlacement(JsonObject obj
String endPosField) {
if (isNull(obj)) return null;

long netElementId;
if(obj.has("veglenkesekvens")){
netElementId = parseLongMember(obj, "veglenkesekvens");
}else{
netElementId = parseLongMember(obj, "netelementid");
}
long netElementId = parseLongMember(obj, "veglenkesekvensid");

double startPos, endPos;
if (obj.has("relativPosisjon")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ private static Segment parseSegment(JsonObject obj) {
double endPos = isPoint ? startPos : parseDoubleMember(obj, "sluttposisjon");

return new Segment(
parseLongMember(obj, "veglenkesekvens"),
parseLongMember(obj, "veglenkesekvensid"),
startPos,
endPos,
geo,
Expand Down Expand Up @@ -254,18 +254,18 @@ public static Attribute parseAttribute(JsonObject obj) {
case "Linje":
return new ReflinkExtentAttribute(
id,
parseLongMember(obj, "netelementid"),
parseLongMember(obj, "veglenkesekvensid"),
Direction.from(parseStringMember(obj, "retning")),
SidePosition.from(parseStringMember(obj, "sideposisjon")),
parseStringListMember(obj, "kjørefelt"),
parseDoubleMember(obj, "fra_posisjon"),
parseDoubleMember(obj, "til_posisjon")
parseDoubleMember(obj, "startposisjon"),
parseDoubleMember(obj, "sluttposisjon")
);
case "Sving": return new TurnExtent(
id,
parseLongMember(obj, "netelementid"),
PlacementParser.parseRefLinkExtentPlacementAttribute(obj.getAsJsonObject("startpunkt")),
PlacementParser.parseRefLinkExtentPlacementAttribute(obj.getAsJsonObject("sluttpunkt"))
parseLongMember(obj, "nodeid"),
PlacementParser.parseRefLinkExtentPlacement(obj.getAsJsonObject("startpunkt")),
PlacementParser.parseRefLinkExtentPlacement(obj.getAsJsonObject("sluttpunkt"))
);
default: throw new IllegalArgumentException("Unknown stedfestingstype " + stedfestingstype);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public final class ShortRefLinkParser {
private ShortRefLinkParser() {}

public static RefLinkPosition parseShortRefLink(JsonObject reflink) {
int id = parseIntMember(reflink, "veglenkesekvens");
int id = parseIntMember(reflink, "veglenkesekvensid");
double position = parseDoubleMember(reflink, "relativPosisjon");
String shortName = parseStringMember(reflink, "kortform");

Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/jsonresponse/posisjon/posisjon.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"kortform": "FV913 S1D1 M962"
},
"veglenkesekvens": {
"veglenkesekvens": 320753,
"veglenkesekvensid": 320753,
"relativPosisjon": 0.99636,
"kortform": "0.99636@320753"
},
Expand Down
13 changes: 6 additions & 7 deletions src/test/resources/jsonresponse/vegobjekter/105.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,9 @@
"egenskapstype": "Stedfesting",
"datatype": "GeomLinje eller Kurve",
"stedfestingstype": "Linje",
"netelementid": 383266,
"netelementtype": 50002,
"fra_posisjon": 0.0,
"til_posisjon": 1.0,
"veglenkesekvensid": 383266,
"startposisjon": 0.0,
"sluttposisjon": 1.0,
"retning": "MED",
"kjørefelt": []
}
Expand Down Expand Up @@ -93,7 +92,7 @@
"stedfestinger": [
{
"type": "Linje",
"veglenkesekvens": 383266,
"veglenkesekvensid": 383266,
"startposisjon": 0.0,
"sluttposisjon": 1.0,
"kortform": "0.0-1.0@383266",
Expand All @@ -109,7 +108,7 @@
},
"vegsegmenter": [
{
"veglenkesekvens": 383266,
"veglenkesekvensid": 383266,
"startposisjon": 0.0,
"sluttposisjon": 1.0,
"lengde": 46,
Expand All @@ -133,7 +132,7 @@
}
},
{
"veglenkesekvens": 383266,
"veglenkesekvensid": 383266,
"startposisjon": 0.0,
"sluttposisjon": 1.0,
"lengde": 46,
Expand Down
39 changes: 19 additions & 20 deletions src/test/resources/jsonresponse/vegobjekter/95.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@
"egenskapstype": "Stedfesting",
"datatype": "GeomPunkt",
"stedfestingstype": "Punkt",
"netelementid": 384011,
"netelementtype": 50002,
"fra_posisjon": 0.07178555,
"til_posisjon": 0.07178555,
"veglenkesekvensid": 384011,
"startposisjon": 0.07178555,
"sluttposisjon": 0.07178555,
"retning": "MED",
"kjørefelt": []
},
Expand Down Expand Up @@ -124,7 +123,7 @@
"stedfestinger": [
{
"type": "Punkt",
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"kortform": "0.07178555@384011",
"kjørefelt": [],
Expand All @@ -138,7 +137,7 @@
},
"vegsegmenter": [
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2000-11-27",
"sluttdato": "2003-05-21",
Expand All @@ -151,7 +150,7 @@
"vegsystemreferanse": {}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2003-05-21",
"sluttdato": "2003-07-01",
Expand All @@ -164,7 +163,7 @@
"vegsystemreferanse": {}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2003-07-01",
"sluttdato": "2007-07-08",
Expand All @@ -186,7 +185,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2007-07-08",
"sluttdato": "2007-08-30",
Expand All @@ -208,7 +207,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2007-08-30",
"sluttdato": "2008-01-01",
Expand All @@ -230,7 +229,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2008-01-01",
"sluttdato": "2011-01-01",
Expand All @@ -252,7 +251,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2011-01-01",
"sluttdato": "2013-02-26",
Expand All @@ -274,7 +273,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2013-02-26",
"sluttdato": "2014-05-01",
Expand All @@ -296,7 +295,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2014-05-01",
"sluttdato": "2016-01-01",
Expand All @@ -318,7 +317,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2016-01-01",
"sluttdato": "2016-03-10",
Expand All @@ -340,7 +339,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2016-03-10",
"sluttdato": "2017-09-29",
Expand All @@ -362,7 +361,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2017-09-29",
"sluttdato": "2017-11-07",
Expand All @@ -384,7 +383,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2017-11-07",
"sluttdato": "2017-12-15",
Expand All @@ -406,7 +405,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2017-12-15",
"sluttdato": "2018-01-01",
Expand All @@ -428,7 +427,7 @@
}
},
{
"veglenkesekvens": 384011,
"veglenkesekvensid": 384011,
"relativPosisjon": 0.07178555,
"startdato": "2018-01-01",
"geometri": {
Expand Down
37 changes: 17 additions & 20 deletions src/test/resources/jsonresponse/vegobjekter/egenskaper.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@
"datatype": "GeomPunkt",
"verdi": "POINT Z(88206.76856 6783844.94758 259.86262)",
"kvalitet": {
"målemetode": 95,
"metode": 95,
"nøyaktighet": 5,
"synbarhet": 2,
"målemetodeHøyde": 1,
"nøyaktighetHøyde": 1,
"maksimaltAvvik": 2
"høydemetode": 1,
"høydenøyaktighet": 1,
"toleranse": 2
},
"datafangstdato": "1012-12-12",
"verifiseringsdato": "1012-12-13",
Expand Down Expand Up @@ -120,10 +120,9 @@
"egenskapstype": "Stedfesting",
"datatype": "GeomPunkt",
"stedfestingstype": "Punkt",
"netelementid": 384011,
"netelementtype": 50002,
"fra_posisjon": 0.07178555,
"til_posisjon": 0.07178555,
"veglenkesekvensid": 384011,
"startposisjon": 0.07178555,
"sluttposisjon": 0.07178555,
"retning": "MED",
"kjørefelt": ["1"],
"sideposisjon": "MH"
Expand All @@ -133,10 +132,9 @@
"egenskapstype": "Stedfesting",
"datatype": "GeomPunkt",
"stedfestingstype": "Linje",
"netelementid": 384011,
"netelementtype": 50002,
"fra_posisjon": 0.07178555,
"til_posisjon": 0.15652675,
"veglenkesekvensid": 384011,
"startposisjon": 0.07178555,
"sluttposisjon": 0.15652675,
"retning": "MED",
"kjørefelt": ["1"],
"sideposisjon": "MH"
Expand All @@ -146,21 +144,20 @@
"egenskapstype": "Stedfesting",
"datatype": "GeomPunkt",
"stedfestingstype": "Sving",
"netelementid": 384011,
"netelementtype": 50002,
"nodeid": 384011,
"startpunkt": {
"veglenkesekvens": 942450,
"fra_posisjon": 0.23585116,
"til_posisjon": 0.23585116,
"veglenkesekvensid": 942450,
"startposisjon": 0.23585116,
"sluttposisjon": 0.23585116,
"kortform": "23585116-0.23585116@942450",
"kjørefelt": [ ],
"retning": "MED",
"sideposisjon": "M"
},
"sluttpunkt": {
"veglenkesekvens": 942694,
"fra_posisjon": 0.64558392,
"til_posisjon": 0.64558392,
"veglenkesekvensid": 942694,
"startposisjon": 0.64558392,
"sluttposisjon": 0.64558392,
"kortform": "0.64558392-0.64558392@942694",
"kjørefelt": [ ],
"retning": "MED",
Expand Down
Loading

0 comments on commit 3765e42

Please sign in to comment.