package com.k_int.aggr2.mimsy.data.hdo;

import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import org.hibernate.Session;

import com.k_int.mimsy.ref.DataException;
import com.k_int.mimsy.ref.MediaRecordTypeEnum;

@Entity
@Table(name="CIIM_AUDIO_MEDIA_DESCRIPTION")
@PrimaryKeyJoinColumn(name="MEDIA_DESCRIPTION_FK")
public class CIIMAudioMediaDescriptionHDO extends CIIMMediaDescriptionHDO
{
	private static final long 		serialVersionUID = 1L;
	
	protected CIIMAudioMediaDescriptionHDO(){;}
	
	public static CIIMAudioMediaDescriptionHDO lookupOrCreate(Session session, String name, String location, Long id)throws DataException
	{
		CIIMAudioMediaDescriptionHDO result = null;
		
		if(id != null)
		{
			result = (CIIMAudioMediaDescriptionHDO) CIIMMediaDescriptionHDO.lookupById(session, id);
		}
		if(result == null && name != null)
		{
			result = (CIIMAudioMediaDescriptionHDO) CIIMMediaDescriptionHDO.lookupByName(session, name);
		}
		
		if (result == null) 
		{
			try
			{
				result = new CIIMAudioMediaDescriptionHDO(); 
				result.setName(name);
				result.setLocation(location);
				result.setMediaType(MediaRecordTypeEnum.AUDIO);
				
				session.save(result);
				session.flush();				 
			}
			catch(Exception e)
			{
				throw new DataException(e);
			}			 
		}
		return result;
	}
}
