package org.atlasapi.persistence.media.entity;
import static org.atlasapi.media.entity.RelatedLink.relatedLink;
import org.atlasapi.media.entity.RelatedLink;
import org.atlasapi.media.entity.RelatedLink.LinkType;
import com.metabroadcast.common.persistence.translator.TranslatorUtils;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
public class RelatedLinkTranslator {
private static final String THUMB_KEY = "thumb";
private static final String IMAGE_KEY = "image";
private static final String DESC_KEY = "desc";
private static final String TITLE_KEY = "title";
private static final String SHORT_NAME_KEY = "shortName";
private static final String SOURCE_ID_KEY = "sourceId";
private static final String TYPE_KEY = "type";
private static final String URL_KEY = "url";
public DBObject toDBObject(RelatedLink link) {
DBObject dbo = new BasicDBObject();
TranslatorUtils.from(dbo, URL_KEY, link.getUrl());
TranslatorUtils.from(dbo, TYPE_KEY, link.getType().toString().toLowerCase());
TranslatorUtils.from(dbo, SOURCE_ID_KEY, link.getSourceId());
TranslatorUtils.from(dbo, SHORT_NAME_KEY, link.getShortName());
TranslatorUtils.from(dbo, TITLE_KEY, link.getTitle());
TranslatorUtils.from(dbo, DESC_KEY, link.getDescription());
TranslatorUtils.from(dbo, IMAGE_KEY, link.getImage());
TranslatorUtils.from(dbo, THUMB_KEY, link.getThumbnail());
return dbo;
}
public RelatedLink fromDBObject(DBObject dbo) {
return relatedLink(LinkType.valueOf(TranslatorUtils.toString(dbo, TYPE_KEY).toUpperCase()), TranslatorUtils.toString(dbo, URL_KEY))
.withSourceId(TranslatorUtils.toString(dbo, SOURCE_ID_KEY))
.withShortName(TranslatorUtils.toString(dbo, SHORT_NAME_KEY))
.withTitle(TranslatorUtils.toString(dbo, TITLE_KEY))
.withDescription(TranslatorUtils.toString(dbo, DESC_KEY))
.withImage(TranslatorUtils.toString(dbo, IMAGE_KEY))
.withThumbnail(TranslatorUtils.toString(dbo, THUMB_KEY))
.build();
}
}