5454import org .heigit .ohsome .oshdb .filter .FilterParser ;
5555import org .heigit .ohsome .oshdb .osm .OSMEntity ;
5656import org .heigit .ohsome .oshdb .osm .OSMType ;
57+ import org .heigit .ohsome .oshdb .util .OSHDBTagKey ;
5758import org .heigit .ohsome .oshdb .util .celliterator .ContributionType ;
5859import org .heigit .ohsome .oshdb .util .function .SerializableFunction ;
5960import org .heigit .ohsome .oshdb .util .geometry .Geo ;
@@ -180,10 +181,10 @@ public static <P extends Geometry & Polygonal> Response aggregateGroupByBoundary
180181 TagTranslator tt = DbConnData .tagTranslator ;
181182 Integer [] valuesInt = new Integer [groupByValues .length ];
182183 ArrayList <Pair <Integer , Integer >> zeroFill = new ArrayList <>();
183- int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).toInt ( );
184+ int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).map ( OSHDBTagKey :: toInt ). orElse (- 1 );
184185 if (groupByValues .length != 0 ) {
185186 for (int j = 0 ; j < groupByValues .length ; j ++) {
186- valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).getValue ( );
187+ valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).map ( OSHDBTag :: getValue ). orElse (- j );
187188 zeroFill .add (new ImmutablePair <>(keysInt , valuesInt [j ]));
188189 }
189190 }
@@ -217,7 +218,7 @@ public static <P extends Geometry & Polygonal> Response aggregateGroupByBoundary
217218 String tagIdentifier ;
218219 // check for non-remainder objects (which do have the defined key and value)
219220 if (entry .getKey ().getSecondIndex ().getKey () != -1 && tagValue != -1 ) {
220- tagIdentifier = tt .getOSMTagOf (keysInt , tagValue ).toString ();
221+ tagIdentifier = tt .lookupTag (keysInt , tagValue ).toString ();
221222 } else {
222223 tagIdentifier = "remainder" ;
223224 }
@@ -287,10 +288,10 @@ public static Response aggregateGroupByTag(RequestResource requestResource,
287288 TagTranslator tt = DbConnData .tagTranslator ;
288289 Integer [] valuesInt = new Integer [groupByValues .length ];
289290 ArrayList <Pair <Integer , Integer >> zeroFill = new ArrayList <>();
290- int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).toInt ( );
291+ int keysInt = tt .getOSHDBTagKeyOf (groupByKey [0 ]).map ( OSHDBTagKey :: toInt ). orElse (- 1 );
291292 if (groupByValues .length != 0 ) {
292293 for (int j = 0 ; j < groupByValues .length ; j ++) {
293- valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).getValue ( );
294+ valuesInt [j ] = tt .getOSHDBTagOf (groupByKey [0 ], groupByValues [j ]).map ( OSHDBTag :: getValue ). orElse (- j );
294295 zeroFill .add (new ImmutablePair <>(keysInt , valuesInt [j ]));
295296 }
296297 }
@@ -307,7 +308,7 @@ public static Response aggregateGroupByTag(RequestResource requestResource,
307308 entry .getValue (), requestParameters .isDensity (), df , geom );
308309 // check for non-remainder objects (which do have the defined key and value)
309310 if (entry .getKey ().getKey () != -1 && entry .getKey ().getValue () != -1 ) {
310- groupByName = tt .getOSMTagOf (keysInt , entry .getKey ().getValue ()).toString ();
311+ groupByName = tt .lookupTag (keysInt , entry .getKey ().getValue ()).toString ();
311312 } else {
312313 groupByName = "remainder" ;
313314 }
@@ -430,7 +431,7 @@ public static Response aggregateGroupByKey(RequestResource requestResource,
430431 TagTranslator tt = DbConnData .tagTranslator ;
431432 Integer [] keysInt = new Integer [groupByKeys .length ];
432433 for (int i = 0 ; i < groupByKeys .length ; i ++) {
433- keysInt [i ] = tt .getOSHDBTagKeyOf (groupByKeys [i ]).toInt ( );
434+ keysInt [i ] = tt .getOSHDBTagKeyOf (groupByKeys [i ]).map ( OSHDBTagKey :: toInt ). orElse (- i );
434435 }
435436 MapAggregator <OSHDBCombinedIndex <OSHDBTimestamp , Integer >, OSMEntitySnapshot > preResult =
436437 mapRed .flatMap (f -> {
@@ -460,7 +461,7 @@ public static Response aggregateGroupByKey(RequestResource requestResource,
460461 entry .getValue (), requestParameters .isDensity (), df , null );
461462 // check for non-remainder objects (which do have the defined key)
462463 if (entry .getKey () != -1 ) {
463- groupByName = tt .getOSMTagKeyOf (entry .getKey (). intValue ()). toString ();
464+ groupByName = tt .lookupTag (entry .getKey (), 0 ). getKey ();
464465 } else {
465466 groupByName = "remainder" ;
466467 }
@@ -530,17 +531,18 @@ public static Response aggregateBasicFiltersRatio(RequestResource requestResourc
530531 Integer [] keysInt2 = new Integer [keys2 .length ];
531532 Integer [] valuesInt2 = new Integer [values2 .length ];
532533 for (int i = 0 ; i < requestParameters .getKeys ().length ; i ++) {
533- keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).toInt ();
534+ keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).map (OSHDBTagKey ::toInt )
535+ .orElse (-i );
534536 if (requestParameters .getValues () != null && i < requestParameters .getValues ().length ) {
535537 valuesInt1 [i ] =
536538 tt .getOSHDBTagOf (requestParameters .getKeys ()[i ], requestParameters .getValues ()[i ])
537- .getValue ( );
539+ .map ( OSHDBTag :: getValue ). orElse (- i );
538540 }
539541 }
540542 for (int i = 0 ; i < keys2 .length ; i ++) {
541- keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).toInt ( );
543+ keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).map ( OSHDBTagKey :: toInt ). orElse (- i );
542544 if (i < values2 .length ) {
543- valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).getValue ( );
545+ valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).map ( OSHDBTag :: getValue ). orElse (- i );
544546 }
545547 }
546548 EnumSet <OSMType > osmTypes1 =
@@ -780,17 +782,18 @@ public static <P extends Geometry & Polygonal> Response aggregateBasicFiltersRat
780782 Integer [] valuesInt2 = new Integer [values2 .length ];
781783 TagTranslator tt = DbConnData .tagTranslator ;
782784 for (int i = 0 ; i < requestParameters .getKeys ().length ; i ++) {
783- keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).toInt ();
785+ keysInt1 [i ] = tt .getOSHDBTagKeyOf (requestParameters .getKeys ()[i ]).map (OSHDBTagKey ::toInt )
786+ .orElse (-i );
784787 if (requestParameters .getValues () != null && i < requestParameters .getValues ().length ) {
785788 valuesInt1 [i ] =
786789 tt .getOSHDBTagOf (requestParameters .getKeys ()[i ], requestParameters .getValues ()[i ])
787- .getValue ( );
790+ .map ( OSHDBTag :: getValue ). orElse (- i );
788791 }
789792 }
790793 for (int i = 0 ; i < keys2 .length ; i ++) {
791- keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).toInt ( );
794+ keysInt2 [i ] = tt .getOSHDBTagKeyOf (keys2 [i ]).map ( OSHDBTagKey :: toInt ). orElse (- i );
792795 if (i < values2 .length ) {
793- valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).getValue ( );
796+ valuesInt2 [i ] = tt .getOSHDBTagOf (keys2 [i ], values2 [i ]).map ( OSHDBTag :: getValue ). orElse (- i );
794797 }
795798 }
796799 EnumSet <OSMType > osmTypes1 = (EnumSet <OSMType >) processingData .getOsmTypes ();
0 commit comments