package com.k_int.aggr2.mimsy.data;

import java.io.Serializable;

/**
 * 
 * @author rob
 *	A class representing a subset of the master record metadata which appears in a group context
 */
public class CIIMMasterDataDTO implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private MimsyDataDTO master;
	/*public String display_title;
	public String description;
	public String object_id;
	private MimsyMediaDataDTO primary;
	//private String primary_thumbnail;
	//private String primary_mid;
	//private String primary_large;
	//private String original;
	//private MediaRecordTypeEnum ref_media_type;
	private Set<ControlledReferenceDTO>    	linked_objects 		= new HashSet<ControlledReferenceDTO>();
	private Set<ControlledReferenceDTO>    	linked_places       = new HashSet<ControlledReferenceDTO>();
	private Set<ControlledReferenceDTO>    	linked_agents       = new HashSet<ControlledReferenceDTO>();
	private Set<ControlledReferenceDTO>    	linked_events       = new HashSet<ControlledReferenceDTO>();
	private Set<ControlledReferenceDTO>  	linked_publications = new HashSet<ControlledReferenceDTO>();
	private Set<ControlledReferenceDTO>    	linked_subjects     = new HashSet<ControlledReferenceDTO>(); 
	private Set<ControlledReferenceDTO>    	linked_sites     	= new HashSet<ControlledReferenceDTO>();   
	private Set<ControlledReferenceDTO>    	linked_makers     	= new HashSet<ControlledReferenceDTO>();    
	*/
	/*public CIIMMasterDataDTO()
	{
		//
	}*/
	
	public CIIMMasterDataDTO(MimsyDataDTO master)
	{
		this.master=master;
		/*display_title=master.getSummaryTitle();
		if(master.getDataType()==MimsyDataTypeEnum.OBJECT)
		{
			MimsyObjectDataDTO data 	= (MimsyObjectDataDTO) master;
			description					= data.getSummary();
			object_id					= data.getObjectId();
			Iterator<Map.Entry<Integer, MimsyMediaDataDTO>> i = data.getLinkedMedia().entrySet().iterator();
			
			while(i.hasNext())
			{
				Map.Entry<Integer, MimsyMediaDataDTO> entry=i.next();
				Integer key = entry.getKey();
				if(key==null || key.intValue()==-1 || key.intValue()==0 || key.intValue()==1)
				{
					primary=entry.getValue();
				}
				if(primary!=null)
					break;
			}
			//TODO add this to the serialization
			/*if(primary!=null && primary.getRecordType()==MediaRecordTypeEnum.IMAGE)
			{				
				primary_thumbnail = primary.getPreviewRelativePath();
				primary_mid		= primary.getMidRelativePath();
				primary_large		= primary.getLargeRelativePath();
				original			= primary.getLargeDonorRelativePath();
			}
			else if (primary!=null)
				original=primary.getDonorRelativePath();
			
			if(primary!=null)
				ref_media_type=primary.getRecordType();	
		}*/
	}
	
	public void setMaster(MimsyDataDTO master)
	{
		this.master=master;
	}
	
	public MimsyDataDTO getMaster()
	{
		return master;
	}
	
}
