diff --git a/.gitignore b/.gitignore
index fe558a3..a7a1fb9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@
/Database-Storage/target/
/TrueSkill/target/
/TournamentManagerWeb/target/
-/MTG/target/
\ No newline at end of file
+/MTG/target/
+/target/
\ No newline at end of file
diff --git a/Database-Storage/DB.mwb b/Database-Storage/DB.mwb
index 9371af1..bcde4d1 100644
Binary files a/Database-Storage/DB.mwb and b/Database-Storage/DB.mwb differ
diff --git a/Database-Storage/DB.mwb.bak b/Database-Storage/DB.mwb.bak
index 3817b03..2f912df 100644
Binary files a/Database-Storage/DB.mwb.bak and b/Database-Storage/DB.mwb.bak differ
diff --git a/Database-Storage/pom.xml b/Database-Storage/pom.xml
index 4c6dede..89b722a 100644
--- a/Database-Storage/pom.xml
+++ b/Database-Storage/pom.xml
@@ -57,5 +57,11 @@
2.3.1
jar
+
+ org.hamcrest
+ hamcrest-all
+ 1.3
+ test
+
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Format.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Format.java
index 2ad3499..1bb3e69 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Format.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Format.java
@@ -44,7 +44,9 @@ public class Format implements Serializable
@Size(max = 255)
@Column(name = "description")
private String description;
- private static final long serialVersionUID = 1L;
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "format")
+ private List teamHasFormatRecordList;
+ private static final long serialVersionUID = -6764484082819653225L;
@EmbeddedId
protected FormatPK formatPK;
@JoinColumn(name = "game_id", referencedColumnName = "id", insertable = false,
@@ -53,6 +55,8 @@ public class Format implements Serializable
private Game game;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "format")
private List matchEntryList;
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "format")
+ private List tournamentList;
public Format()
{
@@ -105,6 +109,17 @@ public void setMatchEntryList(List matchEntryList)
this.matchEntryList = matchEntryList;
}
+ @XmlTransient
+ public List getTournamentList()
+ {
+ return tournamentList;
+ }
+
+ public void setTournamentList(List tournamentList)
+ {
+ this.tournamentList = tournamentList;
+ }
+
@Override
public int hashCode()
{
@@ -129,8 +144,40 @@ public boolean equals(Object object)
@Override
public String toString()
{
- return "com.github.javydreamercsw.database.storage.db.Format[ formatPK=" +
- formatPK + " ]";
+ return "com.github.javydreamercsw.database.storage.db.Format[ formatPK="
+ + formatPK + " ]";
+ }
+
+
+ @XmlTransient
+ public List getTeamHasFormatRecordList()
+ {
+ return teamHasFormatRecordList;
+ }
+
+ public void setTeamHasFormatRecordList(List teamHasFormatRecordList)
+ {
+ this.teamHasFormatRecordList = teamHasFormatRecordList;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public void setDescription(String description)
+ {
+ this.description = description;
}
public String getName()
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Game.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Game.java
index 451340a..932be39 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Game.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Game.java
@@ -35,6 +35,14 @@
})
public class Game implements Serializable
{
+ @Basic(optional = false)
+ @NotNull
+ @Size(min = 1, max = 45)
+ @Column(name = "name")
+ private String name;
+ @Size(max = 255)
+ @Column(name = "description")
+ private String description;
private static final long serialVersionUID = -6267533299417173163L;
@Id
@Basic(optional = false)
@@ -48,14 +56,6 @@ public class Game implements Serializable
initialValue = 1)
@Column(name = "id")
private Integer id;
- @Basic(optional = false)
- @NotNull
- @Size(min = 1, max = 45)
- @Column(name = "name")
- private String name;
- @Size(max = 255)
- @Column(name = "description")
- private String description;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "game")
private List formatList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "game")
@@ -80,25 +80,6 @@ public void setId(Integer id)
this.id = id;
}
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public void setDescription(String description)
- {
- this.description = description;
- }
@XmlTransient
public List getFormatList()
@@ -148,4 +129,24 @@ public void setRecordList(List recordList)
{
this.recordList = recordList;
}
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public void setDescription(String description)
+ {
+ this.description = description;
+ }
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/MatchResult.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/MatchResult.java
index c9b5640..155b22e 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/MatchResult.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/MatchResult.java
@@ -128,23 +128,23 @@ public String toString()
+ matchResultPK + " ]";
}
- public boolean getLocked()
+ public boolean getRanked()
{
- return locked;
+ return ranked;
}
- public void setLocked(boolean locked)
+ public void setRanked(boolean ranked)
{
- this.locked = locked;
+ this.ranked = ranked;
}
- public boolean getRanked()
+ public boolean getLocked()
{
- return ranked;
+ return locked;
}
- public void setRanked(boolean ranked)
+ public void setLocked(boolean locked)
{
- this.ranked = ranked;
+ this.locked = locked;
}
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Record.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Record.java
index fb4bc98..9fab6b5 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Record.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Record.java
@@ -38,6 +38,9 @@
})
public class Record implements Serializable
{
+ private static final long serialVersionUID = -893880954416960217L;
+ @EmbeddedId
+ protected RecordPK recordPK;
@Basic(optional = false)
@NotNull
@Column(name = "wins")
@@ -65,9 +68,6 @@ public class Record implements Serializable
})
@ManyToMany
private List tournamentHasTeamList;
- private static final long serialVersionUID = 1L;
- @EmbeddedId
- protected RecordPK recordPK;
@JoinColumn(name = "game_id", referencedColumnName = "id", insertable = false,
updatable = false)
@ManyToOne(optional = false)
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Round.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Round.java
index 0e2f45b..8cc0092 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Round.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Round.java
@@ -4,15 +4,19 @@
import java.util.ArrayList;
import java.util.List;
+import javax.persistence.Basic;
import javax.persistence.CascadeType;
+import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
+import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
@@ -33,12 +37,22 @@ public class Round implements Serializable
private static final long serialVersionUID = 1L;
@EmbeddedId
protected RoundPK roundPK;
- @JoinColumn(name = "tournament_id", referencedColumnName = "id",
- insertable = false, updatable = false)
+ @JoinColumns(
+ {
+ @JoinColumn(name = "tournament_id", referencedColumnName = "id",
+ insertable = false, updatable = false),
+ @JoinColumn(name = "tournament_tournament_format_id",
+ referencedColumnName = "tournament_format_id",
+ insertable = false, updatable = false)
+ })
@ManyToOne(optional = false)
private Tournament tournament;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "round")
private List matchEntryList;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "roundNumber")
+ private int roundNumber;
public Round()
{
@@ -103,7 +117,7 @@ public boolean equals(Object object)
return false;
}
Round other = (Round) object;
- return !((this.roundPK == null && other.roundPK != null)
+ return !((this.roundPK == null && other.roundPK != null)
|| (this.roundPK != null && !this.roundPK.equals(other.roundPK)));
}
@@ -113,4 +127,14 @@ public String toString()
return "com.github.javydreamercsw.database.storage.db.Round[ roundPK="
+ roundPK + " ]";
}
+
+ public int getRoundNumber()
+ {
+ return roundNumber;
+ }
+
+ public void setRoundNumber(int roundNumber)
+ {
+ this.roundNumber = roundNumber;
+ }
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Team.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Team.java
index bab914a..b85de55 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Team.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Team.java
@@ -37,6 +37,8 @@ public class Team implements Serializable
@Size(max = 245)
@Column(name = "name")
private String name;
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "team")
+ private List teamHasFormatRecordList;
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@@ -61,6 +63,7 @@ public Team()
matchHasTeamList = new ArrayList<>();
playerList = new ArrayList<>();
tournamentHasTeamList = new ArrayList<>();
+ teamHasFormatRecordList = new ArrayList<>();
}
public Team(String name)
@@ -79,7 +82,6 @@ public void setId(Integer id)
this.id = id;
}
-
@XmlTransient
public List getPlayerList()
{
@@ -140,6 +142,17 @@ public String toString()
return "com.github.javydreamercsw.database.storage.db.Team[ id=" + id + " ]";
}
+ @XmlTransient
+ public List getTeamHasFormatRecordList()
+ {
+ return teamHasFormatRecordList;
+ }
+
+ public void setTeamHasFormatRecordList(List teamHasFormatRecordList)
+ {
+ this.teamHasFormatRecordList = teamHasFormatRecordList;
+ }
+
public String getName()
{
return name;
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TeamHasFormatRecord.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TeamHasFormatRecord.java
new file mode 100644
index 0000000..ac9dd03
--- /dev/null
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TeamHasFormatRecord.java
@@ -0,0 +1,178 @@
+package com.github.javydreamercsw.database.storage.db;
+
+import java.io.Serializable;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.validation.constraints.NotNull;
+import javax.xml.bind.annotation.XmlRootElement;
+
+@Entity
+@Table(name = "team_has_format_record")
+@XmlRootElement
+@NamedQueries(
+ {
+ @NamedQuery(name = "TeamHasFormatRecord.findAll",
+ query = "SELECT t FROM TeamHasFormatRecord t"),
+ @NamedQuery(name = "TeamHasFormatRecord.findByTeamId",
+ query = "SELECT t FROM TeamHasFormatRecord t WHERE t.teamHasFormatRecordPK.teamId = :teamId"),
+ @NamedQuery(name = "TeamHasFormatRecord.findByFormatId",
+ query = "SELECT t FROM TeamHasFormatRecord t WHERE t.teamHasFormatRecordPK.formatId = :formatId"),
+ @NamedQuery(name = "TeamHasFormatRecord.findByFormatGameId",
+ query = "SELECT t FROM TeamHasFormatRecord t WHERE t.teamHasFormatRecordPK.formatGameId = :formatGameId"),
+ @NamedQuery(name = "TeamHasFormatRecord.findByMean",
+ query = "SELECT t FROM TeamHasFormatRecord t WHERE t.mean = :mean"),
+ @NamedQuery(name = "TeamHasFormatRecord.findByStandardDeviation",
+ query = "SELECT t FROM TeamHasFormatRecord t WHERE t.standardDeviation = :standardDeviation")
+ })
+public class TeamHasFormatRecord implements Serializable
+{
+ private static final long serialVersionUID = 1517758449111184848L;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "mean")
+ private double mean;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "standard_deviation")
+ private double standardDeviation;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "points")
+ private int points;
+ @EmbeddedId
+ protected TeamHasFormatRecordPK teamHasFormatRecordPK;
+ @JoinColumns(
+ {
+ @JoinColumn(name = "format_id", referencedColumnName = "id",
+ insertable = false, updatable = false),
+ @JoinColumn(name = "format_game_id", referencedColumnName = "game_id",
+ insertable = false, updatable = false)
+ })
+ @ManyToOne(optional = false)
+ private Format format;
+ @JoinColumn(name = "team_id", referencedColumnName = "id",
+ insertable = false, updatable = false)
+ @ManyToOne(optional = false)
+ private Team team;
+
+ public TeamHasFormatRecord()
+ {
+ }
+
+ public TeamHasFormatRecord(TeamHasFormatRecordPK teamHasFormatRecordPK)
+ {
+ this.teamHasFormatRecordPK = teamHasFormatRecordPK;
+ }
+
+ public TeamHasFormatRecord(TeamHasFormatRecordPK teamHasFormatRecordPK,
+ double mean, double standardDeviation)
+ {
+ this.teamHasFormatRecordPK = teamHasFormatRecordPK;
+ this.mean = mean;
+ this.standardDeviation = standardDeviation;
+ }
+
+ public TeamHasFormatRecord(int teamId, int formatId, int formatGameId)
+ {
+ this.teamHasFormatRecordPK = new TeamHasFormatRecordPK(teamId, formatId, formatGameId);
+ }
+
+ public TeamHasFormatRecordPK getTeamHasFormatRecordPK()
+ {
+ return teamHasFormatRecordPK;
+ }
+
+ public void setTeamHasFormatRecordPK(TeamHasFormatRecordPK teamHasFormatRecordPK)
+ {
+ this.teamHasFormatRecordPK = teamHasFormatRecordPK;
+ }
+
+ public Format getFormat()
+ {
+ return format;
+ }
+
+ public void setFormat(Format format)
+ {
+ this.format = format;
+ }
+
+ public Team getTeam()
+ {
+ return team;
+ }
+
+ public void setTeam(Team team)
+ {
+ this.team = team;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 0;
+ hash += (teamHasFormatRecordPK != null ? teamHasFormatRecordPK.hashCode() : 0);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object object)
+ {
+ // TODO: Warning - this method won't work in the case the id fields are not set
+ if (!(object instanceof TeamHasFormatRecord))
+ {
+ return false;
+ }
+ TeamHasFormatRecord other = (TeamHasFormatRecord) object;
+ return !((this.teamHasFormatRecordPK == null
+ && other.teamHasFormatRecordPK != null)
+ || (this.teamHasFormatRecordPK != null
+ && !this.teamHasFormatRecordPK.equals(other.teamHasFormatRecordPK)));
+ }
+
+ @Override
+ public String toString()
+ {
+ return "Points: " + getPoints() + "\nMean: " + getMean() + "\nSD: "
+ + getStandardDeviation();
+ }
+
+ public double getMean()
+ {
+ return mean;
+ }
+
+ public void setMean(double mean)
+ {
+ this.mean = mean;
+ }
+
+ public double getStandardDeviation()
+ {
+ return standardDeviation;
+ }
+
+ public void setStandardDeviation(double standardDeviation)
+ {
+ this.standardDeviation = standardDeviation;
+ }
+
+ public int getPoints()
+ {
+ return points;
+ }
+
+ public void setPoints(int points)
+ {
+ this.points = points;
+ }
+}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TeamHasFormatRecordPK.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TeamHasFormatRecordPK.java
new file mode 100644
index 0000000..31e38a9
--- /dev/null
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TeamHasFormatRecordPK.java
@@ -0,0 +1,112 @@
+package com.github.javydreamercsw.database.storage.db;
+
+import java.io.Serializable;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * @author Javier Ortiz Bultron
+ */
+@Embeddable
+public class TeamHasFormatRecordPK implements Serializable
+{
+ private static final long serialVersionUID = 11371362902792432L;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "team_id")
+ private int teamId;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "format_id")
+ private int formatId;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "format_game_id")
+ private int formatGameId;
+
+ public TeamHasFormatRecordPK()
+ {
+ }
+
+ public TeamHasFormatRecordPK(int teamId, int formatId, int formatGameId)
+ {
+ this.teamId = teamId;
+ this.formatId = formatId;
+ this.formatGameId = formatGameId;
+ }
+
+ public int getTeamId()
+ {
+ return teamId;
+ }
+
+ public void setTeamId(int teamId)
+ {
+ this.teamId = teamId;
+ }
+
+ public int getFormatId()
+ {
+ return formatId;
+ }
+
+ public void setFormatId(int formatId)
+ {
+ this.formatId = formatId;
+ }
+
+ public int getFormatGameId()
+ {
+ return formatGameId;
+ }
+
+ public void setFormatGameId(int formatGameId)
+ {
+ this.formatGameId = formatGameId;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 0;
+ hash += (int) teamId;
+ hash += (int) formatId;
+ hash += (int) formatGameId;
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object object)
+ {
+ // TODO: Warning - this method won't work in the case the id fields are not set
+ if (!(object instanceof TeamHasFormatRecordPK))
+ {
+ return false;
+ }
+ TeamHasFormatRecordPK other = (TeamHasFormatRecordPK) object;
+ if (this.teamId != other.teamId)
+ {
+ return false;
+ }
+ if (this.formatId != other.formatId)
+ {
+ return false;
+ }
+ if (this.formatGameId != other.formatGameId)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "com.github.javydreamercsw.database.storage.db.TeamHasFormatRecordPK[ teamId=" + teamId + ", formatId=" + formatId + ", formatGameId=" + formatGameId + " ]";
+ }
+
+}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Tournament.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Tournament.java
index 915de45..9c5cc97 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Tournament.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/Tournament.java
@@ -1,21 +1,22 @@
package com.github.javydreamercsw.database.storage.db;
import java.io.Serializable;
+import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
-import javax.persistence.TableGenerator;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
@@ -25,19 +26,34 @@
@Table(name = "tournament")
@XmlRootElement
@NamedQueries(
- {
- @NamedQuery(name = "Tournament.findAll", query = "SELECT t FROM Tournament t"),
- @NamedQuery(name = "Tournament.findById",
- query = "SELECT t FROM Tournament t WHERE t.id = :id"),
- @NamedQuery(name = "Tournament.findByName",
- query = "SELECT t FROM Tournament t WHERE t.name = :name"),
- @NamedQuery(name = "Tournament.findByWinPoints",
- query = "SELECT t FROM Tournament t WHERE t.winPoints = :winPoints"),
- @NamedQuery(name = "Tournament.findByDrawPoints",
- query = "SELECT t FROM Tournament t WHERE t.drawPoints = :drawPoints"),
- @NamedQuery(name = "Tournament.findByLossPoints",
- query = "SELECT t FROM Tournament t WHERE t.lossPoints = :lossPoints")
- })
+{
+ @NamedQuery(name = "Tournament.findAll",
+ query = "SELECT t FROM Tournament t"),
+ @NamedQuery(name = "Tournament.findById",
+ query = "SELECT t FROM Tournament t WHERE t.tournamentPK.id = :id"),
+ @NamedQuery(name = "Tournament.findByTournamentFormatId",
+ query = "SELECT t FROM Tournament t WHERE t.tournamentPK.tournamentFormatId = :tournamentFormatId"),
+ @NamedQuery(name = "Tournament.findByName",
+ query = "SELECT t FROM Tournament t WHERE t.name = :name"),
+ @NamedQuery(name = "Tournament.findByWinPoints",
+ query = "SELECT t FROM Tournament t WHERE t.winPoints = :winPoints"),
+ @NamedQuery(name = "Tournament.findByDrawPoints",
+ query = "SELECT t FROM Tournament t WHERE t.drawPoints = :drawPoints"),
+ @NamedQuery(name = "Tournament.findByLossPoints",
+ query = "SELECT t FROM Tournament t WHERE t.lossPoints = :lossPoints"),
+ @NamedQuery(name = "Tournament.findByStartDate",
+ query = "SELECT t FROM Tournament t WHERE t.startDate = :startDate"),
+ @NamedQuery(name = "Tournament.findByEndDate",
+ query = "SELECT t FROM Tournament t WHERE t.endDate = :endDate"),
+ @NamedQuery(name = "Tournament.findBySignupDate",
+ query = "SELECT t FROM Tournament t WHERE t.signupDate = :signupDate"),
+ @NamedQuery(name = "Tournament.findBySignupTimeLimit",
+ query = "SELECT t FROM Tournament t WHERE t.signupTimeLimit = :signupTimeLimit"),
+ @NamedQuery(name = "Tournament.findByRoundTimeLimit",
+ query = "SELECT t FROM Tournament t WHERE t.roundTimeLimit = :roundTimeLimit"),
+ @NamedQuery(name = "Tournament.findByNoShowTimeLimit",
+ query = "SELECT t FROM Tournament t WHERE t.noShowTimeLimit = :noShowTimeLimit")
+})
public class Tournament implements Serializable
{
@Basic(optional = false)
@@ -57,22 +73,46 @@ public class Tournament implements Serializable
@NotNull
@Column(name = "lossPoints")
private int lossPoints;
- private static final long serialVersionUID = 1L;
- @Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "TournamentGen")
- @TableGenerator(name = "TournamentGen", table = "tm_id",
- pkColumnName = "table_name",
- valueColumnName = "last_id",
- pkColumnValue = "tournament",
- allocationSize = 1,
- initialValue = 1)
@Basic(optional = false)
- @Column(name = "id")
- private Integer id;
- @OneToMany(cascade = CascadeType.ALL, mappedBy = "tournament")
- private List roundList;
+ @NotNull
+ @Column(name = "startDate")
+ private LocalDateTime startDate;
+ @Column(name = "endDate")
+ private LocalDateTime endDate;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "signupDate")
+ private LocalDateTime signupDate;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "signupTimeLimit")
+ private int signupTimeLimit;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "roundTimeLimit")
+ private int roundTimeLimit;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "noShowTimeLimit")
+ private int noShowTimeLimit;
+ private static final long serialVersionUID = -6583090940281361773L;
+ @EmbeddedId
+ protected TournamentPK tournamentPK;
+ @JoinColumns(
+ {
+ @JoinColumn(name = "format_id", referencedColumnName = "id"),
+ @JoinColumn(name = "format_game_id", referencedColumnName = "game_id")
+ })
+ @ManyToOne(optional = false)
+ private Format format;
+ @JoinColumn(name = "tournament_format_id", referencedColumnName = "id",
+ insertable = false, updatable = false)
+ @ManyToOne(optional = false)
+ private TournamentFormat tournamentFormat;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "tournament")
private List tournamentHasTeamList;
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "tournament")
+ private List roundList;
public Tournament()
{
@@ -94,26 +134,39 @@ public Tournament(String name, int winPoints, int drawPoints, int lossPoints)
tournamentHasTeamList = new ArrayList<>();
}
- public Integer getId()
+ public Tournament(int tournamentFormatId)
{
- return id;
+ this.tournamentPK = new TournamentPK(tournamentFormatId);
}
- public void setId(Integer id)
+ public TournamentPK getTournamentPK()
{
- this.id = id;
+ return tournamentPK;
}
+ public void setTournamentPK(TournamentPK tournamentPK)
+ {
+ this.tournamentPK = tournamentPK;
+ }
- @XmlTransient
- public List getRoundList()
+ public Format getFormat()
{
- return roundList;
+ return format;
}
- public void setRoundList(List roundList)
+ public void setFormat(Format format)
{
- this.roundList = roundList;
+ this.format = format;
+ }
+
+ public TournamentFormat getTournamentFormat()
+ {
+ return tournamentFormat;
+ }
+
+ public void setTournamentFormat(TournamentFormat tournamentFormat)
+ {
+ this.tournamentFormat = tournamentFormat;
}
@XmlTransient
@@ -127,11 +180,22 @@ public void setTournamentHasTeamList(List tournamentHasTeamLi
this.tournamentHasTeamList = tournamentHasTeamList;
}
+ @XmlTransient
+ public List getRoundList()
+ {
+ return roundList;
+ }
+
+ public void setRoundList(List roundList)
+ {
+ this.roundList = roundList;
+ }
+
@Override
public int hashCode()
{
int hash = 0;
- hash += (id != null ? id.hashCode() : 0);
+ hash += (tournamentPK != null ? tournamentPK.hashCode() : 0);
return hash;
}
@@ -144,15 +208,77 @@ public boolean equals(Object object)
return false;
}
Tournament other = (Tournament) object;
- return !((this.id == null && other.id != null)
- || (this.id != null && !this.id.equals(other.id)));
+ return !((this.tournamentPK == null && other.tournamentPK != null)
+ || (this.tournamentPK != null
+ && !this.tournamentPK.equals(other.tournamentPK)));
}
@Override
public String toString()
{
- return "com.github.javydreamercsw.database.storage.db.Tournament[ id="
- + id + " ]";
+ return "com.github.javydreamercsw.database.storage.db.Tournament[ tournamentPK="
+ + tournamentPK + " ]";
+ }
+
+
+ public LocalDateTime getStartDate()
+ {
+ return startDate;
+ }
+
+ public void setStartDate(LocalDateTime startDate)
+ {
+ this.startDate = startDate;
+ }
+
+ public LocalDateTime getEndDate()
+ {
+ return endDate;
+ }
+
+ public void setEndDate(LocalDateTime endDate)
+ {
+ this.endDate = endDate;
+ }
+
+ public LocalDateTime getSignupDate()
+ {
+ return signupDate;
+ }
+
+ public void setSignupDate(LocalDateTime signupDate)
+ {
+ this.signupDate = signupDate;
+ }
+
+ public int getSignupTimeLimit()
+ {
+ return signupTimeLimit;
+ }
+
+ public void setSignupTimeLimit(int signupTimeLimit)
+ {
+ this.signupTimeLimit = signupTimeLimit;
+ }
+
+ public int getRoundTimeLimit()
+ {
+ return roundTimeLimit;
+ }
+
+ public void setRoundTimeLimit(int roundTimeLimit)
+ {
+ this.roundTimeLimit = roundTimeLimit;
+ }
+
+ public int getNoShowTimeLimit()
+ {
+ return noShowTimeLimit;
+ }
+
+ public void setNoShowTimeLimit(int noShowTimeLimit)
+ {
+ this.noShowTimeLimit = noShowTimeLimit;
}
public String getName()
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentFormat.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentFormat.java
new file mode 100644
index 0000000..c436c3f
--- /dev/null
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentFormat.java
@@ -0,0 +1,144 @@
+package com.github.javydreamercsw.database.storage.db;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+import javax.persistence.TableGenerator;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+@Entity
+@Table(name = "tournament_format")
+@XmlRootElement
+@NamedQueries(
+{
+ @NamedQuery(name = "TournamentFormat.findAll",
+ query = "SELECT t FROM TournamentFormat t"),
+ @NamedQuery(name = "TournamentFormat.findById",
+ query = "SELECT t FROM TournamentFormat t WHERE t.id = :id"),
+ @NamedQuery(name = "TournamentFormat.findByFormatName",
+ query = "SELECT t FROM TournamentFormat t WHERE t.formatName = :formatName"),
+ @NamedQuery(name = "TournamentFormat.findByImplementationClass",
+ query = "SELECT t FROM TournamentFormat t WHERE t.implementationClass = :implementationClass")
+})
+public class TournamentFormat implements Serializable
+{
+ @Basic(optional = false)
+ @NotNull
+ @Size(min = 1, max = 45)
+ @Column(name = "format_name")
+ private String formatName;
+ @Basic(optional = false)
+ @NotNull
+ @Size(min = 1, max = 255)
+ @Column(name = "implementation_class")
+ private String implementationClass;
+ private static final long serialVersionUID = 1L;
+ @Id
+ @Basic(optional = false)
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "TournamentFormatGen")
+ @TableGenerator(name = "TournamentFormatGen", table = "tm_id",
+ pkColumnName = "table_name",
+ valueColumnName = "last_id",
+ pkColumnValue = "tournament_format",
+ allocationSize = 1,
+ initialValue = 1)
+ private Integer id;
+ @OneToMany(cascade = CascadeType.ALL, mappedBy = "tournamentFormat")
+ private List tournamentList;
+
+ public TournamentFormat()
+ {
+ tournamentList = new ArrayList<>();
+ }
+
+ public TournamentFormat(String formatName, String implementationClass)
+ {
+ this();
+ this.formatName = formatName;
+ this.implementationClass = implementationClass;
+ }
+
+ public Integer getId()
+ {
+ return id;
+ }
+
+ public void setId(Integer id)
+ {
+ this.id = id;
+ }
+
+ public String getFormatName()
+ {
+ return formatName;
+ }
+
+ public void setFormatName(String formatName)
+ {
+ this.formatName = formatName;
+ }
+
+ public String getImplementationClass()
+ {
+ return implementationClass;
+ }
+
+ public void setImplementationClass(String implementationClass)
+ {
+ this.implementationClass = implementationClass;
+ }
+
+ @XmlTransient
+ public List getTournamentList()
+ {
+ return tournamentList;
+ }
+
+ public void setTournamentList(List tournamentList)
+ {
+ this.tournamentList = tournamentList;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 0;
+ hash += (id != null ? id.hashCode() : 0);
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object object)
+ {
+ // TODO: Warning - this method won't work in the case the id fields are not set
+ if (!(object instanceof TournamentFormat))
+ {
+ return false;
+ }
+ TournamentFormat other = (TournamentFormat) object;
+ return !((this.id == null && other.id != null)
+ || (this.id != null && !this.id.equals(other.id)));
+ }
+
+ @Override
+ public String toString()
+ {
+ return "com.github.javydreamercsw.database.storage.db.TournamentFormat[ id=" + id + " ]";
+ }
+}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentHasTeam.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentHasTeam.java
index b03dc9c..5443661 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentHasTeam.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentHasTeam.java
@@ -6,6 +6,7 @@
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
@@ -19,7 +20,8 @@
@XmlRootElement
@NamedQueries(
{
- @NamedQuery(name = "TournamentHasTeam.findAll", query = "SELECT t FROM TournamentHasTeam t"),
+ @NamedQuery(name = "TournamentHasTeam.findAll",
+ query = "SELECT t FROM TournamentHasTeam t"),
@NamedQuery(name = "TournamentHasTeam.findByTournamentId",
query = "SELECT t FROM TournamentHasTeam t WHERE t.tournamentHasTeamPK.tournamentId = :tournamentId"),
@NamedQuery(name = "TournamentHasTeam.findByTeamId",
@@ -36,8 +38,14 @@ public class TournamentHasTeam implements Serializable
updatable = false)
@ManyToOne(optional = false)
private Team team;
- @JoinColumn(name = "tournament_id", referencedColumnName = "id",
- insertable = false, updatable = false)
+ @JoinColumns(
+ {
+ @JoinColumn(name = "tournament_id", referencedColumnName = "id",
+ insertable = false, updatable = false),
+ @JoinColumn(name = "tournament_tournament_format_id",
+ referencedColumnName = "tournament_format_id",
+ insertable = false, updatable = false)
+ })
@ManyToOne(optional = false)
private Tournament tournament;
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentPK.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentPK.java
new file mode 100644
index 0000000..67df055
--- /dev/null
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/TournamentPK.java
@@ -0,0 +1,93 @@
+package com.github.javydreamercsw.database.storage.db;
+
+import java.io.Serializable;
+
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.TableGenerator;
+import javax.validation.constraints.NotNull;
+
+@Embeddable
+public class TournamentPK implements Serializable
+{
+ private static final long serialVersionUID = -5852922586504031795L;
+ @Basic(optional = false)
+ @Column(name = "id")
+ @GeneratedValue(strategy = GenerationType.TABLE, generator = "TournamentGen")
+ @TableGenerator(name = "TournamentGen", table = "tm_id",
+ pkColumnName = "table_name",
+ valueColumnName = "last_id",
+ pkColumnValue = "tournament",
+ allocationSize = 1,
+ initialValue = 1)
+ private int id;
+ @Basic(optional = false)
+ @NotNull
+ @Column(name = "tournament_format_id")
+ private int tournamentFormatId;
+
+ public TournamentPK()
+ {
+
+ }
+
+ public TournamentPK(int tournamentFormatId)
+ {
+ this.tournamentFormatId = tournamentFormatId;
+ }
+
+ public int getId()
+ {
+ return id;
+ }
+
+ public void setId(int id)
+ {
+ this.id = id;
+ }
+
+ public int getTournamentFormatId()
+ {
+ return tournamentFormatId;
+ }
+
+ public void setTournamentFormatId(int tournamentFormatId)
+ {
+ this.tournamentFormatId = tournamentFormatId;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ int hash = 0;
+ hash += (int) id;
+ hash += (int) tournamentFormatId;
+ return hash;
+ }
+
+ @Override
+ public boolean equals(Object object)
+ {
+ // TODO: Warning - this method won't work in the case the id fields are not set
+ if (!(object instanceof TournamentPK))
+ {
+ return false;
+ }
+ TournamentPK other = (TournamentPK) object;
+ if (this.id != other.id)
+ {
+ return false;
+ }
+ return this.tournamentFormatId == other.tournamentFormatId;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "com.github.javydreamercsw.database.storage.db.TournamentPK[ id="
+ + id + ", tournamentFormatId=" + tournamentFormatId + " ]";
+ }
+}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/FormatJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/FormatJpaController.java
index 966e3c6..12b8c56 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/FormatJpaController.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/FormatJpaController.java
@@ -15,6 +15,8 @@
import com.github.javydreamercsw.database.storage.db.FormatPK;
import com.github.javydreamercsw.database.storage.db.Game;
import com.github.javydreamercsw.database.storage.db.MatchEntry;
+import com.github.javydreamercsw.database.storage.db.TeamHasFormatRecord;
+import com.github.javydreamercsw.database.storage.db.Tournament;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.IllegalOrphanException;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.NonexistentEntityException;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.PreexistingEntityException;
@@ -38,6 +40,14 @@ public void create(Format format) throws PreexistingEntityException, Exception
{
format.setMatchEntryList(new ArrayList<>());
}
+ if (format.getTournamentList() == null)
+ {
+ format.setTournamentList(new ArrayList<>());
+ }
+ if (format.getTeamHasFormatRecordList() == null)
+ {
+ format.setTeamHasFormatRecordList(new ArrayList<>());
+ }
format.getFormatPK().setGameId(format.getGame().getId());
EntityManager em = null;
try
@@ -57,6 +67,20 @@ public void create(Format format) throws PreexistingEntityException, Exception
attachedMatchEntryList.add(matchEntryListMatchEntryToAttach);
}
format.setMatchEntryList(attachedMatchEntryList);
+ List attachedTournamentList = new ArrayList<>();
+ for (Tournament tournamentListTournamentToAttach : format.getTournamentList())
+ {
+ tournamentListTournamentToAttach = em.getReference(tournamentListTournamentToAttach.getClass(), tournamentListTournamentToAttach.getTournamentPK());
+ attachedTournamentList.add(tournamentListTournamentToAttach);
+ }
+ format.setTournamentList(attachedTournamentList);
+ List attachedTeamHasFormatRecordList = new ArrayList<>();
+ for (TeamHasFormatRecord teamHasFormatRecordListTeamHasFormatRecordToAttach : format.getTeamHasFormatRecordList())
+ {
+ teamHasFormatRecordListTeamHasFormatRecordToAttach = em.getReference(teamHasFormatRecordListTeamHasFormatRecordToAttach.getClass(), teamHasFormatRecordListTeamHasFormatRecordToAttach.getTeamHasFormatRecordPK());
+ attachedTeamHasFormatRecordList.add(teamHasFormatRecordListTeamHasFormatRecordToAttach);
+ }
+ format.setTeamHasFormatRecordList(attachedTeamHasFormatRecordList);
em.persist(format);
if (game != null)
{
@@ -74,6 +98,28 @@ public void create(Format format) throws PreexistingEntityException, Exception
oldFormatOfMatchEntryListMatchEntry = em.merge(oldFormatOfMatchEntryListMatchEntry);
}
}
+ for (Tournament tournamentListTournament : format.getTournamentList())
+ {
+ Format oldFormatOfTournamentListTournament = tournamentListTournament.getFormat();
+ tournamentListTournament.setFormat(format);
+ tournamentListTournament = em.merge(tournamentListTournament);
+ if (oldFormatOfTournamentListTournament != null)
+ {
+ oldFormatOfTournamentListTournament.getTournamentList().remove(tournamentListTournament);
+ oldFormatOfTournamentListTournament = em.merge(oldFormatOfTournamentListTournament);
+ }
+ }
+ for (TeamHasFormatRecord teamHasFormatRecordListTeamHasFormatRecord : format.getTeamHasFormatRecordList())
+ {
+ Format oldFormatOfTeamHasFormatRecordListTeamHasFormatRecord = teamHasFormatRecordListTeamHasFormatRecord.getFormat();
+ teamHasFormatRecordListTeamHasFormatRecord.setFormat(format);
+ teamHasFormatRecordListTeamHasFormatRecord = em.merge(teamHasFormatRecordListTeamHasFormatRecord);
+ if (oldFormatOfTeamHasFormatRecordListTeamHasFormatRecord != null)
+ {
+ oldFormatOfTeamHasFormatRecordListTeamHasFormatRecord.getTeamHasFormatRecordList().remove(teamHasFormatRecordListTeamHasFormatRecord);
+ oldFormatOfTeamHasFormatRecordListTeamHasFormatRecord = em.merge(oldFormatOfTeamHasFormatRecordListTeamHasFormatRecord);
+ }
+ }
em.getTransaction().commit();
}
catch (Exception ex)
@@ -106,6 +152,10 @@ public void edit(Format format) throws IllegalOrphanException, NonexistentEntity
Game gameNew = format.getGame();
List matchEntryListOld = persistentFormat.getMatchEntryList();
List matchEntryListNew = format.getMatchEntryList();
+ List tournamentListOld = persistentFormat.getTournamentList();
+ List tournamentListNew = format.getTournamentList();
+ List teamHasFormatRecordListOld = persistentFormat.getTeamHasFormatRecordList();
+ List teamHasFormatRecordListNew = format.getTeamHasFormatRecordList();
List illegalOrphanMessages = null;
for (MatchEntry matchEntryListOldMatchEntry : matchEntryListOld)
{
@@ -118,6 +168,28 @@ public void edit(Format format) throws IllegalOrphanException, NonexistentEntity
illegalOrphanMessages.add("You must retain MatchEntry " + matchEntryListOldMatchEntry + " since its format field is not nullable.");
}
}
+ for (Tournament tournamentListOldTournament : tournamentListOld)
+ {
+ if (!tournamentListNew.contains(tournamentListOldTournament))
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("You must retain Tournament " + tournamentListOldTournament + " since its format field is not nullable.");
+ }
+ }
+ for (TeamHasFormatRecord teamHasFormatRecordListOldTeamHasFormatRecord : teamHasFormatRecordListOld)
+ {
+ if (!teamHasFormatRecordListNew.contains(teamHasFormatRecordListOldTeamHasFormatRecord))
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("You must retain TeamHasFormatRecord " + teamHasFormatRecordListOldTeamHasFormatRecord + " since its format field is not nullable.");
+ }
+ }
if (illegalOrphanMessages != null)
{
throw new IllegalOrphanException(illegalOrphanMessages);
@@ -135,6 +207,22 @@ public void edit(Format format) throws IllegalOrphanException, NonexistentEntity
}
matchEntryListNew = attachedMatchEntryListNew;
format.setMatchEntryList(matchEntryListNew);
+ List attachedTournamentListNew = new ArrayList<>();
+ for (Tournament tournamentListNewTournamentToAttach : tournamentListNew)
+ {
+ tournamentListNewTournamentToAttach = em.getReference(tournamentListNewTournamentToAttach.getClass(), tournamentListNewTournamentToAttach.getTournamentPK());
+ attachedTournamentListNew.add(tournamentListNewTournamentToAttach);
+ }
+ tournamentListNew = attachedTournamentListNew;
+ format.setTournamentList(tournamentListNew);
+ List attachedTeamHasFormatRecordListNew = new ArrayList<>();
+ for (TeamHasFormatRecord teamHasFormatRecordListNewTeamHasFormatRecordToAttach : teamHasFormatRecordListNew)
+ {
+ teamHasFormatRecordListNewTeamHasFormatRecordToAttach = em.getReference(teamHasFormatRecordListNewTeamHasFormatRecordToAttach.getClass(), teamHasFormatRecordListNewTeamHasFormatRecordToAttach.getTeamHasFormatRecordPK());
+ attachedTeamHasFormatRecordListNew.add(teamHasFormatRecordListNewTeamHasFormatRecordToAttach);
+ }
+ teamHasFormatRecordListNew = attachedTeamHasFormatRecordListNew;
+ format.setTeamHasFormatRecordList(teamHasFormatRecordListNew);
format = em.merge(format);
if (gameOld != null && !gameOld.equals(gameNew))
{
@@ -160,6 +248,34 @@ public void edit(Format format) throws IllegalOrphanException, NonexistentEntity
}
}
}
+ for (Tournament tournamentListNewTournament : tournamentListNew)
+ {
+ if (!tournamentListOld.contains(tournamentListNewTournament))
+ {
+ Format oldFormatOfTournamentListNewTournament = tournamentListNewTournament.getFormat();
+ tournamentListNewTournament.setFormat(format);
+ tournamentListNewTournament = em.merge(tournamentListNewTournament);
+ if (oldFormatOfTournamentListNewTournament != null && !oldFormatOfTournamentListNewTournament.equals(format))
+ {
+ oldFormatOfTournamentListNewTournament.getTournamentList().remove(tournamentListNewTournament);
+ oldFormatOfTournamentListNewTournament = em.merge(oldFormatOfTournamentListNewTournament);
+ }
+ }
+ }
+ for (TeamHasFormatRecord teamHasFormatRecordListNewTeamHasFormatRecord : teamHasFormatRecordListNew)
+ {
+ if (!teamHasFormatRecordListOld.contains(teamHasFormatRecordListNewTeamHasFormatRecord))
+ {
+ Format oldFormatOfTeamHasFormatRecordListNewTeamHasFormatRecord = teamHasFormatRecordListNewTeamHasFormatRecord.getFormat();
+ teamHasFormatRecordListNewTeamHasFormatRecord.setFormat(format);
+ teamHasFormatRecordListNewTeamHasFormatRecord = em.merge(teamHasFormatRecordListNewTeamHasFormatRecord);
+ if (oldFormatOfTeamHasFormatRecordListNewTeamHasFormatRecord != null && !oldFormatOfTeamHasFormatRecordListNewTeamHasFormatRecord.equals(format))
+ {
+ oldFormatOfTeamHasFormatRecordListNewTeamHasFormatRecord.getTeamHasFormatRecordList().remove(teamHasFormatRecordListNewTeamHasFormatRecord);
+ oldFormatOfTeamHasFormatRecordListNewTeamHasFormatRecord = em.merge(oldFormatOfTeamHasFormatRecordListNewTeamHasFormatRecord);
+ }
+ }
+ }
em.getTransaction().commit();
}
catch (Exception ex)
@@ -211,6 +327,24 @@ public void destroy(FormatPK id) throws IllegalOrphanException, NonexistentEntit
}
illegalOrphanMessages.add("This Format (" + format + ") cannot be destroyed since the MatchEntry " + matchEntryListOrphanCheckMatchEntry + " in its matchEntryList field has a non-nullable format field.");
}
+ List tournamentListOrphanCheck = format.getTournamentList();
+ for (Tournament tournamentListOrphanCheckTournament : tournamentListOrphanCheck)
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("This Format (" + format + ") cannot be destroyed since the Tournament " + tournamentListOrphanCheckTournament + " in its tournamentList field has a non-nullable format field.");
+ }
+ List teamHasFormatRecordListOrphanCheck = format.getTeamHasFormatRecordList();
+ for (TeamHasFormatRecord teamHasFormatRecordListOrphanCheckTeamHasFormatRecord : teamHasFormatRecordListOrphanCheck)
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("This Format (" + format + ") cannot be destroyed since the TeamHasFormatRecord " + teamHasFormatRecordListOrphanCheckTeamHasFormatRecord + " in its teamHasFormatRecordList field has a non-nullable format field.");
+ }
if (illegalOrphanMessages != null)
{
throw new IllegalOrphanException(illegalOrphanMessages);
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/RoundJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/RoundJpaController.java
index c58fbc7..0b3ba9c 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/RoundJpaController.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/RoundJpaController.java
@@ -39,7 +39,7 @@ public void create(Round round) throws PreexistingEntityException, Exception
{
round.setMatchEntryList(new ArrayList<>());
}
- round.getRoundPK().setTournamentId(round.getTournament().getId());
+ round.getRoundPK().setTournamentId(round.getTournament().getTournamentPK().getId());
EntityManager em = null;
try
{
@@ -48,7 +48,7 @@ public void create(Round round) throws PreexistingEntityException, Exception
Tournament tournament = round.getTournament();
if (tournament != null)
{
- tournament = em.getReference(tournament.getClass(), tournament.getId());
+ tournament = em.getReference(tournament.getClass(), tournament.getTournamentPK());
round.setTournament(tournament);
}
List attachedMatchEntryList = new ArrayList<>();
@@ -96,7 +96,7 @@ public void create(Round round) throws PreexistingEntityException, Exception
public void edit(Round round) throws IllegalOrphanException, NonexistentEntityException, Exception
{
- round.getRoundPK().setTournamentId(round.getTournament().getId());
+ round.getRoundPK().setTournamentId(round.getTournament().getTournamentPK().getId());
EntityManager em = null;
try
{
@@ -125,7 +125,7 @@ public void edit(Round round) throws IllegalOrphanException, NonexistentEntityEx
}
if (tournamentNew != null)
{
- tournamentNew = em.getReference(tournamentNew.getClass(), tournamentNew.getId());
+ tournamentNew = em.getReference(tournamentNew.getClass(), tournamentNew.getTournamentPK());
round.setTournament(tournamentNew);
}
List attachedMatchEntryListNew = new ArrayList<>();
@@ -294,5 +294,5 @@ public int getRoundCount()
em.close();
}
}
-
+
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamHasFormatRecordJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamHasFormatRecordJpaController.java
new file mode 100644
index 0000000..910eb2a
--- /dev/null
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamHasFormatRecordJpaController.java
@@ -0,0 +1,257 @@
+package com.github.javydreamercsw.database.storage.db.controller;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityNotFoundException;
+import javax.persistence.Query;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Root;
+
+import com.github.javydreamercsw.database.storage.db.Format;
+import com.github.javydreamercsw.database.storage.db.Team;
+import com.github.javydreamercsw.database.storage.db.TeamHasFormatRecord;
+import com.github.javydreamercsw.database.storage.db.TeamHasFormatRecordPK;
+import com.github.javydreamercsw.database.storage.db.controller.exceptions.NonexistentEntityException;
+import com.github.javydreamercsw.database.storage.db.controller.exceptions.PreexistingEntityException;
+import com.github.javydreamercsw.database.storage.db.server.AbstractController;
+
+public class TeamHasFormatRecordJpaController extends AbstractController implements Serializable
+{
+ private static final long serialVersionUID = 2465839189233391174L;
+ public TeamHasFormatRecordJpaController(EntityManagerFactory emf)
+ {
+ super(emf);
+ }
+
+ public void create(TeamHasFormatRecord teamHasFormatRecord) throws PreexistingEntityException, Exception
+ {
+ if (teamHasFormatRecord.getTeamHasFormatRecordPK() == null)
+ {
+ teamHasFormatRecord.setTeamHasFormatRecordPK(new TeamHasFormatRecordPK());
+ }
+ teamHasFormatRecord.getTeamHasFormatRecordPK().setFormatGameId(teamHasFormatRecord.getFormat().getFormatPK().getGameId());
+ teamHasFormatRecord.getTeamHasFormatRecordPK().setFormatId(teamHasFormatRecord.getFormat().getFormatPK().getId());
+ teamHasFormatRecord.getTeamHasFormatRecordPK().setTeamId(teamHasFormatRecord.getTeam().getId());
+ EntityManager em = null;
+ try
+ {
+ em = getEntityManager();
+ em.getTransaction().begin();
+ Format format = teamHasFormatRecord.getFormat();
+ if (format != null)
+ {
+ format = em.getReference(format.getClass(), format.getFormatPK());
+ teamHasFormatRecord.setFormat(format);
+ }
+ Team team = teamHasFormatRecord.getTeam();
+ if (team != null)
+ {
+ team = em.getReference(team.getClass(), team.getId());
+ teamHasFormatRecord.setTeam(team);
+ }
+ em.persist(teamHasFormatRecord);
+ if (format != null)
+ {
+ format.getTeamHasFormatRecordList().add(teamHasFormatRecord);
+ format = em.merge(format);
+ }
+ if (team != null)
+ {
+ team.getTeamHasFormatRecordList().add(teamHasFormatRecord);
+ team = em.merge(team);
+ }
+ em.getTransaction().commit();
+ }
+ catch (Exception ex)
+ {
+ if (findTeamHasFormatRecord(teamHasFormatRecord.getTeamHasFormatRecordPK()) != null)
+ {
+ throw new PreexistingEntityException("TeamHasFormatRecord " + teamHasFormatRecord + " already exists.", ex);
+ }
+ throw ex;
+ }
+ finally
+ {
+ if (em != null)
+ {
+ em.close();
+ }
+ }
+ }
+
+ public void edit(TeamHasFormatRecord teamHasFormatRecord) throws NonexistentEntityException, Exception
+ {
+ teamHasFormatRecord.getTeamHasFormatRecordPK().setFormatGameId(teamHasFormatRecord.getFormat().getFormatPK().getGameId());
+ teamHasFormatRecord.getTeamHasFormatRecordPK().setFormatId(teamHasFormatRecord.getFormat().getFormatPK().getId());
+ teamHasFormatRecord.getTeamHasFormatRecordPK().setTeamId(teamHasFormatRecord.getTeam().getId());
+ EntityManager em = null;
+ try
+ {
+ em = getEntityManager();
+ em.getTransaction().begin();
+ TeamHasFormatRecord persistentTeamHasFormatRecord = em.find(TeamHasFormatRecord.class, teamHasFormatRecord.getTeamHasFormatRecordPK());
+ Format formatOld = persistentTeamHasFormatRecord.getFormat();
+ Format formatNew = teamHasFormatRecord.getFormat();
+ Team teamOld = persistentTeamHasFormatRecord.getTeam();
+ Team teamNew = teamHasFormatRecord.getTeam();
+ if (formatNew != null)
+ {
+ formatNew = em.getReference(formatNew.getClass(), formatNew.getFormatPK());
+ teamHasFormatRecord.setFormat(formatNew);
+ }
+ if (teamNew != null)
+ {
+ teamNew = em.getReference(teamNew.getClass(), teamNew.getId());
+ teamHasFormatRecord.setTeam(teamNew);
+ }
+ teamHasFormatRecord = em.merge(teamHasFormatRecord);
+ if (formatOld != null && !formatOld.equals(formatNew))
+ {
+ formatOld.getTeamHasFormatRecordList().remove(teamHasFormatRecord);
+ formatOld = em.merge(formatOld);
+ }
+ if (formatNew != null && !formatNew.equals(formatOld))
+ {
+ formatNew.getTeamHasFormatRecordList().add(teamHasFormatRecord);
+ formatNew = em.merge(formatNew);
+ }
+ if (teamOld != null && !teamOld.equals(teamNew))
+ {
+ teamOld.getTeamHasFormatRecordList().remove(teamHasFormatRecord);
+ teamOld = em.merge(teamOld);
+ }
+ if (teamNew != null && !teamNew.equals(teamOld))
+ {
+ teamNew.getTeamHasFormatRecordList().add(teamHasFormatRecord);
+ teamNew = em.merge(teamNew);
+ }
+ em.getTransaction().commit();
+ }
+ catch (Exception ex)
+ {
+ String msg = ex.getLocalizedMessage();
+ if (msg == null || msg.length() == 0)
+ {
+ TeamHasFormatRecordPK id = teamHasFormatRecord.getTeamHasFormatRecordPK();
+ if (findTeamHasFormatRecord(id) == null)
+ {
+ throw new NonexistentEntityException("The teamHasFormatRecord with id " + id + " no longer exists.");
+ }
+ }
+ throw ex;
+ }
+ finally
+ {
+ if (em != null)
+ {
+ em.close();
+ }
+ }
+ }
+
+ public void destroy(TeamHasFormatRecordPK id) throws NonexistentEntityException
+ {
+ EntityManager em = null;
+ try
+ {
+ em = getEntityManager();
+ em.getTransaction().begin();
+ TeamHasFormatRecord teamHasFormatRecord;
+ try
+ {
+ teamHasFormatRecord = em.getReference(TeamHasFormatRecord.class, id);
+ teamHasFormatRecord.getTeamHasFormatRecordPK();
+ }
+ catch (EntityNotFoundException enfe)
+ {
+ throw new NonexistentEntityException("The teamHasFormatRecord with id " + id + " no longer exists.", enfe);
+ }
+ Format format = teamHasFormatRecord.getFormat();
+ if (format != null)
+ {
+ format.getTeamHasFormatRecordList().remove(teamHasFormatRecord);
+ format = em.merge(format);
+ }
+ Team team = teamHasFormatRecord.getTeam();
+ if (team != null)
+ {
+ team.getTeamHasFormatRecordList().remove(teamHasFormatRecord);
+ team = em.merge(team);
+ }
+ em.remove(teamHasFormatRecord);
+ em.getTransaction().commit();
+ }
+ finally
+ {
+ if (em != null)
+ {
+ em.close();
+ }
+ }
+ }
+
+ public List findTeamHasFormatRecordEntities()
+ {
+ return findTeamHasFormatRecordEntities(true, -1, -1);
+ }
+
+ public List findTeamHasFormatRecordEntities(int maxResults, int firstResult)
+ {
+ return findTeamHasFormatRecordEntities(false, maxResults, firstResult);
+ }
+
+ private List findTeamHasFormatRecordEntities(boolean all, int maxResults, int firstResult)
+ {
+ EntityManager em = getEntityManager();
+ try
+ {
+ CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
+ cq.select(cq.from(TeamHasFormatRecord.class));
+ Query q = em.createQuery(cq);
+ if (!all)
+ {
+ q.setMaxResults(maxResults);
+ q.setFirstResult(firstResult);
+ }
+ return q.getResultList();
+ }
+ finally
+ {
+ em.close();
+ }
+ }
+
+ public TeamHasFormatRecord findTeamHasFormatRecord(TeamHasFormatRecordPK id)
+ {
+ EntityManager em = getEntityManager();
+ try
+ {
+ return em.find(TeamHasFormatRecord.class, id);
+ }
+ finally
+ {
+ em.close();
+ }
+ }
+
+ public int getTeamHasFormatRecordCount()
+ {
+ EntityManager em = getEntityManager();
+ try
+ {
+ CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
+ Root rt = cq.from(TeamHasFormatRecord.class);
+ cq.select(em.getCriteriaBuilder().count(rt));
+ Query q = em.createQuery(cq);
+ return ((Long) q.getSingleResult()).intValue();
+ }
+ finally
+ {
+ em.close();
+ }
+ }
+
+}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamJpaController.java
index 7a3805b..8b54a5d 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamJpaController.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TeamJpaController.java
@@ -14,6 +14,7 @@
import com.github.javydreamercsw.database.storage.db.MatchHasTeam;
import com.github.javydreamercsw.database.storage.db.Player;
import com.github.javydreamercsw.database.storage.db.Team;
+import com.github.javydreamercsw.database.storage.db.TeamHasFormatRecord;
import com.github.javydreamercsw.database.storage.db.TournamentHasTeam;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.IllegalOrphanException;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.NonexistentEntityException;
@@ -42,6 +43,10 @@ public void create(Team team)
{
team.setTournamentHasTeamList(new ArrayList<>());
}
+ if (team.getTeamHasFormatRecordList() == null)
+ {
+ team.setTeamHasFormatRecordList(new ArrayList<>());
+ }
EntityManager em = null;
try
{
@@ -68,6 +73,13 @@ public void create(Team team)
attachedTournamentHasTeamList.add(tournamentHasTeamListTournamentHasTeamToAttach);
}
team.setTournamentHasTeamList(attachedTournamentHasTeamList);
+ List attachedTeamHasFormatRecordList = new ArrayList<>();
+ for (TeamHasFormatRecord teamHasFormatRecordListTeamHasFormatRecordToAttach : team.getTeamHasFormatRecordList())
+ {
+ teamHasFormatRecordListTeamHasFormatRecordToAttach = em.getReference(teamHasFormatRecordListTeamHasFormatRecordToAttach.getClass(), teamHasFormatRecordListTeamHasFormatRecordToAttach.getTeamHasFormatRecordPK());
+ attachedTeamHasFormatRecordList.add(teamHasFormatRecordListTeamHasFormatRecordToAttach);
+ }
+ team.setTeamHasFormatRecordList(attachedTeamHasFormatRecordList);
em.persist(team);
for (Player playerListPlayer : team.getPlayerList())
{
@@ -96,6 +108,17 @@ public void create(Team team)
oldTeamOfTournamentHasTeamListTournamentHasTeam = em.merge(oldTeamOfTournamentHasTeamListTournamentHasTeam);
}
}
+ for (TeamHasFormatRecord teamHasFormatRecordListTeamHasFormatRecord : team.getTeamHasFormatRecordList())
+ {
+ Team oldTeamOfTeamHasFormatRecordListTeamHasFormatRecord = teamHasFormatRecordListTeamHasFormatRecord.getTeam();
+ teamHasFormatRecordListTeamHasFormatRecord.setTeam(team);
+ teamHasFormatRecordListTeamHasFormatRecord = em.merge(teamHasFormatRecordListTeamHasFormatRecord);
+ if (oldTeamOfTeamHasFormatRecordListTeamHasFormatRecord != null)
+ {
+ oldTeamOfTeamHasFormatRecordListTeamHasFormatRecord.getTeamHasFormatRecordList().remove(teamHasFormatRecordListTeamHasFormatRecord);
+ oldTeamOfTeamHasFormatRecordListTeamHasFormatRecord = em.merge(oldTeamOfTeamHasFormatRecordListTeamHasFormatRecord);
+ }
+ }
em.getTransaction().commit();
}
finally
@@ -121,6 +144,8 @@ public void edit(Team team) throws IllegalOrphanException, NonexistentEntityExce
List matchHasTeamListNew = team.getMatchHasTeamList();
List tournamentHasTeamListOld = persistentTeam.getTournamentHasTeamList();
List tournamentHasTeamListNew = team.getTournamentHasTeamList();
+ List teamHasFormatRecordListOld = persistentTeam.getTeamHasFormatRecordList();
+ List teamHasFormatRecordListNew = team.getTeamHasFormatRecordList();
List illegalOrphanMessages = null;
for (MatchHasTeam matchHasTeamListOldMatchHasTeam : matchHasTeamListOld)
{
@@ -144,6 +169,17 @@ public void edit(Team team) throws IllegalOrphanException, NonexistentEntityExce
illegalOrphanMessages.add("You must retain TournamentHasTeam " + tournamentHasTeamListOldTournamentHasTeam + " since its team field is not nullable.");
}
}
+ for (TeamHasFormatRecord teamHasFormatRecordListOldTeamHasFormatRecord : teamHasFormatRecordListOld)
+ {
+ if (!teamHasFormatRecordListNew.contains(teamHasFormatRecordListOldTeamHasFormatRecord))
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("You must retain TeamHasFormatRecord " + teamHasFormatRecordListOldTeamHasFormatRecord + " since its team field is not nullable.");
+ }
+ }
if (illegalOrphanMessages != null)
{
throw new IllegalOrphanException(illegalOrphanMessages);
@@ -172,6 +208,14 @@ public void edit(Team team) throws IllegalOrphanException, NonexistentEntityExce
}
tournamentHasTeamListNew = attachedTournamentHasTeamListNew;
team.setTournamentHasTeamList(tournamentHasTeamListNew);
+ List attachedTeamHasFormatRecordListNew = new ArrayList<>();
+ for (TeamHasFormatRecord teamHasFormatRecordListNewTeamHasFormatRecordToAttach : teamHasFormatRecordListNew)
+ {
+ teamHasFormatRecordListNewTeamHasFormatRecordToAttach = em.getReference(teamHasFormatRecordListNewTeamHasFormatRecordToAttach.getClass(), teamHasFormatRecordListNewTeamHasFormatRecordToAttach.getTeamHasFormatRecordPK());
+ attachedTeamHasFormatRecordListNew.add(teamHasFormatRecordListNewTeamHasFormatRecordToAttach);
+ }
+ teamHasFormatRecordListNew = attachedTeamHasFormatRecordListNew;
+ team.setTeamHasFormatRecordList(teamHasFormatRecordListNew);
team = em.merge(team);
for (Player playerListOldPlayer : playerListOld)
{
@@ -217,6 +261,20 @@ public void edit(Team team) throws IllegalOrphanException, NonexistentEntityExce
}
}
}
+ for (TeamHasFormatRecord teamHasFormatRecordListNewTeamHasFormatRecord : teamHasFormatRecordListNew)
+ {
+ if (!teamHasFormatRecordListOld.contains(teamHasFormatRecordListNewTeamHasFormatRecord))
+ {
+ Team oldTeamOfTeamHasFormatRecordListNewTeamHasFormatRecord = teamHasFormatRecordListNewTeamHasFormatRecord.getTeam();
+ teamHasFormatRecordListNewTeamHasFormatRecord.setTeam(team);
+ teamHasFormatRecordListNewTeamHasFormatRecord = em.merge(teamHasFormatRecordListNewTeamHasFormatRecord);
+ if (oldTeamOfTeamHasFormatRecordListNewTeamHasFormatRecord != null && !oldTeamOfTeamHasFormatRecordListNewTeamHasFormatRecord.equals(team))
+ {
+ oldTeamOfTeamHasFormatRecordListNewTeamHasFormatRecord.getTeamHasFormatRecordList().remove(teamHasFormatRecordListNewTeamHasFormatRecord);
+ oldTeamOfTeamHasFormatRecordListNewTeamHasFormatRecord = em.merge(oldTeamOfTeamHasFormatRecordListNewTeamHasFormatRecord);
+ }
+ }
+ }
em.getTransaction().commit();
}
catch (Exception ex)
@@ -277,6 +335,15 @@ public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntity
}
illegalOrphanMessages.add("This Team (" + team + ") cannot be destroyed since the TournamentHasTeam " + tournamentHasTeamListOrphanCheckTournamentHasTeam + " in its tournamentHasTeamList field has a non-nullable team field.");
}
+ List teamHasFormatRecordListOrphanCheck = team.getTeamHasFormatRecordList();
+ for (TeamHasFormatRecord teamHasFormatRecordListOrphanCheckTeamHasFormatRecord : teamHasFormatRecordListOrphanCheck)
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("This Team (" + team + ") cannot be destroyed since the TeamHasFormatRecord " + teamHasFormatRecordListOrphanCheckTeamHasFormatRecord + " in its teamHasFormatRecordList field has a non-nullable team field.");
+ }
if (illegalOrphanMessages != null)
{
throw new IllegalOrphanException(illegalOrphanMessages);
@@ -359,5 +426,5 @@ public int getTeamCount()
em.close();
}
}
-
+
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentFormatJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentFormatJpaController.java
new file mode 100644
index 0000000..8efc1e2
--- /dev/null
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentFormatJpaController.java
@@ -0,0 +1,257 @@
+package com.github.javydreamercsw.database.storage.db.controller;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.EntityNotFoundException;
+import javax.persistence.Query;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Root;
+
+import com.github.javydreamercsw.database.storage.db.Tournament;
+import com.github.javydreamercsw.database.storage.db.TournamentFormat;
+import com.github.javydreamercsw.database.storage.db.controller.exceptions.IllegalOrphanException;
+import com.github.javydreamercsw.database.storage.db.controller.exceptions.NonexistentEntityException;
+import com.github.javydreamercsw.database.storage.db.controller.exceptions.PreexistingEntityException;
+import com.github.javydreamercsw.database.storage.db.server.AbstractController;
+
+public class TournamentFormatJpaController extends AbstractController implements Serializable
+{
+ private static final long serialVersionUID = 8124092964263662804L;
+
+ public TournamentFormatJpaController(EntityManagerFactory emf)
+ {
+ super(emf);
+ }
+
+ public void create(TournamentFormat tournamentFormat) throws PreexistingEntityException, Exception
+ {
+ if (tournamentFormat.getTournamentList() == null)
+ {
+ tournamentFormat.setTournamentList(new ArrayList<>());
+ }
+ EntityManager em = null;
+ try
+ {
+ em = getEntityManager();
+ em.getTransaction().begin();
+ List attachedTournamentList = new ArrayList<>();
+ for (Tournament tournamentListTournamentToAttach : tournamentFormat.getTournamentList())
+ {
+ tournamentListTournamentToAttach = em.getReference(tournamentListTournamentToAttach.getClass(), tournamentListTournamentToAttach.getTournamentPK());
+ attachedTournamentList.add(tournamentListTournamentToAttach);
+ }
+ tournamentFormat.setTournamentList(attachedTournamentList);
+ em.persist(tournamentFormat);
+ for (Tournament tournamentListTournament : tournamentFormat.getTournamentList())
+ {
+ TournamentFormat oldTournamentFormatOfTournamentListTournament = tournamentListTournament.getTournamentFormat();
+ tournamentListTournament.setTournamentFormat(tournamentFormat);
+ tournamentListTournament = em.merge(tournamentListTournament);
+ if (oldTournamentFormatOfTournamentListTournament != null)
+ {
+ oldTournamentFormatOfTournamentListTournament.getTournamentList().remove(tournamentListTournament);
+ oldTournamentFormatOfTournamentListTournament = em.merge(oldTournamentFormatOfTournamentListTournament);
+ }
+ }
+ em.getTransaction().commit();
+ }
+ catch (Exception ex)
+ {
+ if (tournamentFormat.getId() != null
+ && findTournamentFormat(tournamentFormat.getId()) != null)
+ {
+ throw new PreexistingEntityException("TournamentFormat " + tournamentFormat + " already exists.", ex);
+ }
+ throw ex;
+ }
+ finally
+ {
+ if (em != null)
+ {
+ em.close();
+ }
+ }
+ }
+
+ public void edit(TournamentFormat tournamentFormat) throws IllegalOrphanException, NonexistentEntityException, Exception
+ {
+ EntityManager em = null;
+ try
+ {
+ em = getEntityManager();
+ em.getTransaction().begin();
+ TournamentFormat persistentTournamentFormat = em.find(TournamentFormat.class, tournamentFormat.getId());
+ List tournamentListOld = persistentTournamentFormat.getTournamentList();
+ List tournamentListNew = tournamentFormat.getTournamentList();
+ List illegalOrphanMessages = null;
+ for (Tournament tournamentListOldTournament : tournamentListOld)
+ {
+ if (!tournamentListNew.contains(tournamentListOldTournament))
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("You must retain Tournament " + tournamentListOldTournament + " since its tournamentFormat field is not nullable.");
+ }
+ }
+ if (illegalOrphanMessages != null)
+ {
+ throw new IllegalOrphanException(illegalOrphanMessages);
+ }
+ List attachedTournamentListNew = new ArrayList<>();
+ for (Tournament tournamentListNewTournamentToAttach : tournamentListNew)
+ {
+ tournamentListNewTournamentToAttach = em.getReference(tournamentListNewTournamentToAttach.getClass(), tournamentListNewTournamentToAttach.getTournamentPK());
+ attachedTournamentListNew.add(tournamentListNewTournamentToAttach);
+ }
+ tournamentListNew = attachedTournamentListNew;
+ tournamentFormat.setTournamentList(tournamentListNew);
+ tournamentFormat = em.merge(tournamentFormat);
+ for (Tournament tournamentListNewTournament : tournamentListNew)
+ {
+ if (!tournamentListOld.contains(tournamentListNewTournament))
+ {
+ TournamentFormat oldTournamentFormatOfTournamentListNewTournament = tournamentListNewTournament.getTournamentFormat();
+ tournamentListNewTournament.setTournamentFormat(tournamentFormat);
+ tournamentListNewTournament = em.merge(tournamentListNewTournament);
+ if (oldTournamentFormatOfTournamentListNewTournament != null && !oldTournamentFormatOfTournamentListNewTournament.equals(tournamentFormat))
+ {
+ oldTournamentFormatOfTournamentListNewTournament.getTournamentList().remove(tournamentListNewTournament);
+ oldTournamentFormatOfTournamentListNewTournament = em.merge(oldTournamentFormatOfTournamentListNewTournament);
+ }
+ }
+ }
+ em.getTransaction().commit();
+ }
+ catch (Exception ex)
+ {
+ String msg = ex.getLocalizedMessage();
+ if (msg == null || msg.length() == 0)
+ {
+ Integer id = tournamentFormat.getId();
+ if (findTournamentFormat(id) == null)
+ {
+ throw new NonexistentEntityException("The tournamentFormat with id " + id + " no longer exists.");
+ }
+ }
+ throw ex;
+ }
+ finally
+ {
+ if (em != null)
+ {
+ em.close();
+ }
+ }
+ }
+
+ public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException
+ {
+ EntityManager em = null;
+ try
+ {
+ em = getEntityManager();
+ em.getTransaction().begin();
+ TournamentFormat tournamentFormat;
+ try
+ {
+ tournamentFormat = em.getReference(TournamentFormat.class, id);
+ tournamentFormat.getId();
+ }
+ catch (EntityNotFoundException enfe)
+ {
+ throw new NonexistentEntityException("The tournamentFormat with id " + id + " no longer exists.", enfe);
+ }
+ List illegalOrphanMessages = null;
+ List tournamentListOrphanCheck = tournamentFormat.getTournamentList();
+ for (Tournament tournamentListOrphanCheckTournament : tournamentListOrphanCheck)
+ {
+ if (illegalOrphanMessages == null)
+ {
+ illegalOrphanMessages = new ArrayList<>();
+ }
+ illegalOrphanMessages.add("This TournamentFormat (" + tournamentFormat + ") cannot be destroyed since the Tournament " + tournamentListOrphanCheckTournament + " in its tournamentList field has a non-nullable tournamentFormat field.");
+ }
+ if (illegalOrphanMessages != null)
+ {
+ throw new IllegalOrphanException(illegalOrphanMessages);
+ }
+ em.remove(tournamentFormat);
+ em.getTransaction().commit();
+ }
+ finally
+ {
+ if (em != null)
+ {
+ em.close();
+ }
+ }
+ }
+
+ public List findTournamentFormatEntities()
+ {
+ return findTournamentFormatEntities(true, -1, -1);
+ }
+
+ public List findTournamentFormatEntities(int maxResults, int firstResult)
+ {
+ return findTournamentFormatEntities(false, maxResults, firstResult);
+ }
+
+ private List findTournamentFormatEntities(boolean all, int maxResults, int firstResult)
+ {
+ EntityManager em = getEntityManager();
+ try
+ {
+ CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
+ cq.select(cq.from(TournamentFormat.class));
+ Query q = em.createQuery(cq);
+ if (!all)
+ {
+ q.setMaxResults(maxResults);
+ q.setFirstResult(firstResult);
+ }
+ return q.getResultList();
+ }
+ finally
+ {
+ em.close();
+ }
+ }
+
+ public TournamentFormat findTournamentFormat(Integer id)
+ {
+ EntityManager em = getEntityManager();
+ try
+ {
+ return em.find(TournamentFormat.class, id);
+ }
+ finally
+ {
+ em.close();
+ }
+ }
+
+ public int getTournamentFormatCount()
+ {
+ EntityManager em = getEntityManager();
+ try
+ {
+ CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
+ Root rt = cq.from(TournamentFormat.class);
+ cq.select(em.getCriteriaBuilder().count(rt));
+ Query q = em.createQuery(cq);
+ return ((Long) q.getSingleResult()).intValue();
+ }
+ finally
+ {
+ em.close();
+ }
+ }
+
+}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentHasTeamJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentHasTeamJpaController.java
index bcbfdcd..80bc46c 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentHasTeamJpaController.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentHasTeamJpaController.java
@@ -39,8 +39,8 @@ public void create(TournamentHasTeam tournamentHasTeam) throws PreexistingEntity
{
tournamentHasTeam.setRecordList(new ArrayList<>());
}
- tournamentHasTeam.getTournamentHasTeamPK().setTournamentId(tournamentHasTeam.getTournament().getId());
tournamentHasTeam.getTournamentHasTeamPK().setTeamId(tournamentHasTeam.getTeam().getId());
+ tournamentHasTeam.getTournamentHasTeamPK().setTournamentId(tournamentHasTeam.getTournament().getTournamentPK().getId());
EntityManager em = null;
try
{
@@ -55,7 +55,7 @@ public void create(TournamentHasTeam tournamentHasTeam) throws PreexistingEntity
Tournament tournament = tournamentHasTeam.getTournament();
if (tournament != null)
{
- tournament = em.getReference(tournament.getClass(), tournament.getId());
+ tournament = em.getReference(tournament.getClass(), tournament.getTournamentPK());
tournamentHasTeam.setTournament(tournament);
}
List attachedRecordList = new ArrayList<>();
@@ -102,8 +102,8 @@ public void create(TournamentHasTeam tournamentHasTeam) throws PreexistingEntity
public void edit(TournamentHasTeam tournamentHasTeam) throws NonexistentEntityException, Exception
{
- tournamentHasTeam.getTournamentHasTeamPK().setTournamentId(tournamentHasTeam.getTournament().getId());
tournamentHasTeam.getTournamentHasTeamPK().setTeamId(tournamentHasTeam.getTeam().getId());
+ tournamentHasTeam.getTournamentHasTeamPK().setTournamentId(tournamentHasTeam.getTournament().getTournamentPK().getId());
EntityManager em = null;
try
{
@@ -123,7 +123,7 @@ public void edit(TournamentHasTeam tournamentHasTeam) throws NonexistentEntityEx
}
if (tournamentNew != null)
{
- tournamentNew = em.getReference(tournamentNew.getClass(), tournamentNew.getId());
+ tournamentNew = em.getReference(tournamentNew.getClass(), tournamentNew.getTournamentPK());
tournamentHasTeam.setTournament(tournamentNew);
}
List attachedRecordListNew = new ArrayList<>();
@@ -302,5 +302,5 @@ public int getTournamentHasTeamCount()
em.close();
}
}
-
+
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentJpaController.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentJpaController.java
index a12e9aa..959a65a 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentJpaController.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/controller/TournamentJpaController.java
@@ -11,44 +11,57 @@
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
+import com.github.javydreamercsw.database.storage.db.Format;
import com.github.javydreamercsw.database.storage.db.Round;
import com.github.javydreamercsw.database.storage.db.Tournament;
+import com.github.javydreamercsw.database.storage.db.TournamentFormat;
import com.github.javydreamercsw.database.storage.db.TournamentHasTeam;
+import com.github.javydreamercsw.database.storage.db.TournamentPK;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.IllegalOrphanException;
import com.github.javydreamercsw.database.storage.db.controller.exceptions.NonexistentEntityException;
+import com.github.javydreamercsw.database.storage.db.controller.exceptions.PreexistingEntityException;
import com.github.javydreamercsw.database.storage.db.server.AbstractController;
public class TournamentJpaController extends AbstractController implements Serializable
{
- private static final long serialVersionUID = -3241408395907726172L;
-
+ private static final long serialVersionUID = 2285164831364920828L;
public TournamentJpaController(EntityManagerFactory emf)
{
super(emf);
}
- public void create(Tournament tournament)
+ public void create(Tournament tournament) throws PreexistingEntityException, Exception
{
- if (tournament.getRoundList() == null)
+ if (tournament.getTournamentPK() == null)
{
- tournament.setRoundList(new ArrayList<>());
+ tournament.setTournamentPK(new TournamentPK());
}
if (tournament.getTournamentHasTeamList() == null)
{
tournament.setTournamentHasTeamList(new ArrayList<>());
}
+ if (tournament.getRoundList() == null)
+ {
+ tournament.setRoundList(new ArrayList<>());
+ }
+ tournament.getTournamentPK().setTournamentFormatId(tournament.getTournamentFormat().getId());
EntityManager em = null;
try
{
em = getEntityManager();
em.getTransaction().begin();
- List attachedRoundList = new ArrayList<>();
- for (Round roundListRoundToAttach : tournament.getRoundList())
+ Format format = tournament.getFormat();
+ if (format != null)
{
- roundListRoundToAttach = em.getReference(roundListRoundToAttach.getClass(), roundListRoundToAttach.getRoundPK());
- attachedRoundList.add(roundListRoundToAttach);
+ format = em.getReference(format.getClass(), format.getFormatPK());
+ tournament.setFormat(format);
+ }
+ TournamentFormat tournamentFormat = tournament.getTournamentFormat();
+ if (tournamentFormat != null)
+ {
+ tournamentFormat = em.getReference(tournamentFormat.getClass(), tournamentFormat.getId());
+ tournament.setTournamentFormat(tournamentFormat);
}
- tournament.setRoundList(attachedRoundList);
List attachedTournamentHasTeamList = new ArrayList<>();
for (TournamentHasTeam tournamentHasTeamListTournamentHasTeamToAttach : tournament.getTournamentHasTeamList())
{
@@ -56,17 +69,23 @@ public void create(Tournament tournament)
attachedTournamentHasTeamList.add(tournamentHasTeamListTournamentHasTeamToAttach);
}
tournament.setTournamentHasTeamList(attachedTournamentHasTeamList);
+ List attachedRoundList = new ArrayList<>();
+ for (Round roundListRoundToAttach : tournament.getRoundList())
+ {
+ roundListRoundToAttach = em.getReference(roundListRoundToAttach.getClass(), roundListRoundToAttach.getRoundPK());
+ attachedRoundList.add(roundListRoundToAttach);
+ }
+ tournament.setRoundList(attachedRoundList);
em.persist(tournament);
- for (Round roundListRound : tournament.getRoundList())
+ if (format != null)
{
- Tournament oldTournamentOfRoundListRound = roundListRound.getTournament();
- roundListRound.setTournament(tournament);
- roundListRound = em.merge(roundListRound);
- if (oldTournamentOfRoundListRound != null)
- {
- oldTournamentOfRoundListRound.getRoundList().remove(roundListRound);
- oldTournamentOfRoundListRound = em.merge(oldTournamentOfRoundListRound);
- }
+ format.getTournamentList().add(tournament);
+ format = em.merge(format);
+ }
+ if (tournamentFormat != null)
+ {
+ tournamentFormat.getTournamentList().add(tournament);
+ tournamentFormat = em.merge(tournamentFormat);
}
for (TournamentHasTeam tournamentHasTeamListTournamentHasTeam : tournament.getTournamentHasTeamList())
{
@@ -79,8 +98,27 @@ public void create(Tournament tournament)
oldTournamentOfTournamentHasTeamListTournamentHasTeam = em.merge(oldTournamentOfTournamentHasTeamListTournamentHasTeam);
}
}
+ for (Round roundListRound : tournament.getRoundList())
+ {
+ Tournament oldTournamentOfRoundListRound = roundListRound.getTournament();
+ roundListRound.setTournament(tournament);
+ roundListRound = em.merge(roundListRound);
+ if (oldTournamentOfRoundListRound != null)
+ {
+ oldTournamentOfRoundListRound.getRoundList().remove(roundListRound);
+ oldTournamentOfRoundListRound = em.merge(oldTournamentOfRoundListRound);
+ }
+ }
em.getTransaction().commit();
}
+ catch (Exception ex)
+ {
+ if (findTournament(tournament.getTournamentPK()) != null)
+ {
+ throw new PreexistingEntityException("Tournament " + tournament + " already exists.", ex);
+ }
+ throw ex;
+ }
finally
{
if (em != null)
@@ -92,51 +130,58 @@ public void create(Tournament tournament)
public void edit(Tournament tournament) throws IllegalOrphanException, NonexistentEntityException, Exception
{
+ tournament.getTournamentPK().setTournamentFormatId(tournament.getTournamentFormat().getId());
EntityManager em = null;
try
{
em = getEntityManager();
em.getTransaction().begin();
- Tournament persistentTournament = em.find(Tournament.class, tournament.getId());
- List roundListOld = persistentTournament.getRoundList();
- List roundListNew = tournament.getRoundList();
+ Tournament persistentTournament = em.find(Tournament.class, tournament.getTournamentPK());
+ Format formatOld = persistentTournament.getFormat();
+ Format formatNew = tournament.getFormat();
+ TournamentFormat tournamentFormatOld = persistentTournament.getTournamentFormat();
+ TournamentFormat tournamentFormatNew = tournament.getTournamentFormat();
List tournamentHasTeamListOld = persistentTournament.getTournamentHasTeamList();
List tournamentHasTeamListNew = tournament.getTournamentHasTeamList();
+ List roundListOld = persistentTournament.getRoundList();
+ List roundListNew = tournament.getRoundList();
List illegalOrphanMessages = null;
- for (Round roundListOldRound : roundListOld)
+ for (TournamentHasTeam tournamentHasTeamListOldTournamentHasTeam : tournamentHasTeamListOld)
{
- if (!roundListNew.contains(roundListOldRound))
+ if (!tournamentHasTeamListNew.contains(tournamentHasTeamListOldTournamentHasTeam))
{
if (illegalOrphanMessages == null)
{
illegalOrphanMessages = new ArrayList<>();
}
- illegalOrphanMessages.add("You must retain Round " + roundListOldRound + " since its tournament field is not nullable.");
+ illegalOrphanMessages.add("You must retain TournamentHasTeam " + tournamentHasTeamListOldTournamentHasTeam + " since its tournament field is not nullable.");
}
}
- for (TournamentHasTeam tournamentHasTeamListOldTournamentHasTeam : tournamentHasTeamListOld)
+ for (Round roundListOldRound : roundListOld)
{
- if (!tournamentHasTeamListNew.contains(tournamentHasTeamListOldTournamentHasTeam))
+ if (!roundListNew.contains(roundListOldRound))
{
if (illegalOrphanMessages == null)
{
illegalOrphanMessages = new ArrayList<>();
}
- illegalOrphanMessages.add("You must retain TournamentHasTeam " + tournamentHasTeamListOldTournamentHasTeam + " since its tournament field is not nullable.");
+ illegalOrphanMessages.add("You must retain Round " + roundListOldRound + " since its tournament field is not nullable.");
}
}
if (illegalOrphanMessages != null)
{
throw new IllegalOrphanException(illegalOrphanMessages);
}
- List attachedRoundListNew = new ArrayList<>();
- for (Round roundListNewRoundToAttach : roundListNew)
+ if (formatNew != null)
{
- roundListNewRoundToAttach = em.getReference(roundListNewRoundToAttach.getClass(), roundListNewRoundToAttach.getRoundPK());
- attachedRoundListNew.add(roundListNewRoundToAttach);
+ formatNew = em.getReference(formatNew.getClass(), formatNew.getFormatPK());
+ tournament.setFormat(formatNew);
+ }
+ if (tournamentFormatNew != null)
+ {
+ tournamentFormatNew = em.getReference(tournamentFormatNew.getClass(), tournamentFormatNew.getId());
+ tournament.setTournamentFormat(tournamentFormatNew);
}
- roundListNew = attachedRoundListNew;
- tournament.setRoundList(roundListNew);
List attachedTournamentHasTeamListNew = new ArrayList<>();
for (TournamentHasTeam tournamentHasTeamListNewTournamentHasTeamToAttach : tournamentHasTeamListNew)
{
@@ -145,20 +190,34 @@ public void edit(Tournament tournament) throws IllegalOrphanException, Nonexiste
}
tournamentHasTeamListNew = attachedTournamentHasTeamListNew;
tournament.setTournamentHasTeamList(tournamentHasTeamListNew);
+ List attachedRoundListNew = new ArrayList<>();
+ for (Round roundListNewRoundToAttach : roundListNew)
+ {
+ roundListNewRoundToAttach = em.getReference(roundListNewRoundToAttach.getClass(), roundListNewRoundToAttach.getRoundPK());
+ attachedRoundListNew.add(roundListNewRoundToAttach);
+ }
+ roundListNew = attachedRoundListNew;
+ tournament.setRoundList(roundListNew);
tournament = em.merge(tournament);
- for (Round roundListNewRound : roundListNew)
+ if (formatOld != null && !formatOld.equals(formatNew))
{
- if (!roundListOld.contains(roundListNewRound))
- {
- Tournament oldTournamentOfRoundListNewRound = roundListNewRound.getTournament();
- roundListNewRound.setTournament(tournament);
- roundListNewRound = em.merge(roundListNewRound);
- if (oldTournamentOfRoundListNewRound != null && !oldTournamentOfRoundListNewRound.equals(tournament))
- {
- oldTournamentOfRoundListNewRound.getRoundList().remove(roundListNewRound);
- oldTournamentOfRoundListNewRound = em.merge(oldTournamentOfRoundListNewRound);
- }
- }
+ formatOld.getTournamentList().remove(tournament);
+ formatOld = em.merge(formatOld);
+ }
+ if (formatNew != null && !formatNew.equals(formatOld))
+ {
+ formatNew.getTournamentList().add(tournament);
+ formatNew = em.merge(formatNew);
+ }
+ if (tournamentFormatOld != null && !tournamentFormatOld.equals(tournamentFormatNew))
+ {
+ tournamentFormatOld.getTournamentList().remove(tournament);
+ tournamentFormatOld = em.merge(tournamentFormatOld);
+ }
+ if (tournamentFormatNew != null && !tournamentFormatNew.equals(tournamentFormatOld))
+ {
+ tournamentFormatNew.getTournamentList().add(tournament);
+ tournamentFormatNew = em.merge(tournamentFormatNew);
}
for (TournamentHasTeam tournamentHasTeamListNewTournamentHasTeam : tournamentHasTeamListNew)
{
@@ -174,6 +233,20 @@ public void edit(Tournament tournament) throws IllegalOrphanException, Nonexiste
}
}
}
+ for (Round roundListNewRound : roundListNew)
+ {
+ if (!roundListOld.contains(roundListNewRound))
+ {
+ Tournament oldTournamentOfRoundListNewRound = roundListNewRound.getTournament();
+ roundListNewRound.setTournament(tournament);
+ roundListNewRound = em.merge(roundListNewRound);
+ if (oldTournamentOfRoundListNewRound != null && !oldTournamentOfRoundListNewRound.equals(tournament))
+ {
+ oldTournamentOfRoundListNewRound.getRoundList().remove(roundListNewRound);
+ oldTournamentOfRoundListNewRound = em.merge(oldTournamentOfRoundListNewRound);
+ }
+ }
+ }
em.getTransaction().commit();
}
catch (Exception ex)
@@ -181,7 +254,7 @@ public void edit(Tournament tournament) throws IllegalOrphanException, Nonexiste
String msg = ex.getLocalizedMessage();
if (msg == null || msg.length() == 0)
{
- Integer id = tournament.getId();
+ TournamentPK id = tournament.getTournamentPK();
if (findTournament(id) == null)
{
throw new NonexistentEntityException("The tournament with id " + id + " no longer exists.");
@@ -198,7 +271,7 @@ public void edit(Tournament tournament) throws IllegalOrphanException, Nonexiste
}
}
- public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntityException
+ public void destroy(TournamentPK id) throws IllegalOrphanException, NonexistentEntityException
{
EntityManager em = null;
try
@@ -209,35 +282,47 @@ public void destroy(Integer id) throws IllegalOrphanException, NonexistentEntity
try
{
tournament = em.getReference(Tournament.class, id);
- tournament.getId();
+ tournament.getTournamentPK();
}
catch (EntityNotFoundException enfe)
{
throw new NonexistentEntityException("The tournament with id " + id + " no longer exists.", enfe);
}
List illegalOrphanMessages = null;
- List roundListOrphanCheck = tournament.getRoundList();
- for (Round roundListOrphanCheckRound : roundListOrphanCheck)
+ List tournamentHasTeamListOrphanCheck = tournament.getTournamentHasTeamList();
+ for (TournamentHasTeam tournamentHasTeamListOrphanCheckTournamentHasTeam : tournamentHasTeamListOrphanCheck)
{
if (illegalOrphanMessages == null)
{
illegalOrphanMessages = new ArrayList<>();
}
- illegalOrphanMessages.add("This Tournament (" + tournament + ") cannot be destroyed since the Round " + roundListOrphanCheckRound + " in its roundList field has a non-nullable tournament field.");
+ illegalOrphanMessages.add("This Tournament (" + tournament + ") cannot be destroyed since the TournamentHasTeam " + tournamentHasTeamListOrphanCheckTournamentHasTeam + " in its tournamentHasTeamList field has a non-nullable tournament field.");
}
- List tournamentHasTeamListOrphanCheck = tournament.getTournamentHasTeamList();
- for (TournamentHasTeam tournamentHasTeamListOrphanCheckTournamentHasTeam : tournamentHasTeamListOrphanCheck)
+ List roundListOrphanCheck = tournament.getRoundList();
+ for (Round roundListOrphanCheckRound : roundListOrphanCheck)
{
if (illegalOrphanMessages == null)
{
illegalOrphanMessages = new ArrayList<>();
}
- illegalOrphanMessages.add("This Tournament (" + tournament + ") cannot be destroyed since the TournamentHasTeam " + tournamentHasTeamListOrphanCheckTournamentHasTeam + " in its tournamentHasTeamList field has a non-nullable tournament field.");
+ illegalOrphanMessages.add("This Tournament (" + tournament + ") cannot be destroyed since the Round " + roundListOrphanCheckRound + " in its roundList field has a non-nullable tournament field.");
}
if (illegalOrphanMessages != null)
{
throw new IllegalOrphanException(illegalOrphanMessages);
}
+ Format format = tournament.getFormat();
+ if (format != null)
+ {
+ format.getTournamentList().remove(tournament);
+ format = em.merge(format);
+ }
+ TournamentFormat tournamentFormat = tournament.getTournamentFormat();
+ if (tournamentFormat != null)
+ {
+ tournamentFormat.getTournamentList().remove(tournament);
+ tournamentFormat = em.merge(tournamentFormat);
+ }
em.remove(tournament);
em.getTransaction().commit();
}
@@ -281,7 +366,7 @@ private List findTournamentEntities(boolean all, int maxResults, int
}
}
- public Tournament findTournament(Integer id)
+ public Tournament findTournament(TournamentPK id)
{
EntityManager em = getEntityManager();
try
@@ -310,5 +395,5 @@ public int getTournamentCount()
em.close();
}
}
-
+
}
diff --git a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/server/DataBaseManager.java b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/server/DataBaseManager.java
index 1f677b7..074763c 100644
--- a/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/server/DataBaseManager.java
+++ b/Database-Storage/src/main/java/com/github/javydreamercsw/database/storage/db/server/DataBaseManager.java
@@ -5,6 +5,8 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -33,8 +35,10 @@
import com.github.javydreamercsw.database.storage.db.Player;
import com.github.javydreamercsw.database.storage.db.Team;
import com.github.javydreamercsw.database.storage.db.Tournament;
+import com.github.javydreamercsw.database.storage.db.TournamentFormat;
import com.github.javydreamercsw.tournament.manager.api.GameFormat;
import com.github.javydreamercsw.tournament.manager.api.IGame;
+import com.github.javydreamercsw.tournament.manager.api.TournamentInterface;
import com.github.javydreamercsw.tournament.manager.api.storage.StorageException;
import com.googlecode.flyway.core.Flyway;
import com.googlecode.flyway.core.api.MigrationInfo;
@@ -59,15 +63,10 @@ public class DataBaseManager
private static final Logger LOG
= Logger.getLogger(DataBaseManager.class.getSimpleName());
private static boolean dbError = false;
- private static DBState state;
+ private static DBState state = DBState.START_UP;
public static final String JNDI_DATASOURCE_NAME
= "java:comp/env/jdbc/TMDB";
- public DataBaseManager()
- {
- state = DBState.START_UP;
- }
-
public static EntityManagerFactory getEntityManagerFactory()
{
if (emf == null)
@@ -371,18 +370,6 @@ public static List