/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma.datasource.mongodb;
import java.util.Set;
import org.obiba.magma.VariableValueSource;
import org.obiba.magma.VariableValueSourceFactory;
import com.google.common.collect.ImmutableSet;
import com.mongodb.BasicDBObject;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DBCursor;
public class MongoDBVariableValueSourceFactory implements VariableValueSourceFactory {
private final MongoDBValueTable table;
public MongoDBVariableValueSourceFactory(MongoDBValueTable table) {
this.table = table;
}
@Override
public Set<VariableValueSource> createSources() {
ImmutableSet.Builder<VariableValueSource> builder = ImmutableSet.builder();
try(DBCursor variableCursor = table.getVariablesCollection().find(new BasicDBObject())
.sort(BasicDBObjectBuilder.start().add("_id", 1).get())) {
while(variableCursor.hasNext()) {
builder.add(new MongoDBVariableValueSource(table, variableCursor.next().get("name").toString()));
}
}
return builder.build();
}
}