/* * 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; import org.hibernate.annotations.CollectionOfElements; /** * Representation of a play in a {@link Game} * * @author Chad Retz * */ @Entity @Table(name = "Play") @SuppressWarnings("serial") public class Play implements Serializable { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) @Column(name = "PlayId", unique = true, nullable = false) private long playId; @Column(name = "Inning", nullable = false) private int inning; @Column(name = "Outs", nullable = false) private int outs; @Column(name = "HomeTeam", nullable = false) private boolean homeTeam; @Column(name = "Balls") private Integer balls; @Column(name = "Strikes") private Integer strikes; @Column(name = "Substitution", nullable = false) private boolean substitution; @Column(name = "BattedOutOfTurn", nullable = false) private boolean battedOutOfTurn; @ManyToOne @Column(name = "PlayerId") private GamePlayer player; @ManyToOne @Column(name = "BatterId") private GamePlayer batter; @ManyToOne @Column(name = "RunnerAtFirstId") private GamePlayer runnerAtFirst; @ManyToOne @Column(name = "RunnerAtSecondId") private GamePlayer runnerAtSecond; @ManyToOne @Column(name = "RunnerAtThirdId") private GamePlayer runnerAtThird; @ManyToOne @Column(name = "PitcherId") private GamePlayer pitcher; @Enumerated(EnumType.STRING) @Column(name = "BatterHandAdjustment", length = HandPreference.MAX_LENGTH) private HandPreference batterHandAdjustment; @Enumerated(EnumType.STRING) @Column(name = "PitcherHandAdjustment", length = HandPreference.MAX_LENGTH) private HandPreference pitcherHandAdjustment; @Enumerated(EnumType.STRING) @CollectionOfElements @JoinTable(name = "PlayAtBatEvent", joinColumns = @JoinColumn(name = "PlayId")) @Column(name = "AtBatEvent") private List<AtBatEvent> atBatEvents; @OneToOne @JoinColumn(name = "PlayEventId") private PlayEvent event; @ManyToMany(mappedBy = "plays") private Game game; @OneToMany @JoinColumn(name = "PlayRunnerAdvancementId") private List<PlayRunnerAdvancement> advancements; @OneToMany @JoinColumn(name = "PitchId") private List<Pitch> pitches; @CollectionOfElements @JoinTable(name = "PlayComment", joinColumns = @JoinColumn(name = "PlayId")) @Column(name = "Comment") private List<String> comments; public long getPlayId() { return playId; } public void setPlayId(long playId) { this.playId = playId; } public int getInning() { return inning; } public void setInning(int inning) { this.inning = inning; } public int getOuts() { return outs; } public void setOuts(int outs) { this.outs = outs; } public boolean isHomeTeam() { return homeTeam; } public void setHomeTeam(boolean homeTeam) { this.homeTeam = homeTeam; } public Integer getBalls() { return balls; } public void setBalls(Integer balls) { this.balls = balls; } public Integer getStrikes() { return strikes; } public void setStrikes(Integer strikes) { this.strikes = strikes; } public boolean isSubstitution() { return substitution; } public void setSubstitution(boolean substitution) { this.substitution = substitution; } public boolean isBattedOutOfTurn() { return battedOutOfTurn; } public void setBattedOutOfTurn(boolean battedOutOfTurn) { this.battedOutOfTurn = battedOutOfTurn; } public GamePlayer getPlayer() { return player; } public void setPlayer(GamePlayer player) { this.player = player; } public GamePlayer getBatter() { return batter; } public void setBatter(GamePlayer batter) { this.batter = batter; } public GamePlayer getRunnerAtFirst() { return runnerAtFirst; } public void setRunnerAtFirst(GamePlayer runnerAtFirst) { this.runnerAtFirst = runnerAtFirst; } public GamePlayer getRunnerAtSecond() { return runnerAtSecond; } public void setRunnerAtSecond(GamePlayer runnerAtSecond) { this.runnerAtSecond = runnerAtSecond; } public GamePlayer getRunnerAtThird() { return runnerAtThird; } public void setRunnerAtThird(GamePlayer runnerAtThird) { this.runnerAtThird = runnerAtThird; } public GamePlayer getPitcher() { return pitcher; } public void setPitcher(GamePlayer pitcher) { this.pitcher = pitcher; } public HandPreference getBatterHandAdjustment() { return batterHandAdjustment; } public void setBatterHandAdjustment(HandPreference batterHandAdjustment) { this.batterHandAdjustment = batterHandAdjustment; } public HandPreference getPitcherHandAdjustment() { return pitcherHandAdjustment; } public void setPitcherHandAdjustment(HandPreference pitcherHandAdjustment) { this.pitcherHandAdjustment = pitcherHandAdjustment; } public List<AtBatEvent> getAtBatEvents() { return atBatEvents; } public void setAtBatEvents(List<AtBatEvent> atBatEvents) { this.atBatEvents = atBatEvents; } public PlayEvent getEvent() { return event; } public void setEvent(PlayEvent event) { this.event = event; } public Game getGame() { return game; } public void setGame(Game game) { this.game = game; } public List<PlayRunnerAdvancement> getAdvancements() { return advancements; } public void setAdvancements(List<PlayRunnerAdvancement> advancements) { this.advancements = advancements; } public List<Pitch> getPitches() { return pitches; } public void setPitches(List<Pitch> pitches) { this.pitches = pitches; } public List<String> getComments() { return comments; } public void setComments(List<String> comments) { this.comments = comments; } }