Search in sources :

Example 1 with DocumentConverterException

use of org.apache.rya.indexing.entity.storage.mongo.DocumentConverter.DocumentConverterException in project incubator-rya by apache.

the class MongoEventStorage method search.

@Override
public Collection<Event> search(final Optional<RyaURI> subject, final Optional<Collection<IndexingExpr>> geoFilters, final Optional<Collection<IndexingExpr>> temporalFilters) throws EventStorageException {
    requireNonNull(subject);
    try {
        final Collection<IndexingExpr> geos = (geoFilters.isPresent() ? geoFilters.get() : new ArrayList<>());
        final Collection<IndexingExpr> tempos = (temporalFilters.isPresent() ? temporalFilters.get() : new ArrayList<>());
        final DBObject filterObj = queryAdapter.getFilterQuery(geos, tempos);
        final BasicDBObjectBuilder builder = BasicDBObjectBuilder.start(filterObj.toMap());
        if (subject.isPresent()) {
            builder.append(EventDocumentConverter.SUBJECT, subject.get().getData());
        }
        final MongoCursor<Document> results = mongo.getDatabase(ryaInstanceName).getCollection(COLLECTION_NAME).find(BsonDocument.parse(builder.get().toString())).iterator();
        final List<Event> events = new ArrayList<>();
        while (results.hasNext()) {
            events.add(EVENT_CONVERTER.fromDocument(results.next()));
        }
        return events;
    } catch (final MongoException | DocumentConverterException | GeoTemporalIndexException e) {
        throw new EventStorageException("Could not get the Event.", e);
    }
}
Also used : BasicDBObjectBuilder(com.mongodb.BasicDBObjectBuilder) MongoException(com.mongodb.MongoException) ArrayList(java.util.ArrayList) Document(org.bson.Document) BsonDocument(org.bson.BsonDocument) DBObject(com.mongodb.DBObject) DocumentConverterException(org.apache.rya.indexing.entity.storage.mongo.DocumentConverter.DocumentConverterException) GeoTemporalIndexException(org.apache.rya.indexing.geotemporal.GeoTemporalIndexException) Event(org.apache.rya.indexing.geotemporal.model.Event) IndexingExpr(org.apache.rya.indexing.IndexingExpr)

Aggregations

BasicDBObjectBuilder (com.mongodb.BasicDBObjectBuilder)1 DBObject (com.mongodb.DBObject)1 MongoException (com.mongodb.MongoException)1 ArrayList (java.util.ArrayList)1 IndexingExpr (org.apache.rya.indexing.IndexingExpr)1 DocumentConverterException (org.apache.rya.indexing.entity.storage.mongo.DocumentConverter.DocumentConverterException)1 GeoTemporalIndexException (org.apache.rya.indexing.geotemporal.GeoTemporalIndexException)1 Event (org.apache.rya.indexing.geotemporal.model.Event)1 BsonDocument (org.bson.BsonDocument)1 Document (org.bson.Document)1