/**
*
*/
package org.infoglue.cms.entities.content;
import org.infoglue.cms.entities.kernel.BaseEntityVO;
import org.infoglue.cms.util.ConstraintExceptionBuffer;
/**
* @author Erik Stenbäcka
*
*/
public class EntityVOWithSupplementingEntityVO
{
private BaseEntityVO entity;
private BaseEntityVO supplementingEntity;
public BaseEntityVO getEntity()
{
return entity;
}
public void setEntity(BaseEntityVO entity)
{
this.entity = entity;
}
public BaseEntityVO getSupplementingEntity()
{
return supplementingEntity;
}
public void setSupplementingEntity(BaseEntityVO supplementingEntity)
{
this.supplementingEntity = supplementingEntity;
}
public boolean getIsEntityContent()
{
return entity instanceof ContentVO;
}
public boolean getIsEntityExternal()
{
return entity instanceof IdOnlyBaseEntityVO;
}
public boolean getIsSupplementingEntityAsset()
{
return supplementingEntity instanceof DigitalAssetVO;
}
@Override
public String toString()
{
StringBuilder sb = new StringBuilder();
sb.append("[");
if (entity != null)
{
sb.append("Entity: {type:");
sb.append(entity.getClass().getSimpleName());
sb.append(",");
sb.append(entity.getId());
sb.append("}");
}
else
{
sb.append("--null--");
}
if (supplementingEntity != null)
{
sb.append(", Supplementing: {type:");
sb.append(supplementingEntity.getClass().getSimpleName());
sb.append(",");
sb.append(supplementingEntity.getId());
sb.append("}");
}
else
{
sb.append(", --null--");
}
sb.append("]");
return sb.toString();
}
public static class IdOnlyBaseEntityVO implements BaseEntityVO
{
private Integer id;
public IdOnlyBaseEntityVO(Integer id)
{
this.id = id;
}
@Override
public Integer getId()
{
return id;
}
/**
* Beware: does nothing;
*/
@Override
public ConstraintExceptionBuffer validate()
{
return null;
}
}
}