package cz.cuni.mff.d3s.been.objectrepository.mongo;
import com.mongodb.DB;
import cz.cuni.mff.d3s.been.core.persistence.EntityID;
import cz.cuni.mff.d3s.been.persistence.DAOException;
/**
* Redactor for fetch queries for MongoDB
*
* @author darklight
*/
class MongoFetchQueryRedactor extends MongoQueryRedactor {
/**
* Creates new MongoFetchQueryRedactor.
*
* @param entityID
* target's EntityID
*/
MongoFetchQueryRedactor(EntityID entityID) {
super(entityID);
}
@Override
public MongoFetchQueryExecutor createExecutor(DB db) throws DAOException {
if (getPath() == null || getPath().getKind() == null || getPath().getGroup() == null) {
throw new DAOException("Path to collection (Entity ID) must be fully specified for fetch queries");
}
return new MongoFetchQueryExecutor(db.getCollection(getPath().getKind()).getCollection(getPath().getGroup()), getFilter(), getMapping());
}
}