package com.psddev.cms.db; import com.psddev.dari.db.ObjectType; import com.psddev.dari.db.Record; import com.psddev.dari.db.State; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; import java.util.UUID; /** Represents a preview of an object. */ public class Preview extends Record { @Indexed private Date createDate; @Indexed private ObjectType objectType; @Indexed private UUID objectId; private Map<String, Object> objectValues; private Site site; public Date getCreateDate() { return createDate; } public void setCreateDate(Date date) { this.createDate = date; } public ObjectType getObjectType() { return objectType; } public void setObjectType(ObjectType type) { this.objectType = type; } public UUID getObjectId() { return objectId; } public void setObjectId(UUID id) { this.objectId = id; } public Map<String, Object> getObjectValues() { if (objectValues == null) { objectValues = new LinkedHashMap<String, Object>(); } return objectValues; } public void setObjectValues(Map<String, Object> values) { this.objectValues = values; } public Site getSite() { return site; } public void setSite(Site site) { this.site = site; } /** Returns an object to be previewed. */ public Object getObject() { if (objectType == null) { return null; } else { Object object = objectType.createObject(objectId); State state = State.getInstance(object); if (objectValues != null) { state.getValues().putAll(objectValues); } return object; } } }