use of org.openforis.idm.model.File in project collect by openforis.
the class FileAttributeMapper method addNode.
@Override
Node<?> addNode(NodeDefinition defn, Record r, Entity parent) {
String filename = r.getValueAsString(Data.DATA.TEXT1);
Long size = r.getValueAsLong(Data.DATA.NUMBER1);
File value = new File(filename, size);
return parent.addValue(defn.getName(), value);
}
use of org.openforis.idm.model.File in project collect by openforis.
the class FileAttributeMapper method setFields.
@Override
void setFields(Node<?> node, InsertSetStep<?> insert) {
FileAttribute f = (FileAttribute) node;
File value = f.getValue();
if (value != null) {
insert.set(Data.DATA.TEXT1, value.getFilename());
insert.set(Data.DATA.NUMBER1, toNumeric(value.getSize()));
}
}
use of org.openforis.idm.model.File in project collect by openforis.
the class BaseAttributeUpdateRequestProxy method parseFileAttributeValue.
protected File parseFileAttributeValue(RecordSessionManager sessionManager, CollectRecord record, Integer nodeId, Object value) {
if (value == null) {
sessionManager.prepareDeleteTempRecordFile(record, nodeId);
return null;
} else {
if (value instanceof FileWrapper) {
FileWrapper fileWrapper = (FileWrapper) value;
java.io.File tempFile = new java.io.File(fileWrapper.getFilePath());
sessionManager.prepareDeleteTempRecordFile(record, nodeId);
sessionManager.indexTempRecordFile(tempFile, nodeId);
return new File(tempFile.getAbsolutePath(), tempFile.length());
} else {
throw new IllegalArgumentException("Invalid value type: expected byte[]");
}
}
}
use of org.openforis.idm.model.File in project collect by openforis.
the class CSVValueFormatter method format.
public String format(AttributeDefinition defn, Value value) {
if (value == null) {
return "";
} else if (value instanceof BooleanValue) {
return ((BooleanValue) value).getValue().toString();
} else if (value instanceof Code) {
CodeListService codeListService = defn.getSurvey().getContext().getCodeListService();
CodeList list = ((CodeAttributeDefinition) defn).getList();
if (codeListService.hasQualifiableItems(list)) {
return String.format("%s: %s", ((Code) value).getCode(), ((Code) value).getQualifier());
} else {
return ((Code) value).getCode();
}
} else if (value instanceof Coordinate) {
return value.toString();
} else if (value instanceof Date) {
Date date = (Date) value;
return String.format("%d/%d/%d", ((Date) value).getDay(), ((Date) value).getMonth(), date.getYear());
} else if (value instanceof File) {
return ((File) value).getFilename();
} else if (value instanceof NumberValue) {
Number val = ((NumberValue<?>) value).getValue();
NumberFormat numberFormat = NumberFormat.getInstance(Locale.ENGLISH);
String formattedVal = numberFormat.format(val);
return formattedVal;
} else if (value instanceof NumericRange) {
Number from = ((NumericRange<?>) value).getFrom();
Number to = ((NumericRange<?>) value).getFrom();
String format;
if (value instanceof IntegerRange) {
format = "%d-%d";
} else {
format = "%f-%f";
}
String formattedValue = String.format(Locale.ENGLISH, format, from, to);
return formattedValue;
} else if (value instanceof TextValue) {
return ((TextValue) value).getValue();
} else if (value instanceof Time) {
Time time = (Time) value;
return String.format("%d:%d", time.getHour(), time.getMinute());
} else
throw new IllegalArgumentException("Unsupported attribute value type: " + value.getClass().getName());
}
Aggregations