1 package de.dlr.shepard.data.spatialdata.repositories;
2
3 public class NativeInsertStatementBuilder {
4
5 private StringBuilder sb = new StringBuilder();
6 private boolean valuesAlreadyAdded = false;
7
8 public NativeInsertStatementBuilder insert(String tableName, String[] columns) {
9 sb.append("INSERT INTO %s (%s)".formatted(tableName, String.join(", ", columns)));
10 return this;
11 }
12
13 public NativeInsertStatementBuilder addValues(String values) {
14 addValuesIfNecessary();
15 sb.append(String.format("(%s),", values));
16 return this;
17 }
18
19 public String build() {
20 sb.setLength(sb.length() - 1);
21 sb.append(";");
22 return sb.toString();
23 }
24
25 private void addValuesIfNecessary() {
26 if (valuesAlreadyAdded == false) {
27 sb.append(" VALUES ");
28 valuesAlreadyAdded = true;
29 }
30 }
31 }