package org.atlasapi.media.segment; import static org.atlasapi.media.entity.Description.description; import org.atlasapi.media.entity.Description; import com.google.common.base.Strings; import com.metabroadcast.common.persistence.translator.TranslatorUtils; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; public class DescriptionTranslator { private static final String THUMBNAIL_KEY = "thumb"; private static final String IMAGE_KEY = "image"; private static final String SYNOPSIS_KEY = "synopsis"; private static final String TITLE_KEY = "title"; public DBObject toDBObject(Description desc) { if (desc == null || Description.EMPTY.equals(desc)) { return null; } BasicDBObject dbo = new BasicDBObject(); addEmptyToNullField(dbo, TITLE_KEY, desc.getTitle()); addEmptyToNullField(dbo, SYNOPSIS_KEY, desc.getSynopsis()); addEmptyToNullField(dbo, IMAGE_KEY, desc.getImage()); addEmptyToNullField(dbo, THUMBNAIL_KEY, desc.getThumbnail()); return dbo; } private void addEmptyToNullField(DBObject dbo, String field, String value) { TranslatorUtils.from(dbo, field, Strings.emptyToNull(value)); } public Description fromDBObject(DBObject dbo) { if (dbo == null) { return Description.EMPTY; } return description() .withTitle(getField(dbo,TITLE_KEY)) .withSynopsis(getField(dbo, SYNOPSIS_KEY)) .withImage(getField(dbo, IMAGE_KEY)) .withThumbnail(getField(dbo, THUMBNAIL_KEY)).build(); } private String getField(DBObject dbo, String field) { return Strings.nullToEmpty(TranslatorUtils.toString(dbo, field)); } }