org.dashbuilder.dataset.def.CSVDataSetDef 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 2014 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.def;
import org.dashbuilder.dataprovider.DataSetProviderType;
import org.dashbuilder.dataset.ColumnType;
import org.dashbuilder.dataset.validation.groups.CSVDataSetDefFilePathValidation;
import org.dashbuilder.dataset.validation.groups.CSVDataSetDefFileURLValidation;
import org.dashbuilder.dataset.validation.groups.CSVDataSetDefValidation;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class CSVDataSetDef extends DataSetDef {
@NotNull(groups = {CSVDataSetDefFileURLValidation.class})
@Size(min = 1, groups = {CSVDataSetDefFileURLValidation.class})
protected String fileURL;
@NotNull(groups = {CSVDataSetDefFilePathValidation.class})
@Size(min = 1, groups = {CSVDataSetDefFilePathValidation.class})
protected String filePath;
@NotNull(groups = {CSVDataSetDefValidation.class})
protected Character separatorChar;
@NotNull(groups = {CSVDataSetDefValidation.class})
protected Character quoteChar;
@NotNull(groups = {CSVDataSetDefValidation.class})
protected Character escapeChar;
@NotNull(groups = {CSVDataSetDefValidation.class})
@Size(min = 1, groups = {CSVDataSetDefValidation.class})
protected String datePattern = "MM-dd-yyyy HH:mm:ss";
@NotNull(groups = {CSVDataSetDefValidation.class})
@Size(min = 1, groups = {CSVDataSetDefValidation.class})
protected String numberPattern = "#,###.##";
public CSVDataSetDef() {
super.setProvider(DataSetProviderType.CSV);
separatorChar = ';';
quoteChar = '\'';
escapeChar = '\\';
}
public String getFileURL() {
return fileURL;
}
public void setFileURL(String fileURL) {
this.fileURL = fileURL;
}
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public Character getSeparatorChar() {
return separatorChar;
}
public void setSeparatorChar(Character separatorChar) {
this.separatorChar = separatorChar;
}
public Character getQuoteChar() {
return quoteChar;
}
public void setQuoteChar(Character quoteChar) {
this.quoteChar = quoteChar;
}
public Character getEscapeChar() {
return escapeChar;
}
public void setEscapeChar(Character escapeChar) {
this.escapeChar = escapeChar;
}
public String getPattern(String columnId) {
String p = super.getPattern(columnId);
if (p != null) return p;
DataColumnDef c = getColumnById(columnId);
if (c == null) return null;
if (c.getColumnType().equals(ColumnType.NUMBER)) return numberPattern;
if (c.getColumnType().equals(ColumnType.DATE)) return datePattern;
return null;
}
public String getNumberPattern() {
return numberPattern;
}
public void setNumberPattern(String numberPattern) {
this.numberPattern = numberPattern;
}
public String getDatePattern() {
return datePattern;
}
public void setDatePattern(String datePattern) {
this.datePattern = datePattern;
}
public String getDatePattern(String columnId) {
String pattern = getPattern(columnId);
return (pattern == null) ? datePattern : pattern;
}
public String getNumberPattern(String columnId) {
String pattern = getPattern(columnId);
return (pattern == null) ? numberPattern : pattern;
}
public char getNumberGroupSeparator(String columnId) {
String pattern = getPattern(columnId);
if (pattern == null) pattern = numberPattern;
if (pattern.length() < 2) return ',';
else return pattern.charAt(1);
}
public char getNumberDecimalSeparator(String columnId) {
String pattern = getPattern(columnId);
if (pattern == null) pattern = numberPattern;
if (pattern.length() < 6) return '.';
else return pattern.charAt(5);
}
@Override
public boolean equals(Object obj) {
try {
CSVDataSetDef other = (CSVDataSetDef) obj;
if (!super.equals(other)) {
return false;
}
if (fileURL != null && !fileURL.equals(other.fileURL)) {
return false;
}
if (filePath != null && !filePath.equals(other.filePath)) {
return false;
}
if (separatorChar != null && !separatorChar.equals(other.separatorChar)) {
return false;
}
if (quoteChar!= null && !quoteChar.equals(other.quoteChar)) {
return false;
}
if (datePattern != null && !datePattern.equals(other.datePattern)) {
return false;
}
if (numberPattern!= null && !numberPattern.equals(other.numberPattern)) {
return false;
}
return true;
} catch (ClassCastException e) {
return false;
}
}
@Override
public DataSetDef clone() {
CSVDataSetDef def = new CSVDataSetDef();
clone(def);
def.setFilePath(getFilePath());
def.setFileURL(getFileURL());
def.setSeparatorChar(getSeparatorChar());
def.setQuoteChar(getQuoteChar());
def.setEscapeChar(getEscapeChar());
def.setDatePattern(getDatePattern());
def.setNumberPattern(getNumberPattern());
return def;
}
public String toString() {
StringBuilder out = new StringBuilder();
out.append("File=");
if (filePath != null) out.append(filePath);
else out.append(fileURL);
out.append("\n");
out.append("UUID=").append(UUID).append("\n");
out.append("Provider=").append(provider).append("\n");
out.append("Public=").append(isPublic).append("\n");
out.append("Push enabled=").append(pushEnabled).append("\n");
out.append("Push max size=").append(pushMaxSize).append(" Kb\n");
if (refreshTime != null) {
out.append("Refresh time=").append(refreshTime).append("\n");
out.append("Refresh always=").append(refreshAlways).append("\n");
}
out.append("Separator char=").append(separatorChar).append("\n");
out.append("Quote char=").append(quoteChar).append("\n");
out.append("Escape char=").append(escapeChar).append("\n");
out.append("Number pattern=").append(numberPattern).append("\n");
out.append("Date pattern=").append(datePattern).append("\n");
return out.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy