Search in sources :

Example 11 with Row

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;
}
Also used : QueryRequest(ddf.catalog.operation.QueryRequest) SourceResponse(ddf.catalog.operation.SourceResponse) Attribute(ddf.catalog.data.Attribute) Date(java.util.Date) DateTime(org.joda.time.DateTime) Result(ddf.catalog.data.Result) QueryImpl(ddf.catalog.operation.impl.QueryImpl) ShellTable(org.apache.karaf.shell.support.table.ShellTable) Filter(org.opengis.filter.Filter) SortByImpl(ddf.catalog.filter.impl.SortByImpl) QueryRequestImpl(ddf.catalog.operation.impl.QueryRequestImpl) ParseException(java.text.ParseException) Row(org.apache.karaf.shell.support.table.Row) SimpleDateFormat(java.text.SimpleDateFormat)

Aggregations

Row (org.apache.karaf.shell.support.table.Row)11 ShellTable (org.apache.karaf.shell.support.table.ShellTable)10 List (java.util.List)2 Repository (org.apache.karaf.features.Repository)2 Bundle (org.osgi.framework.Bundle)2 Attribute (ddf.catalog.data.Attribute)1 Result (ddf.catalog.data.Result)1 SortByImpl (ddf.catalog.filter.impl.SortByImpl)1 QueryRequest (ddf.catalog.operation.QueryRequest)1 SourceResponse (ddf.catalog.operation.SourceResponse)1 QueryImpl (ddf.catalog.operation.impl.QueryImpl)1 QueryRequestImpl (ddf.catalog.operation.impl.QueryRequestImpl)1 AccessControlContext (java.security.AccessControlContext)1 Principal (java.security.Principal)1 ParseException (java.text.ParseException)1 SimpleDateFormat (java.text.SimpleDateFormat)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 Subject (javax.security.auth.Subject)1 BundleInfo (org.apache.karaf.bundle.core.BundleInfo)1