package ch.ffhs.webE.domain;
// Generated 19.12.2010 14:46:08 by Hibernate Tools 3.4.0.Beta1
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.persistence.UniqueConstraint;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
/**
 * Term generated by hbm2java
 */
@
Entity
@Table
(name = 
"term", catalog = 
"webengineering", uniqueConstraints = @UniqueConstraint
(columnNames = 
"name"))
public class Term 
implements Serializable
{
  /**
   * Version ID for serialization
   */
  private static final long serialVersionUID = 1L
;
  @Transient
  
private int objectId
;
  private ObjectEntity object
;
  private String name
;
  private Set<Relationship
> relationshipsForTermTo = 
new HashSet<Relationship
>(
      0);
  private Set<Relationship
> relationshipsForTermFrom = 
new HashSet<Relationship
>(
      0);
  /**
   * No-op constructor
   */
  public Term
()
  {
  }
  /**
   * @param object
   */
  public Term
(ObjectEntity object
)
  {
    this.
object = object
;
  }
  /**
   * @param object
   * @param name
   * @param relationshipsForTermTo
   * @param relationshipsForTermFrom
   */
  public Term
(ObjectEntity object, 
String name,
      
Set<Relationship
> relationshipsForTermTo,
      
Set<Relationship
> relationshipsForTermFrom
)
  {
    this.
object = object
;
    this.
name = name
;
    this.
relationshipsForTermTo = relationshipsForTermTo
;
    this.
relationshipsForTermFrom = relationshipsForTermFrom
;
  }
  /**
   * @return
   */
  @GenericGenerator
(name = 
"generator", strategy = 
"foreign", parameters = @
Parameter(name = 
"property", value = 
"object"))
  @Id
  @GeneratedValue
(generator = 
"generator")
  @Column
(name = 
"object_id", unique = 
true, nullable = 
false)
  public int getObjectId
()
  {
    return this.
objectId;
  }
  /**
   * @param objectId
   */
  public void setObjectId
(int objectId
)
  {
    this.
objectId = objectId
;
  }
  /**
   * @return ObjectEntity domain object
   */
  @OneToOne
(cascade = CascadeType.
ALL, fetch = FetchType.
LAZY)
  @PrimaryKeyJoinColumn
  
public ObjectEntity getObject
()
  {
    return this.
object;
  }
  /**
   * @param object
   */
  public void setObject
(ObjectEntity object
)
  {
    this.
object = object
;
  }
  /**
   * @return
   */
  @Column
(name = 
"name", unique = 
true)
  public String getName
()
  {
    return this.
name;
  }
  /**
   * @param name
   */
  public void setName
(String name
)
  {
    this.
name = name
;
  }
  @OneToMany
(fetch = FetchType.
LAZY, mappedBy = 
"termTo")
  public Set<Relationship
> getRelationshipsForTermTo
()
  {
    return this.
relationshipsForTermTo;
  }
  /**
   * @param relationshipsForTermTo
   */
  public void setRelationshipsForTermTo
(Set<Relationship
> relationshipsForTermTo
)
  {
    this.
relationshipsForTermTo = relationshipsForTermTo
;
  }
  /**
   * @return
   */
  @OneToMany
(fetch = FetchType.
LAZY, mappedBy = 
"termFrom")
  public Set<Relationship
> getRelationshipsForTermFrom
()
  {
    return this.
relationshipsForTermFrom;
  }
  /**
   * @param relationshipsForTermFrom
   */
  public void setRelationshipsForTermFrom
(
      Set<Relationship
> relationshipsForTermFrom
)
  {
    this.
relationshipsForTermFrom = relationshipsForTermFrom
;
  }
}