package com.k_int.aggr2.mimsy.data.hdo;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;



@Entity
@Table(name="CIIM_VALIDATION_MESSAGE")
public class ValidationMessageHDO implements Serializable
{
	private static final long serialVersionUID = 1L;
	private Long id;
	private String field;
	private String message;
	private ValidationResultHDO owner;
	
	
	public ValidationMessageHDO(String field, String message)
	{
		this.field=field;
		this.message=message;
	}
	
	public ValidationMessageHDO()
	{;}
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="ID")
   public Long getId() {
        return id;
    }

    protected void setId(Long id) {
        this.id = id;
    }
   
    
	public void setField(String field)
	{
		this.field=field;
	}
	
	public void setOwner(ValidationResultHDO owner)
	{
		this.owner=owner;
	}
	
	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="OWNING_RESULT_FK")
	public ValidationResultHDO getOwner()
	{
		return owner;
	}
	
	public void setMessage(String message)
	{
		this.message=message;
	}
	
	@Column(name="MESSAGE_FIELD",length=128)
	public String getField()
	{
		return field;
	}
	
	@Column(name="MESSAGE_TEXT",length=512)
	public String getMessage()
	{
		return message;
	}
	
	public String toString()
	{
		return field+": "+message;
	}
	
	public int hashCode(){
		return toString().hashCode();
	}
	
	public boolean equals(Object o)
	{
		boolean retval=false;
		if(o instanceof ValidationMessageHDO && o!=null)
		{
			retval=o.toString().equals(this.toString());
		}
		return retval;
	}
}
