Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -171,20 +171,11 @@ private Table parseUploadedFile(CompletedFileUpload file) throws UnsupportedType
throw new UnsupportedTypeException("Unsupported mime type");
}

// replace "." with "" in column names to deal with json flattening issue in tablesaw
List<String> columnNames = df.columnNames();
List<String> namesToReplace = new ArrayList<>();
for (String name : columnNames) {
if (name.contains(".")) {
namesToReplace.add(name);
}
}

List<Column<?>> columns = df.columns(namesToReplace.stream().toArray(String[]::new));
for (int i=0; i<columns.size(); i++) {
Column<?> column = columns.get(i);
column.setName(namesToReplace.get(i).replace(".",""));
}
// replace certain special characters with "" in column names to deal with json flattening issue in tablesaw
// this includes ".", "[", "]"
df.columns().forEach(
(c) -> c.setName(c.name().replace(".","").replace("[","").replace("]",""))
);

return df;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ public ValidationError getMissingScaleDataTypeMsg() {
}

@Override
public ValidationError getPeriodObsVarNameMsg() {
return new ValidationError("Name", "Period is invalid", HttpStatus.UNPROCESSABLE_ENTITY);
public ValidationError getInvalidCharObsVarNameMsg() {
return new ValidationError("Name", "Periods and brackets are invalid", HttpStatus.UNPROCESSABLE_ENTITY);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ public ValidationError getMissingScaleDataTypeMsg() {
}

@Override
public ValidationError getPeriodObsVarNameMsg() {
return new ValidationError("observationVariableName", "Period in name is invalid", HttpStatus.BAD_REQUEST);
public ValidationError getInvalidCharObsVarNameMsg() {
return new ValidationError("observationVariableName", "Periods and brackets in name are invalid", HttpStatus.BAD_REQUEST);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public interface TraitValidatorErrorInterface {
ValidationError getMissingScaleUnitMsg();
ValidationError getMissingScaleDataTypeMsg();
ValidationError getMissingObsVarNameMsg();
ValidationError getPeriodObsVarNameMsg();
ValidationError getInvalidCharObsVarNameMsg();
ValidationError getMissingTraitEntityMsg();
ValidationError getMissingTraitAttributeMsg();
ValidationError getMissingTraitDescriptionMsg();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -217,12 +217,12 @@ public ValidationErrors checkTraitFieldsFormat(List<Trait> traits, TraitValidato
Trait trait = traits.get(i);
String name = trait.getObservationVariableName();

Pattern pattern = Pattern.compile("\\.");
Pattern pattern = Pattern.compile("[\\.\\]\\[]");
Matcher matcher = pattern.matcher(name);
boolean containsInvalidCharacter = matcher.find();

if (name != null && containsInvalidCharacter){
ValidationError error = traitValidatorErrors.getPeriodObsVarNameMsg();
ValidationError error = traitValidatorErrors.getInvalidCharObsVarNameMsg();
errors.addError(traitValidatorErrors.getRowNumber(i), error);
}
}
Expand Down