package org.atlasapi.persistence.content.mongo;
import static com.metabroadcast.common.persistence.mongo.MongoBuilders.where;
import org.atlasapi.media.entity.Alias;
import org.atlasapi.media.entity.Player;
import org.atlasapi.persistence.media.entity.DescribedTranslator;
import org.atlasapi.persistence.media.entity.IdentifiedTranslator;
import org.atlasapi.persistence.media.entity.ImageTranslator;
import org.atlasapi.persistence.player.PlayerResolver;
import com.google.common.base.Optional;
import com.metabroadcast.common.persistence.mongo.DatabasedMongo;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
public class MongoPlayerStore implements PlayerResolver {
private static final String COLLECTION = "players";
private final DBCollection collection;
private DescribedTranslator playerTranslator;
public MongoPlayerStore(DatabasedMongo mongo) {
this.collection = mongo.collection(COLLECTION);
this.playerTranslator = new DescribedTranslator(new IdentifiedTranslator(true), new ImageTranslator());
}
@Override
public Optional<Player> playerFor(long id) {
DBObject dbo = collection.findOne(where().idEquals(id).build());
if (dbo == null) {
return Optional.absent();
}
return Optional.of((Player) playerTranslator.fromDBObject(dbo, new Player()));
}
@Override
public Iterable<Player> playersFor(Alias alias) {
throw new UnsupportedOperationException();
}
}