TableRow.java

  1. package nl.b3p.brmo.loader.util;

  2. import java.util.ArrayList;
  3. import java.util.HashSet;
  4. import java.util.List;
  5. import java.util.Set;

  6. /**
  7.  * @author Matthijs Laan
  8.  */
  9. public class TableRow {
  10.   private String table;
  11.   private boolean ignoreDuplicates;

  12.   private List<String> columns = new ArrayList<>();
  13.   private List<String> values = new ArrayList<>();

  14.   private final Set<String> alleenArchiefColumns = new HashSet<>();

  15.   /* Used for archief tables */
  16.   private String columnDatumBeginGeldigheid;
  17.   private String columnDatumEindeGeldigheid;

  18.   public String getTable() {
  19.     return table;
  20.   }

  21.   public void setTable(String table) {
  22.     this.table = table;
  23.   }

  24.   public List<String> getColumns() {
  25.     return columns;
  26.   }

  27.   public void setColumns(List<String> columns) {
  28.     this.columns = columns;
  29.   }

  30.   public boolean isAlleenArchiefColumn(String column) {
  31.     return alleenArchiefColumns.contains(column);
  32.   }

  33.   public void setAlleenArchiefColumn(String column) {
  34.     alleenArchiefColumns.add(column);
  35.   }

  36.   public List<String> getValues() {
  37.     return values;
  38.   }

  39.   public void setValues(List<String> values) {
  40.     this.values = values;
  41.   }

  42.   public boolean isIgnoreDuplicates() {
  43.     return ignoreDuplicates;
  44.   }

  45.   public void setIgnoreDuplicates(boolean ignoreDuplicates) {
  46.     this.ignoreDuplicates = ignoreDuplicates;
  47.   }

  48.   public String getColumnDatumBeginGeldigheid() {
  49.     return columnDatumBeginGeldigheid;
  50.   }

  51.   public void setColumnDatumBeginGeldigheid(String columnDatumBeginGeldigheid) {
  52.     this.columnDatumBeginGeldigheid = columnDatumBeginGeldigheid;
  53.   }

  54.   public String getColumnDatumEindeGeldigheid() {
  55.     return columnDatumEindeGeldigheid;
  56.   }

  57.   public void setColumnDatumEindeGeldigheid(String columnDatumEindeGeldigheid) {
  58.     this.columnDatumEindeGeldigheid = columnDatumEindeGeldigheid;
  59.   }

  60.   public String toString(List<String> displayColumns) {
  61.     StringBuilder s = new StringBuilder();
  62.     s.append(table).append("[");

  63.     List<String> keys = new ArrayList<>();
  64.     int i = -1;
  65.     for (String column : columns) {
  66.       i++;
  67.       if (!displayColumns.contains(column)) {
  68.         continue;
  69.       }

  70.       keys.add(column + "=" + values.get(i));
  71.     }
  72.     s.append(String.join(", ", keys));
  73.     s.append("]");
  74.     return s.toString();
  75.   }

  76.   @Override
  77.   public String toString() {
  78.     StringBuilder str = new StringBuilder();

  79.     str.append("TABLE: ");
  80.     str.append(table);
  81.     str.append("\n");

  82.     int i = 0;
  83.     for (String column : columns) {
  84.       str.append(column);
  85.       str.append("=");
  86.       str.append(values.get(i));
  87.       if (isAlleenArchiefColumn(column)) {
  88.         str.append(" (alleen archief)");
  89.       }
  90.       str.append("\n");
  91.       i++;
  92.     }

  93.     return str.toString();
  94.   }

  95.   public String getColumnValue(String column) {
  96.     int i = columns.indexOf(column);
  97.     if (i == -1) {
  98.       return null;
  99.     } else {
  100.       return values.get(i);
  101.     }
  102.   }
  103. }