
prerna.engine.impl.vector.metadata.VectorDatabaseMetadataCSVWriter Maven / Gradle / Ivy
The newest version!
package prerna.engine.impl.vector.metadata;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import prerna.date.SemossDate;
import prerna.util.Constants;
public class VectorDatabaseMetadataCSVWriter {
private static final Logger classLogger = LogManager.getLogger(VectorDatabaseMetadataCSVWriter.class);
private FileWriter fw = null;
private PrintWriter pw = null;
// takes an input file
// starts appending CSV to it
private String filePath = null;
private int rowsCreated;
public VectorDatabaseMetadataCSVWriter(String filePath) {
this.filePath = filePath;
File file = new File(filePath);
try {
if(file.exists()) {
// no need to write headers
// open in append mode
fw = new FileWriter(file, true);
pw = new PrintWriter(fw);
}
else
{
fw = new FileWriter(file, false);
pw = new PrintWriter(fw);
writeHeader();
}
} catch (IOException e) {
classLogger.error(Constants.STACKTRACE, e);
}
}
public int getRowsInCsv() {
return this.rowsCreated;
}
protected void writeHeader() {
StringBuffer row = new StringBuffer()
.append(VectorDatabaseMetadataCSVTable.SOURCE).append(",")
.append(VectorDatabaseMetadataCSVTable.ATTRIBUTE).append(",")
.append(VectorDatabaseMetadataCSVTable.STR_VALUE).append(",")
.append(VectorDatabaseMetadataCSVTable.INT_VALUE).append(",")
.append(VectorDatabaseMetadataCSVTable.NUM_VALUE).append(",")
.append(VectorDatabaseMetadataCSVTable.BOOL_VALUE).append(",")
.append(VectorDatabaseMetadataCSVTable.DATE_VAL).append(",")
.append(VectorDatabaseMetadataCSVTable.TIMESTAMP_VAL)
.append("\r\n");
this.pw.print(row + "");
// this should always be the first row
this.rowsCreated = 1;
}
/**
*
* @param inputString
* @return
*/
protected String cleanString(String inputString) {
if(inputString == null) {
return null;
}
inputString = inputString.replace("\n", " ");
inputString = inputString.replace("\r", " ");
inputString = inputString.replace("\\", "\\\\");
inputString = inputString.replace("\"", "'");
return inputString;
}
protected String cleanStringRetEmpty(String inputString) {
if(inputString == null) {
return "";
}
inputString = inputString.replace("\n", " ");
inputString = inputString.replace("\r", " ");
inputString = inputString.replace("\\", "\\\\");
inputString = inputString.replace("\"", "'");
return inputString;
}
/**
*
* @param metaValues
*/
public void bulkWriteRow(Map> metaValues) {
for(String source : metaValues.keySet()) {
writeSourceRow(source, metaValues.get(source));
}
}
/**
*
* @param source
* @param metadata
*/
public void writeSourceRow(String source, Map metadata) {
for(String attributeName : metadata.keySet()) {
Object metaValue = metadata.get(attributeName);
// account for list of values
if(metaValue instanceof Collection) {
Collection
© 2015 - 2025 Weber Informatics LLC | Privacy Policy