package models;
// Generated Aug 25, 2012 5:00:02 PM by Hibernate Tools 3.2.1.GA


import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import static javax.persistence.GenerationType.IDENTITY;

/**
 * Operacao generated by hbm2java
 */
@Entity
@Table(name="operacao"
    ,catalog="awmo"
)
public class Operacao  implements java.io.Serializable {


     private Long id;
     private Tipo tipo;
     private Classe classe;
     private String name;
     private String visibility;
     private Set<Parametro> parametros = new HashSet<Parametro>(0);

    public Operacao() {
    }

	
    public Operacao(Tipo tipo, Classe classe, String name, String visibility) {
        this.tipo = tipo;
        this.classe = classe;
        this.name = name;
        this.visibility = visibility;
    }
    public Operacao(Tipo tipo, Classe classe, String name, String visibility, Set<Parametro> parametros) {
       this.tipo = tipo;
       this.classe = classe;
       this.name = name;
       this.visibility = visibility;
       this.parametros = parametros;
    }
   
     @Id @GeneratedValue(strategy=IDENTITY)
    
    @Column(name="id", unique=true, nullable=false)
    public Long getId() {
        return this.id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
@ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="tipo_id", nullable=false)
    public Tipo getTipo() {
        return this.tipo;
    }
    
    public void setTipo(Tipo tipo) {
        this.tipo = tipo;
    }
@ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="classe_id", nullable=false)
    public Classe getClasse() {
        return this.classe;
    }
    
    public void setClasse(Classe classe) {
        this.classe = classe;
    }
    
    @Column(name="name", nullable=false, length=100)
    public String getName() {
        return this.name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    @Column(name="visibility", nullable=false, length=20)
    public String getVisibility() {
        return this.visibility;
    }
    
    public void setVisibility(String visibility) {
        this.visibility = visibility;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="operacao")
@OrderBy("id")
    public Set<Parametro> getParametros() {
        return this.parametros;
    }
    
    public void setParametros(Set<Parametro> parametros) {
        this.parametros = parametros;
    }




}


