/*
* Copyright 2010 Chad Retz
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.statmantis.model;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
/**
* Representation of an event in a {@link Play}
*
* @author Chad Retz
*/
@Entity
@Table(name = "PlayEvent")
@SuppressWarnings("serial")
public class PlayEvent implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "PlayEventId", unique = true, nullable = false)
private long playEventId;
@ManyToOne
@Column(name = "PrimaryBaseRunnerId")
private GamePlayer primaryBaseRunner;
@Enumerated(EnumType.STRING)
@Column(name = "PrimaryRunningFrom")
private Base primaryRunningFrom;
@Enumerated(EnumType.STRING)
@Column(name = "PrimaryRunningTo")
private Base primaryRunningTo;
@ManyToOne
@Column(name = "SecondaryBaseRunnerId")
private GamePlayer secondaryBaseRunner;
@Enumerated(EnumType.STRING)
@Column(name = "SecondaryRunningFrom")
private Base secondaryRunningFrom;
@Enumerated(EnumType.STRING)
@Column(name = "SecondaryRunningTo")
private Base secondaryRunningTo;
@ManyToOne
@Column(name = "TertiaryBaseRunnerId")
private GamePlayer tertiaryBaseRunner;
@Enumerated(EnumType.STRING)
@Column(name = "TeriaryRunningFrom")
private Base tertiaryRunningFrom;
@Enumerated(EnumType.STRING)
@Column(name = "TertiaryRunningTo")
private Base tertiaryRunningTo;
@Enumerated(EnumType.STRING)
@Column(name = "ErrorType")
private ErrorType errorType;
@Column(name = "Out", nullable = false)
private boolean out;
@Enumerated(EnumType.STRING)
@Column(name = "PlayType", nullable = false, length = PlayType.MAX_LENGTH)
private PlayType playType;
@OneToOne
@JoinColumn(name = "SecondaryEventId")
private PlayEvent secondaryEvent;
@ManyToMany
@JoinTable(name = "PlayEventFielder",
joinColumns = @JoinColumn(name = "PlayEventId"),
inverseJoinColumns = @JoinColumn(name = "FielderId"))
private List<GamePlayer> fielders;
@OneToMany
@JoinColumn(name = "PlayEventId")
private List<PlayModifier> modifiers;
public long getPlayEventId() {
return playEventId;
}
public void setPlayEventId(long playEventId) {
this.playEventId = playEventId;
}
public GamePlayer getPrimaryBaseRunner() {
return primaryBaseRunner;
}
public void setPrimaryBaseRunner(GamePlayer primaryBaseRunner) {
this.primaryBaseRunner = primaryBaseRunner;
}
public Base getPrimaryRunningFrom() {
return primaryRunningFrom;
}
public void setPrimaryRunningFrom(Base primaryRunningFrom) {
this.primaryRunningFrom = primaryRunningFrom;
}
public Base getPrimaryRunningTo() {
return primaryRunningTo;
}
public void setPrimaryRunningTo(Base primaryRunningTo) {
this.primaryRunningTo = primaryRunningTo;
}
public GamePlayer getSecondaryBaseRunner() {
return secondaryBaseRunner;
}
public void setSecondaryBaseRunner(GamePlayer secondaryBaseRunner) {
this.secondaryBaseRunner = secondaryBaseRunner;
}
public Base getSecondaryRunningFrom() {
return secondaryRunningFrom;
}
public void setSecondaryRunningFrom(Base secondaryRunningFrom) {
this.secondaryRunningFrom = secondaryRunningFrom;
}
public Base getSecondaryRunningTo() {
return secondaryRunningTo;
}
public void setSecondaryRunningTo(Base secondaryRunningTo) {
this.secondaryRunningTo = secondaryRunningTo;
}
public GamePlayer getTertiaryBaseRunner() {
return tertiaryBaseRunner;
}
public void setTertiaryBaseRunner(GamePlayer tertiaryBaseRunner) {
this.tertiaryBaseRunner = tertiaryBaseRunner;
}
public Base getTertiaryRunningFrom() {
return tertiaryRunningFrom;
}
public void setTertiaryRunningFrom(Base tertiaryRunningFrom) {
this.tertiaryRunningFrom = tertiaryRunningFrom;
}
public Base getTertiaryRunningTo() {
return tertiaryRunningTo;
}
public void setTertiaryRunningTo(Base tertiaryRunningTo) {
this.tertiaryRunningTo = tertiaryRunningTo;
}
public ErrorType getErrorType() {
return errorType;
}
public void setErrorType(ErrorType errorType) {
this.errorType = errorType;
}
public boolean isOut() {
return out;
}
public void setOut(boolean out) {
this.out = out;
}
public PlayType getPlayType() {
return playType;
}
public void setPlayType(PlayType playType) {
this.playType = playType;
}
public PlayEvent getSecondaryEvent() {
return secondaryEvent;
}
public void setSecondaryEvent(PlayEvent secondaryEvent) {
this.secondaryEvent = secondaryEvent;
}
public List<GamePlayer> getFielders() {
return fielders;
}
public void setFielders(List<GamePlayer> fielders) {
this.fielders = fielders;
}
public List<PlayModifier> getModifiers() {
return modifiers;
}
public void setModifiers(List<PlayModifier> modifiers) {
this.modifiers = modifiers;
}
}