package entities;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Version;

//@ManagedBean
//@SessionScoped
@Entity
public class Forum implements Serializable, Cloneable {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private int id;
  private String frage;
  @OneToMany(cascade = CascadeType.ALL)
  private List<Antwort> antworten = new ArrayList<Antwort>();
  @Version
  private int version;

  public Forum() {
  }

  public Forum(String frage) {
    this.frage = frage;
  }

  public List<Antwort> getAntworten() {
    return antworten;
  }

  public void setAntworten(List<Antwort> antworten) {
    this.antworten = antworten;
  }

  public String getFrage() {
    return frage;
  }

  public void setFrage(String frage) {
    this.frage = frage;
  }

  public int getAntwortzahl() {
    return antworten.size();
  }

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public int getVersion() {
    return version;
  }

  public void setVersion(int version) {
    this.version = version;
  }

  public void antwortHinzufuegen(Antwort a) {
    getAntworten().add(a);
  }

  @Override
  public String toString() {
    StringBuffer sb = new StringBuffer(frage + "\n");
    for (Antwort a : antworten) {
      sb.append("  " + a + "\n");
    }
    return sb.toString();
  }

  @Override
  public Object clone() {
    return new Forum(frage);
  }
}
