Skip to content

Commit

Permalink
Fix inject source if ds is missing
Browse files Browse the repository at this point in the history
  • Loading branch information
praszuk committed Sep 5, 2024
1 parent ad87e54 commit 917ca33
Showing 1 changed file with 19 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,24 @@ public static boolean showDialogIfFoundUncommonTags(Way resultBuilding, Building
return true;
}

public static void injectSourceTags(Way importedBuilding, BuildingsImportManager manager) {
String tagsDs = manager.getCurrentProfile().getTags();
String geomDs = manager.getCurrentProfile().getGeometry();
String sourceBuilding;

if (manager.getCurrentProfile().isOneDataSource()) {
sourceBuilding = tagsDs;
} else if (manager.getImportedData().get(tagsDs).isEmpty()) {
sourceBuilding = geomDs;
} else if (manager.getImportedData().get(geomDs).isEmpty()) {
sourceBuilding = tagsDs;
} else {
sourceBuilding = tagsDs;
importedBuilding.put("source:geometry", geomDs);
}
importedBuilding.put("source:building", sourceBuilding);
}

public static void performBuildingImport(BuildingsImportManager manager) {
importStats.addTotalImportActionCounter(1);

Expand All @@ -112,11 +130,7 @@ public static void performBuildingImport(BuildingsImportManager manager) {
// Add importedBuilding to DataSet to prevent DataIntegrityError (primitives without osm metadata)
new DataSet().addPrimitiveRecursive(importedBuilding);

// Inject source tags
importedBuilding.put("source:building", manager.getCurrentProfile().getTags());
if (!manager.getCurrentProfile().getTags().equals(manager.getCurrentProfile().getGeometry())) {
importedBuilding.put("source:geometry", manager.getCurrentProfile().getGeometry());
}
injectSourceTags(importedBuilding, manager);

ImportStrategy importStrategy;
switch (BuildingsSettings.IMPORT_MODE.get()) {
Expand Down

0 comments on commit 917ca33

Please sign in to comment.