org.dashbuilder.dataset.json.CSVDefJSONMarshaller Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dashbuilder-dataset-api
Show all versions of dashbuilder-dataset-api
Dashbuilder Dataset API shared between client and server.
/*
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.dashbuilder.dataset.json;
import org.dashbuilder.dataset.def.CSVDataSetDef;
import org.dashbuilder.json.JsonObject;
import static org.dashbuilder.dataset.json.DataSetDefJSONMarshaller.*;
public class CSVDefJSONMarshaller implements DataSetDefJSONMarshallerExt {
public static CSVDefJSONMarshaller INSTANCE = new CSVDefJSONMarshaller();
public static final String FILEURL = "fileURL";
public static final String FILEPATH = "filePath";
public static final String SEPARATORCHAR = "separatorChar";
public static final String QUOTECHAR = "quoteChar";
public static final String ESCAPECHAR = "escapeChar";
public static final String DATEPATTERN = "datePattern";
public static final String NUMBERPATTERN = "numberPattern";
@Override
public void fromJson(CSVDataSetDef def, JsonObject json) {
String fileURL = json.getString(FILEURL);
String filePath = json.getString(FILEPATH);
String separatorChar = parseCodePoint(json.getString(SEPARATORCHAR));
String quoteChar = parseCodePoint(json.getString(QUOTECHAR));
String escapeChar = parseCodePoint(json.getString(ESCAPECHAR));
String datePattern = json.getString(DATEPATTERN);
String numberPattern = json.getString(NUMBERPATTERN);
if (!isBlank(fileURL)) {
def.setFileURL(fileURL);
}
if (!isBlank(filePath)) {
def.setFilePath(filePath);
}
if (!isBlank(separatorChar)) {
def.setSeparatorChar(separatorChar.charAt(0));
}
if (!isBlank(quoteChar)) {
def.setQuoteChar(quoteChar.charAt(0));
}
if (!isBlank(escapeChar)) {
def.setEscapeChar(escapeChar.charAt(0));
}
if (!isBlank(numberPattern)) {
def.setNumberPattern(numberPattern);
}
if (!isBlank(datePattern)) {
def.setDatePattern(datePattern);
}
}
public String parseCodePoint(String codePoint) {
try {
if (!isBlank(codePoint)) {
return String.valueOf(Character.toChars(Integer.parseInt(codePoint)));
}
} catch (Exception e) {
// If is not a code point then return the string "as is"
}
return codePoint;
}
@Override
public void toJson(CSVDataSetDef dataSetDef, JsonObject json) {
// File.
if (dataSetDef.getFilePath() != null) {
json.put(FILEPATH, dataSetDef.getFilePath());
}
if (dataSetDef.getFileURL() != null) {
json.put(FILEURL, dataSetDef.getFileURL());
}
// Separator.
json.put(SEPARATORCHAR, String.valueOf(dataSetDef.getSeparatorChar()));
// Quote.
json.put(QUOTECHAR, String.valueOf(dataSetDef.getQuoteChar()));
// Escape.
json.put(ESCAPECHAR, String.valueOf(dataSetDef.getEscapeChar()));
// Date pattern.
json.put(DATEPATTERN, dataSetDef.getDatePattern());
// Number pattern.
json.put(NUMBERPATTERN, dataSetDef.getNumberPattern());
// All columns flag.
json.put(ALL_COLUMNS, dataSetDef.isAllColumnsEnabled());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy