package somiba.domain;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Table(name="mapping")
public class Mapping {

	@Id @OneToMany(cascade=CascadeType.ALL)
    @JoinColumns ({
        @JoinColumn(name="original", referencedColumnName = "original"),
        @JoinColumn(name="custom", referencedColumnName = "custom"),
    })

	String original;
	String custom;

	public Mapping(String original, String custom) {
		this.original = original.toUpperCase();
		this.custom = custom.toUpperCase();
	}
	
	public Mapping() {}

	@Column(length = 9, nullable = false)  
	public String getCustom() {
		return custom;
	}

	public void setCustom(String custom) {
		this.custom = custom.toUpperCase();
	}

	@Column(length = 9, nullable = false)  
	public String getOriginal() {
		return original;
	}

	public void setOriginal(String original) {
		this.original = original.toUpperCase();
	}
}
