package org.atlasapi.persistence.media.entity;
import org.atlasapi.media.entity.Clip;
import org.atlasapi.persistence.ModelTranslator;
import com.metabroadcast.common.ids.NumberToShortStringCodec;
import com.mongodb.DBObject;
public class ClipTranslator implements ModelTranslator<Clip> {
private final ItemTranslator itemTranslator;
public ClipTranslator(NumberToShortStringCodec idCodec) {
itemTranslator = new ItemTranslator(new ContentTranslator(new DescribedTranslator(new IdentifiedTranslator(), new ImageTranslator()), this, new VersionTranslator(idCodec)), idCodec);
}
@Override
public Clip fromDBObject(DBObject dbObject, Clip clip) {
if (clip == null) {
clip = new Clip();
}
itemTranslator.fromDBObject(dbObject, clip);
clip.setClipOf((String) dbObject.get("clipOfUri"));
return clip;
}
@Override
public DBObject toDBObject(DBObject dbObject, Clip clip) {
dbObject = itemTranslator.toDBObject(dbObject, clip);
dbObject.put("type", Clip.class.getSimpleName());
dbObject.put("clipOfUri", clip.getClipOf());
return dbObject;
}
public void removeFieldsForHash(DBObject clipDbo) {
itemTranslator.removeFieldsForHash(clipDbo);
}
}