Я пишу фильтр ответов Content Navigator, который будет форматировать два поля в результатах поиска:
Поле «date» не было проблемой - оно работало нормально.
Поле «content size» не работает.Нет ошибок или предупреждений - ICN просто не отображает отформатированное значение.
Проблема может в том, что ICN объявляет 'contentSize' равным xs:long
... и "long"столбец не может содержать буквы типа "kB" или знаки пунктуации "."
Вот мой код:
private void filterSearch(JSONResultSetResponse jsonResultSetResponse) throws Exception {
// For each document returned by the search...
for (int i = 0; i < jsonResultSetResponse.getRowCount(); i++) {
JSONResultSetRow row = jsonResultSetResponse.getRow(i);
...
// contentSize
Long size = Long.parseLong((String)currentValue);
final String[] units = new String[] { "", "kB", "MB", "GB", "TB" };
int digitGroups = (int) (Math.log10(size)/Math.log10(1024));
String formattedSize = new DecimalFormat("#,##0.#").format(size/Math.pow(1024, digitGroups)) + " " + units[digitGroups];
// EXAMPLE: change 14859 -> 14.5 kB
row.setAttributeType(symName, "xs:string");
row.setAttributeValue(symName, formattedSize);
...
В: Есть идеи, как правильно отформатировать "длинное" значение в результатах поиска Content Navigator?