use of org.apache.karaf.shell.support.table.Row in project ddf by codice.
the class RangeCommand method executeWithSubject.
@Override
protected Object executeWithSubject() throws Exception {
Filter filter;
Date wayInTheFuture = new DateTime().plusYears(5000).toDate();
Date endDate = wayInTheFuture;
SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
if (WILDCARD.equals(rangeBeginning) && WILDCARD.equals(rangeEnd)) {
filter = filterBuilder.attribute(attributeName).before().date(endDate);
} else if (WILDCARD.equals(rangeBeginning) && !WILDCARD.equals(rangeEnd)) {
try {
endDate = formatter.parse(rangeEnd);
} catch (ParseException e) {
throw new InterruptedException("Could not parse second parameter [" + rangeEnd + "]");
}
filter = filterBuilder.attribute(attributeName).before().date(endDate);
} else if (!WILDCARD.equals(rangeBeginning) && WILDCARD.equals(rangeEnd)) {
try {
Date startDate = formatter.parse(rangeBeginning);
filter = filterBuilder.attribute(attributeName).during().dates(startDate, endDate);
} catch (ParseException e) {
throw new InterruptedException("Could not parse first parameter [" + rangeBeginning + "]");
}
} else {
try {
Date startDate = formatter.parse(rangeBeginning);
endDate = formatter.parse(rangeEnd);
filter = filterBuilder.attribute(attributeName).during().dates(startDate, endDate);
} catch (ParseException e) {
throw new InterruptedException("Could not parse date parameters.");
}
}
QueryImpl query = new QueryImpl(filter);
query.setPageSize(MAX_RESULTS);
query.setSortBy(new SortByImpl(attributeName, SortOrder.DESCENDING.name()));
QueryRequest queryRequest = new QueryRequestImpl(query);
SourceResponse response = getCatalog().query(queryRequest);
List<Result> results = response.getResults();
final ShellTable table = new ShellTable();
table.column(NUMBER);
table.column(ID);
table.column(attributeName);
table.column(TITLE).maxSize(MAX_LENGTH);
table.emptyTableText("No results");
int i = 1;
for (Result result : results) {
Attribute attribute = result.getMetacard().getAttribute(attributeName);
if (attribute != null && attribute.getValue() != null) {
String returnedDate = new DateTime(attribute.getValue()).toString(DATETIME_FORMATTER);
String title = result.getMetacard().getTitle();
final Row row = table.addRow();
row.addContent(i, result.getMetacard().getId(), returnedDate, title);
}
i++;
}
table.print(console, true);
return null;
}
Aggregations