public static String setDBProcessingMetaData(DataBaseConnector dbc, boolean readDataTable, String tableName, byte[][] data, JCas cas) {
String pkString = null;
JCasUtil.select(cas, DBProcessingMetaData.class).forEach(x -> x.removeFromIndexes());
DBProcessingMetaData dbMetaData = new DBProcessingMetaData(cas);
List<Integer> pkIndices = dbc.getPrimaryKeyIndices();
StringArray pkArray = new StringArray(cas, pkIndices.size());
for (int i = 0; i < pkIndices.size(); ++i) {
Integer index = pkIndices.get(i);
String pkElementValue = new String(data[index], Charset.forName("UTF-8"));
pkArray.set(i, pkElementValue);
}
if (log.isDebugEnabled())
log.debug("Setting primary key to {}", Arrays.toString(pkArray.toArray()));
dbMetaData.setPrimaryKey(pkArray);
if (!readDataTable)
dbMetaData.setSubsetTable(
tableName.contains(".") ? tableName : dbc.getActivePGSchema() + "." + tableName);
dbMetaData.addToIndexes();
return pkString;
}