/*
* 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 javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Embedded;
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.ManyToOne;
import org.statmantis.annotation.XmlInternalProperty;
/**
* Representation of a basaeball transaction
*
* @author Chad Retz
*/
public class Transaction {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "TransactionId", unique = true, nullable = false)
private long transactionId;
@Column(name = "RetroId", unique = true, nullable = false)
private String retroId;
@Embedded
private ApproximateDate date;
@Enumerated(EnumType.STRING)
@Column(name = "Time", length = TransactionTime.MAX_LENGTH)
private TransactionTime time;
@Column(name = "Approximate", nullable = false)
private boolean approximate;
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "year", column =
@Column(name = "SecondaryYear", length = 4)),
@AttributeOverride(name = "month", column =
@Column(name = "SecondaryMonth", length = 2)),
@AttributeOverride(name = "day", column =
@Column(name = "SecondaryDay", length = 2))
})
private ApproximateDate secondaryDate;
@XmlInternalProperty("personId")
@ManyToOne
@JoinColumn(name = "PersonId")
private Person person;
@Column(name = "UnknownFirstName", length = 100)
private String unknownFirstName;
@Column(name = "UnknownLastName", length = 100)
private String unknownLastName;
@Enumerated(EnumType.STRING)
@Column(name = "Type", nullable = false, length = TransactionType.MAX_LENGTH)
private TransactionType type;
@XmlInternalProperty("teamId")
@ManyToOne
@JoinColumn(name = "FromTeamId")
private Team fromTeam;
@ManyToOne
@JoinColumn(name = "FromLeagueId")
private League fromLeague;
@XmlInternalProperty("teamId")
@ManyToOne
@JoinColumn(name = "ToTeamId")
private Team toTeam;
@ManyToOne
@JoinColumn(name = "ToLeagueId")
private League toLeague;
@Enumerated(EnumType.STRING)
@Column(name = "DraftType", length = DraftType.MAX_LENGTH)
private DraftType draftType;
@Column(name = "DraftRound")
private Integer draftRound;
@Column(name = "Amount")
private Float amount;
@Column(name = "Info", length = 400)
private String info;
public long getTransactionId() {
return transactionId;
}
public void setTransactionId(long transactionId) {
this.transactionId = transactionId;
}
public String getRetroId() {
return retroId;
}
public void setRetroId(String retroId) {
this.retroId = retroId;
}
public ApproximateDate getDate() {
return date;
}
public void setDate(ApproximateDate date) {
this.date = date;
}
public TransactionTime getTime() {
return time;
}
public void setTime(TransactionTime time) {
this.time = time;
}
public boolean isApproximate() {
return approximate;
}
public void setApproximate(boolean approximate) {
this.approximate = approximate;
}
public ApproximateDate getSecondaryDate() {
return secondaryDate;
}
public void setSecondaryDate(ApproximateDate secondaryDate) {
this.secondaryDate = secondaryDate;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public String getUnknownFirstName() {
return unknownFirstName;
}
public void setUnknownFirstName(String unknownFirstName) {
this.unknownFirstName = unknownFirstName;
}
public String getUnknownLastName() {
return unknownLastName;
}
public void setUnknownLastName(String unknownLastName) {
this.unknownLastName = unknownLastName;
}
public TransactionType getType() {
return type;
}
public void setType(TransactionType type) {
this.type = type;
}
public Team getFromTeam() {
return fromTeam;
}
public void setFromTeam(Team fromTeam) {
this.fromTeam = fromTeam;
}
public League getFromLeague() {
return fromLeague;
}
public void setFromLeague(League fromLeague) {
this.fromLeague = fromLeague;
}
public Team getToTeam() {
return toTeam;
}
public void setToTeam(Team toTeam) {
this.toTeam = toTeam;
}
public League getToLeague() {
return toLeague;
}
public void setToLeague(League toLeague) {
this.toLeague = toLeague;
}
public DraftType getDraftType() {
return draftType;
}
public void setDraftType(DraftType draftType) {
this.draftType = draftType;
}
public Integer getDraftRound() {
return draftRound;
}
public void setDraftRound(Integer draftRound) {
this.draftRound = draftRound;
}
public Float getAmount() {
return amount;
}
public void setAmount(Float amount) {
this.amount = amount;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}