Commit 99a08343 authored by Eric Duminil's avatar Eric Duminil
Browse files

Refactor

No related merge requests found
Showing with 24 additions and 24 deletions
+24 -24
package eu.simstadt.regionchooser;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.logging.Logger;
......@@ -32,7 +30,6 @@ public class RegionChooserBrowser extends Region
{
private static final Logger LOGGER = Logger.getLogger(RegionChooserBrowser.class.getName());
private static final String PREF_RECENT_REPOSITORY = "RECENT_REPOSITORY";
private static final int BUFFER = 1024;
/**
* JavaFX Backend for RegionChooser. Inside simstadt_openlayers.js frontend, this class is available as `fxapp`.
......@@ -88,21 +85,9 @@ public void downloadRegionFromCityGMLs(String wktPolygon, String project, String
File buildingIdsFile = selectSaveFileWithDialog(project,
csvCitygmls.replace(";", "_").replace(".gml", ""), "selected_region");
writeStringBuilderToFile(sb, buildingIdsFile.toPath());
RegionChooserUtils.writeStringBuilderToFile(sb, buildingIdsFile.toPath());
}
private void writeStringBuilderToFile(StringBuilder sb, Path outputFile) throws IOException {
if (outputFile != null) {
try (BufferedWriter writer = Files.newBufferedWriter(outputFile)) {
char[] chars = new char[BUFFER];
for (int aPosStart = 0; aPosStart < sb.length(); aPosStart += BUFFER) {
int chunk = Math.min(BUFFER, sb.length() - aPosStart);
sb.getChars(aPosStart, aPosStart + chunk, chars, 0);
writer.write(chars, 0, chunk);
}
}
}
}
public void selectRepository() {
Preferences userPrefs = Preferences.userRoot().node("/eu/simstadt/desktop");
......
package eu.simstadt.regionchooser;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
......@@ -23,6 +24,7 @@
private static final Pattern srsNamePattern = Pattern.compile("(?i)(?<=srsName=[\"'])[^\"']+(?=[\"'])");
private static final int CITYGML_HEADER_LENGTH = 50;
private static final String EPSG = "EPSG:";
private static final int BUFFER = 1024;
private RegionChooserUtils() {
// only static use
......@@ -146,4 +148,17 @@ public static Stream<Path> everyCityGML(Path repository) throws IOException {
p.toString().toLowerCase().endsWith(".gml"));
}
public static void writeStringBuilderToFile(StringBuilder sb, Path outputFile) throws IOException {
if (outputFile != null) {
try (BufferedWriter writer = Files.newBufferedWriter(outputFile)) {
char[] chars = new char[BUFFER];
for (int aPosStart = 0; aPosStart < sb.length(); aPosStart += BUFFER) {
int chunk = Math.min(BUFFER, sb.length() - aPosStart);
sb.getChars(aPosStart, aPosStart + chunk, chars, 0);
writer.write(chars, 0, chunk);
}
}
}
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment