package com.k_int.aggr2.mimsy.data.hdo;

import java.util.Date;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import org.hibernate.Session;

import com.k_int.aggr2.mimsy.data.util.MimsyHelper;
import com.k_int.mimsy.ref.MimsyDataTypeEnum;
import com.k_int.mimsy.ref.ObjectConformanceEnum;




@Entity
@Table(name="MIMSY_EVENT_DATA")
@PrimaryKeyJoinColumn(name="BASE_DATA_FK")
public class MimsyEventDataHDO extends BaseMimsyDataHDO
{
	private static final long serialVersionUID = 1L;
	private String start_date;
    private String end_date;
	private String full_name;
    private String brief_name;
    private String duration;
    private String units;
    private String description;
    private String display_date;
    private Boolean candidate;
    private String scope_note;
    
    protected MimsyEventDataHDO()
    {;}
    
    private MimsyEventDataHDO(String mimsy_identifier, Date last_updated, ObjectConformanceEnum conformance)
    {
        super(mimsy_identifier, MimsyDataTypeEnum.EVENT,last_updated,conformance);
    }

    @Column(name="DESCRIPTION", length=4000)
    @Lob
    public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	@Column(name="DISPLAY_DATE")
	public String getDisplayDate() {
		return display_date;
	}

	public void setDisplayDate(String displayDate) {
		display_date = displayDate;
	}

	@Column(name="CANDIDATE")
	public Boolean getCandidate() {
		return candidate;
	}

	public void setCandidate(Boolean candidate) {
		this.candidate = candidate;
	}

	@Column(name="SCOPE_NOTE")
	public String getScopeNote() {
		return scope_note;
	}

	public void setScopeNote(String scopeNote) {
		scope_note = scopeNote;
	}

	@Column(name="START_DATE")
	public void setStartDate(String start_date)
    {
        this.start_date=start_date;
    }
    
    public String getStartDate()
    {
        return start_date;
    }
    @Column(name="END_DATE")
    public String getEndDate()
    {
        return end_date;
    }
    
    public void setEndDate(String end_date)
    {
        this.end_date=end_date;
    }
    
    @Column(name="FULL_NAME")
    public String getFullName() {
		return full_name;
	}

	public void setFullName(String fullName) {
		full_name = fullName;
	}

	@Column(name="BRIEF_NAME")
	public String getBriefName() {
		return brief_name;
	}

	public void setBriefName(String briefName) {
		brief_name = briefName;
	}

	@Column(name="DURATION")
	public String getDuration() {
		return duration;
	}

	public void setDuration(String duration) {
		this.duration = duration;
	}

	@Column(name="UNITS")
	public String getUnits() {
		return units;
	}

	public void setUnits(String units) {
		this.units = units;
	}
	
	public static MimsyEventDataHDO lookupDataOrCreateStub(Session sess,
			String mimsy_identifier) throws Exception
	{
		MimsyEventDataHDO retval = (MimsyEventDataHDO)BaseMimsyDataHDO.lookup(sess, mimsy_identifier);
		 if(retval==null)
		 {
			 MimsyEventDataHDO group = new MimsyEventDataHDO(mimsy_identifier, new Date(), ObjectConformanceEnum.UNKNOWN);
			 group.setChecksum(MimsyHelper.getChecksum(mimsy_identifier));
			 retval=group;
			 sess.save(retval);
			 sess.flush();
		 }
		 return retval;
		
	}
	
	public void clear()
	{
		super.clear();
		
		start_date = null;
	    end_date = null;
		full_name = null;
	    brief_name = null;
	    duration = null;
	    units = null;
	    description = null;
	    display_date = null;
	    candidate = null;
	    scope_note = null;
	}
	
	
}
