package com.k_int.aggr2.mimsy.data.hdo;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="MIMSY_ATTRIBUTION")
public class AttributionHDO //implements java.io.Serializable 
{
	private static final long serialVersionUID = 1L;
	private Long id;
	private String attributor;
	private String date;
	private String source;
	private String type;
	private String certainty;
	private String comment;
	
	protected AttributionHDO()
	{
		super();
	}
	
	public AttributionHDO(String attributor,String date)
	{
		this.attributor=attributor;
		this.date=date;
	}
	
	@Id
	@Column(name="ID")
	@GeneratedValue(strategy=GenerationType.AUTO)
	public Long getId()
	{
		return id;
	}
	
	protected void setId(Long id)
	{
		this.id = id;
	}
	
	@Column(name="ATTRIBUTOR")
	public String getAttributor()
	{
		return attributor;
	}
	
	public void setAttributor(String attributor)
	{
		this.attributor = attributor;
	}
	
	@Column(name="ATTR_DATE")
	public String getDate()
	{
		return date;
	}
	
	public void setDate(String date)
	{
		this.date = date;
	}
	
	public void setType(String type)
	{
		this.type=type;
	}

	@Column(name="ATTR_TYPE")
	public String getType()
	{
		return type;
	}
	
	public void setSource(String source)
	{
		this.source=source;
	}
	
	@Column(name="ATTR_SOURCE")
	public String getSource()
	{
		return source;
	}
	
	public void setCertainty(String certainty)
	{
		this.certainty=certainty;
	}
	
	@Column(name="CERTAINTY")
	public String getCertainty()
	{
		return certainty;
	}
	
	public void setComment(String comment)
	{
		this.comment=comment;
	}
	
	@Column(name="COMMENT")
	public String getComment()
	{
		return comment;
	}
	
	public int hashCode()
	{
		return toString().hashCode();
	}
	
	public boolean equals(Object o)
	  {
		  boolean retval=false;
		  if(o instanceof AttributionHDO)
		  {
			  retval = (o.toString()).equals(this.toString());
		  }
			  
		  return retval;  
	  }
	
	
	public String toString()
	{
		StringBuilder builder = new StringBuilder();
		if(attributor!=null)
			builder.append(attributor);
		
		if(certainty!=null)
			builder.append(certainty);
		
		if(comment!=null)
			builder.append(comment);
		
		if(date!=null)
			builder.append(date);
		
		if(source!=null)
			builder.append(source);
		
		if(type!=null)
			builder.append(type);
		
		return builder.toString();
		
	}
	
	/*public void toRdfXmlElement(Writer writer, String element_name_prefix)throws SerializationException
	{
		try
		{  
			writer.write("<mo:attribution>");
			if(this.getAttributor()!=null)
			{
				writer.write("<mo:"+element_name_prefix+"Attributor>");
				writer.write(MimsyHelper.encodeForXml(this.getAttributor()));
				writer.write("</mo:"+element_name_prefix+"Attributor>");
			}
			
			if(this.getCertainty()!=null)
			{
				writer.write("<mo:"+element_name_prefix+"AttributionCertainty>");
				writer.write(MimsyHelper.encodeForXml(this.getCertainty()));
				writer.write("</mo:"+element_name_prefix+"AttributionCertainty>");
			}
			
			if(this.getComment()!=null)
			{
				writer.write("<mo:"+element_name_prefix+"AttributionComment>");
				writer.write(MimsyHelper.encodeForXml(this.getComment()));
				writer.write("</mo:"+element_name_prefix+"AttributionComment>");
			}
			
			if(this.getDate()!=null)
			{
				writer.write("<mo:"+element_name_prefix+"AttributionDate>");
				writer.write(MimsyHelper.encodeForXml(this.getDate()));
				writer.write("</mo:"+element_name_prefix+"AttributionDate>");
			}
			
			if(this.getType()!=null)
			{
				writer.write("<mo:"+element_name_prefix+"AttributionType>");
				writer.write(MimsyHelper.encodeForXml(this.getType()));
				writer.write("</mo:"+element_name_prefix+"AttributionType>");
			}
			
			if(this.getSource()!=null)
			{
				writer.write("<mo:"+element_name_prefix+"AttributionSource>");
				writer.write(MimsyHelper.encodeForXml(this.getSource()));
				writer.write("</mo:"+element_name_prefix+"AttributionSource>");
			}	            		
			writer.write("</mo:attribution>");
		}
		catch(Exception e)
		{
			throw new SerializationException(e);
		}
		
	}*/
	
	
}
