diff --git a/build.gradle b/build.gradle index e6ff11c6a40d255aa75557319822c9ead4a97bde..1b71340cbe71b78e3d453d2eb54df68783ca0fd8 100644 --- a/build.gradle +++ b/build.gradle @@ -57,11 +57,6 @@ project(":desktop") { // h2 database runtimeOnly 'com.h2database:h2' - // ormlite - compile group: 'com.j256.ormlite', name: 'ormlite-jdbc', version: '4.48' - compile 'com.j256.ormlite:ormlite-android:4.48' - compile 'com.j256.ormlite:ormlite-core:4.48' - compile group: 'com.h2database', name: 'h2', version: '1.4.199' } } @@ -105,11 +100,6 @@ project(":core") { // https://mvnrepository.com/artifact/org.mockito/mockito-junit-jupiter testCompile group: 'org.mockito', name: 'mockito-junit-jupiter', version: '3.3.3' - // ormlite - compile group: 'com.j256.ormlite', name: 'ormlite-jdbc', version: '4.48' - compile 'com.j256.ormlite:ormlite-android:4.48' - compile 'com.j256.ormlite:ormlite-core:4.48' - testCompile 'junit:junit:4.12' compile 'junit:junit:4.12' } diff --git a/core/database.mv.db b/core/database.mv.db index 7e2e1de2540f765ebf278401a0ed46fd69b52434..9dbdffc5c5d72fd1cf5f84151e6d3282d8f5cb4f 100644 Binary files a/core/database.mv.db and b/core/database.mv.db differ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java index ee52cb5a890ab90bddefa1af41684daabd72d392..ebc56560effbe0dfd67209f9e10464102a0c10e0 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java @@ -1,9 +1,6 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Crew; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; -import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.System; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; import javax.persistence.*; @@ -53,6 +50,7 @@ public class Crew implements Serializable { /** * The room this crew member is in */ + @OneToOne private Room currentRoom; /** diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java index 767140814e9b7bb8abff17464a6b16323ede4879..ebde8497d8ba6bc99209fb211cd632bb2e843257 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java @@ -1,33 +1,40 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Map; -import com.j256.ormlite.field.DatabaseField; -import lombok.Data; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import javax.persistence.*; import java.io.Serializable; import java.util.HashMap; - +import java.util.Map; + +@Entity +@NoArgsConstructor(access = AccessLevel.PUBLIC) +@RequiredArgsConstructor(access = AccessLevel.PUBLIC) +@NamedQueries({ + @NamedQuery(name = "Overworld.getByUsername", query = "select o from Overworld o where o.associatedUser =: name") +}) public class Overworld implements Serializable { /** ID */ @NonNull - @DatabaseField(id = true,columnName = "ID") + @Id private int id; /** Username used as ID */ @NonNull - @DatabaseField(columnName = "user") private String associatedUser; /** Stores planet and their location on the map */ - @NonNull - @DatabaseField(columnName = "planetMap") - private HashMap<float[],Planet> planetMap; + @OneToMany + private Map<String,Planet> planetMap; /** The start planet */ @NonNull - @DatabaseField(columnName = "startPlanet") + @OneToOne private Planet startPlanet; /** Constructor */ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java index 7e51cccf3f684f86f3374b69af9bc685eb2fb36a..4e0a1a2de46f1c82cd03c219eb86e2ee23c1a8e6 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Planet.java @@ -1,59 +1,61 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Map; -import com.badlogic.gdx.scenes.scene2d.ui.List; + import com.galaxytrucker.galaxytruckerreloaded.Model.Ship; -import com.j256.ormlite.field.DatabaseField; + import lombok.*; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; import java.io.Serializable; +import java.util.List; @NoArgsConstructor(access = AccessLevel.PUBLIC) @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter +@Entity public class Planet implements Serializable { /** * Planet name */ - @DatabaseField(id = true, columnName = "name") + @Id @NonNull private String name; /** * Horizontale Position auf der Karte */ - @DatabaseField(columnName = "posX") @NonNull private float posX; /** * Vertikale Position auf der Karte */ - @DatabaseField(columnName = "posY") @NonNull private float posY; /** * Ereignis dass auf diesem Planeten eintrifft */ - @DatabaseField(columnName = "event", foreign = true) @NonNull private Enum<PlanetEvent> event; /** * If already discovered set to true */ - @DatabaseField(columnName = "discovered") @NonNull private boolean discovered = false; /** Ships at this planet */ - @DatabaseField(foreign = true, columnName = "ships") @NonNull + @OneToMany private List<Ship> ships; /** Trader */ - @DatabaseField(foreign = true) + @OneToOne private Trader trader; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Trader.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Trader.java index 6323ffd72aebb015f7da3a2951d183b827c56872..ce267d3b4dde64a83094a4dd026e6c3b150c6649 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Trader.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Trader.java @@ -1,46 +1,44 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Map; -import com.badlogic.gdx.scenes.scene2d.ui.List; +import java.util.List; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; import java.io.Serializable; @Getter @Setter -@DatabaseTable(tableName = "trader") +@Entity @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) public class Trader extends Planet implements Serializable { /** ID */ - @DatabaseField(id = true) + @Id private int id; /** Associated user */ - @DatabaseField(foreign = true) private Planet planet; /** Weapons for sale */ - @DatabaseField(foreign = true) @NonNull + @OneToMany private List<Weapon> weaponStock; /** Rockets for sale */ - @DatabaseField @NonNull private int missileStock; /** Fuel for sale */ - @DatabaseField @NonNull private int fuelStock; /** Crew for sale */ - @DatabaseField(foreign = true) + @OneToMany @NonNull private List<Crew> crewStock; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java index 08417b50a2a0ab1d04d36eefbbe963cb30342c02..a6c8b61e4c66bd1edc01111dd6d4080a79b4c291 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java @@ -1,25 +1,26 @@ package com.galaxytrucker.galaxytruckerreloaded.Model; -import com.badlogic.gdx.scenes.scene2d.ui.List; -import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Planet; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.*; import java.io.Serializable; +import java.util.List; @AllArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "ship") +@Entity +@NamedQueries({ + @NamedQuery(name = "Ship.getByUsername", query = "select s from Ship s where s.associatedUser =: username") +}) public class Ship implements Serializable { /** ID */ - @DatabaseField(id = true,columnName = "ID") + @Id @NonNull private int id; @@ -27,7 +28,6 @@ public class Ship implements Serializable { * The user this ship belongs to * (uses the user's username) */ - @DatabaseField(columnName = "associatedUser") @NonNull private String associatedUser; @@ -35,84 +35,72 @@ public class Ship implements Serializable { * HP */ @NonNull - @DatabaseField(columnName = "HP") private int hp; /** Coins */ @NonNull - @DatabaseField(columnName = "coins") private int coins; /** Amount of available missiles */ @NonNull - @DatabaseField(columnName = "missles") private int missiles; /** Amount of fuel left*/ @NonNull - @DatabaseField(columnName = "fuel") private int fuel; /** * Energy to be distributed */ @NonNull - @DatabaseField(columnName = "energy") private int energy; /** * Shields that are currently active */ @NonNull - @DatabaseField(columnName = "shieldCharge") private int shieldCharge; /** * Total number of Shields that are powered. Possibly redundant through Shield.getEnergy/2 */ @NonNull - @DatabaseField(columnName = "maximumShieldCharge") private int maxShieldCharge; /** * chance for the ship to dodge incoming attacks */ @NonNull - @DatabaseField(columnName = "evasionChance") private float evasionChance; /** * The planet the ship is currently at */ @NonNull - @DatabaseField(foreign = true,columnName = "planet") private Planet planet; /** Shields */ @NonNull - @DatabaseField(columnName = "shields") private int shields; /** * time needed until position can be changed again */ @NonNull - @DatabaseField(columnName = "FTLCharge") private int FTLCharge; /** This ship's systems */ @NonNull - @DatabaseField(columnName = "systems",foreign = true) + @ElementCollection private List<Room> systems; /** Inventory */ @NonNull - @DatabaseField(foreign = true, columnName = "inventory") + @ElementCollection private List<Weapon> inventory; /** Whether or not the ship is in combat */ - @DatabaseField(columnName = "inCombat") @NonNull private boolean inCombat = false; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java index 4742bded7cb67bd24ae1008e127aa743b2ff1bf6..87d66ac535dee296e4d866e5fd5753461a8ad01e 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/BlankRoom.java @@ -1,18 +1,13 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; + @Getter @Setter @RequiredArgsConstructor(access = AccessLevel.PUBLIC) -@NoArgsConstructor(access = AccessLevel.PUBLIC) -@DatabaseTable(tableName = "blankRoom") +@Entity public class BlankRoom extends Room { - /** ID */ - @NonNull - @DatabaseField(id = true) - private int id; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Engine.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Engine.java index 9d6fab8e91331b8a9b78dafa045b70b02b216263..926ab420c5cb9d58d8c39af2b4d56eeb0ea82efd 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Engine.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Engine.java @@ -1,21 +1,19 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "engine") +@Entity public class Engine extends System implements Serializable { /** * Ob ein Crew mitglied das System stärkt */ - @DatabaseField(columnName = "manned") @NonNull private boolean manned = false; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java index 7cf0fe03e7279e8a85a83666021109d7dd368fd3..f97cbaab0a4bd0be65784ffd8e547c35b7d62633 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java @@ -1,26 +1,33 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; -import com.j256.ormlite.field.DatabaseField; import lombok.*; +import javax.persistence.Entity; +import javax.persistence.Id; import java.io.Serializable; @Getter @Setter +@Entity public abstract class Room implements Serializable { + /** + * ID + */ + @Id + @NonNull + private int id; + /** * Höhe des Raumes. Räume sind immer rechteckig. */ - @DatabaseField(columnName = "height") @NonNull private int height; /** * Weite des Raumes. Räume sind immer rechteckig. */ - @DatabaseField(columnName = "width") @NonNull private int width; @@ -28,24 +35,20 @@ public abstract class Room implements Serializable { * Wenn ein Raum Schaden kriegt kann ein Loch entstehen. * Die Zahl ist der Wert wie lange dieses repariert werden muss um geschlossen zu werden. */ - @DatabaseField(columnName = "breach") @NonNull private int breach; /** * Der Sauerstoffgehalt des Raumes */ - @DatabaseField(columnName = "oxygen") @NonNull private int oxygen; /** X position */ @NonNull - @DatabaseField(columnName = "posX") private int posX; /** Y position */ @NonNull - @DatabaseField(columnName = "posY") private int posY; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Shield.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Shield.java index 0aae955a8a4c8cf4d9080c8a421d58a9bfd2c1d3..6123d64af944f0a2854050d472c130d7b9570299 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Shield.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Shield.java @@ -1,21 +1,19 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @Getter @Setter @RequiredArgsConstructor(access = AccessLevel.PUBLIC) -@DatabaseTable(tableName = "shield") +@Entity public class Shield extends System implements Serializable { /** * Ob ein Crewmitglied das System stärkt */ - @DatabaseField(columnName = "manned") @NonNull private boolean manned = false; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java index cb03eed2508c80bf68d99aca24491fe7ee6a98b8..247b142d0e50d472fcae85cf462fd6d083609b9e 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/System.java @@ -1,51 +1,43 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; -import com.badlogic.gdx.scenes.scene2d.ui.List; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; -import com.j256.ormlite.field.DatabaseField; import lombok.*; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; import java.io.Serializable; +import java.util.List; @Getter @Setter +@Entity public abstract class System extends Room implements Serializable { - /** - * ID - */ - @DatabaseField(columnName = "ID", id = true) - @NonNull - private int id; - /** * A system's energy level */ - @DatabaseField(columnName = "energy") @NonNull private int energy; /** * Maximum energy a system can take */ - @DatabaseField(columnName = "maxEnergy") @NonNull private int maxEnergy; /** * Damage the system has taken */ - @DatabaseField(columnName = "damage") @NonNull private int damage; /** Crew in this system */ - @DatabaseField(foreign = true, columnName = "crew") @NonNull + @OneToMany private List<Crew> crew; /** Whether or not the system is disabled */ - @DatabaseField(columnName = "disabled") @NonNull private boolean disabled = false; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java index 5a0348473af8d8369d378e5139433af21d2dc73c..04622e6a4e888aaf62bfb9c81ee20efa9b931b7d 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java @@ -1,24 +1,26 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; -import com.badlogic.gdx.scenes.scene2d.ui.List; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; -@DatabaseTable(tableName = "weaponSystem") +import javax.persistence.ElementCollection; +import javax.persistence.Entity; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import java.util.List; + @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter +@Entity public class WeaponSystem extends System { /** whether or not its manned */ @NonNull - @DatabaseField(columnName = "manned") private boolean manned = false; /** List of weapons this ship has */ - @DatabaseField(foreign = true,columnName = "shipWeapons") + @OneToMany private List<Weapon> shipWeapons; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java index 93448a58c7b4b56b3daf54c0b3181d5ae0b2ee0e..bc0748dcd89b62291c83caafbe22e742e0a56271 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java @@ -2,8 +2,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Model; import lombok.*; -import javax.persistence.Entity; -import javax.persistence.Id; +import javax.persistence.*; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @@ -11,6 +10,9 @@ import java.io.Serializable; @Getter @Setter @Entity +@NamedQueries({ + @NamedQuery(name = "User.getByUsername",query = "select u from User u where u.username =: username") +}) public class User implements Serializable { /** @@ -23,6 +25,7 @@ public class User implements Serializable { /** * The user's ship */ + @OneToOne private Ship userShip; /** Whether or not the user is logged in */ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Bomb.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Bomb.java index b1191f1fefb02f63a7f4969c5dbf627f71f04e05..f5b5695f6c2f81a78a47a2948e9c74e11606d7f6 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Bomb.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Bomb.java @@ -1,20 +1,18 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "bomb") +@Entity public class Bomb extends Weapon implements Serializable { /** Weapon name */ - @DatabaseField(columnName = "bombWeaponName") @NonNull private String name; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/HealBomb.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/HealBomb.java index 57a69f7a86346352e81374bfbac0e5093433bac6..c090f1d631e3fa78d417b79e09db8598c716df7e 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/HealBomb.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/HealBomb.java @@ -1,20 +1,20 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "healBombWeapon") +@Entity public class HealBomb extends Weapon implements Serializable { - /** Weapon name */ - @DatabaseField(columnName = "healBombWeaponName") + /** + * Weapon name + */ @NonNull private String name; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/LaserBlaster.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/LaserBlaster.java index b7ac04b158e137f151bed767225046b46a0d4f40..b16e8b20817f187513f5524f631e7790567c7603 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/LaserBlaster.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/LaserBlaster.java @@ -1,20 +1,18 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "laserBlasterWeapon") +@Entity public class LaserBlaster extends Weapon implements Serializable { /** Weapon name */ - @DatabaseField(columnName = "laserWeaponName") @NonNull private String name; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/RadiationBomb.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/RadiationBomb.java index 195072af94ffa6b1ec2b6e0f89de8fe7fe39b363..74353550320f7eca15e7f76da6bbc1aab567c4b0 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/RadiationBomb.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/RadiationBomb.java @@ -1,20 +1,18 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "radiationBomb") +@Entity public class RadiationBomb extends Weapon implements Serializable { /** Weapon name */ - @DatabaseField(columnName = "radiationBombName") @NonNull private String name; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Radio.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Radio.java index 787cb13e9a6e685aa3a3f6cf8e18eac38bb650b1..517a7eb35af7b7c9b2ff79210046190e9ed4e944 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Radio.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Radio.java @@ -1,20 +1,18 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @Getter @Setter @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) -@DatabaseTable(tableName = "radioWeapon") +@Entity public class Radio extends Weapon implements Serializable { /** Weapon name */ @NonNull - @DatabaseField(columnName = "radioWeaponName") private String name; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Rocket.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Rocket.java index f3aa5c0e8be988e83d844531a579e506d11dd635..7040ee5d27c069bc9dc4eb015d33d2844806369d 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Rocket.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Rocket.java @@ -1,20 +1,18 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.Entity; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "rocketWeapon") +@Entity public class Rocket extends Weapon implements Serializable { /** Weapon name */ - @DatabaseField(columnName = "rocketWeaponName") @NonNull private String weaponName; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java index e3026834f7df8cf440f8165dfdf61b0323baebd3..d251c9bea88ff51205963a0c5d45afb31e044fe9 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Weapons/Weapon.java @@ -1,101 +1,90 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons; -import com.galaxytrucker.galaxytruckerreloaded.Model.Ship; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.System; -import com.j256.ormlite.field.DatabaseField; import lombok.*; +import javax.persistence.*; import java.io.Serializable; @Getter @Setter +@Entity public abstract class Weapon implements Serializable { /** * ID */ - @DatabaseField(id = true, columnName = "ID") @NonNull + @Id private int id; /** Weapon level */ @NonNull - @DatabaseField(columnName = "weaponLevel") private int weaponLevel; /** * Weapon damage */ @NonNull - @DatabaseField(columnName = "damage") private int damage; /** * Amount of rounds for the weapon to be used again */ @NonNull - @DatabaseField(columnName = "cooldown") private int cooldown; /** * Weapon energy */ @NonNull - @DatabaseField(columnName = "energy") private int energy; /** * Amount of missiles spent per attack */ @NonNull - @DatabaseField(columnName = "missleCost") private int missileCost; /** * Weapon accuracy */ @NonNull - @DatabaseField(columnName = "accuracy") private float precision; /** * probability of randomly finding this weapon */ @NonNull - @DatabaseField(columnName = "dropChance") private float dropChance; /** * Amount of shield bars this Weapon can ignore */ @NonNull - @DatabaseField(columnName = "shieldPiercing") private int shieldPiercing; /** * Probability of causing a breach in the section on hit */ @NonNull - @DatabaseField(columnName = "breachChance") private float breachChance; /** * Damage taken by crew in the hit section */ @NonNull - @DatabaseField(columnName = "crewDamage") private int crewDamage; /** * How many projectiles are fired per burst */ @NonNull - @DatabaseField(columnName = "weaponBurst") private int burst; /** Weapon system this weapon belongs to */ - @DatabaseField(columnName = "weaponSystem",foreign = true) + @OneToOne private System weaponSystem; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java index 30012c2dfb41efd5f439ada57749e68186f929f6..c18bc10c5ed417a2738447b8f549b679f7f98d68 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java @@ -1,6 +1,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; +import com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.CrewNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateCrewException; @@ -60,13 +61,4 @@ public class CrewDAO extends ObjectDAO<Crew> { throw new CrewNotFoundException(); } } - - /** - * Constructor - * - * @param entityManager - the EntityManager - */ - public CrewDAO(EntityManager entityManager) { - this.entityManager = entityManager; - } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java index 42f5bc451d409279da0c8aaf49e8a181b7338e5b..7947b5ba8432b80684b28b24d28d9e037fa4a2f4 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java @@ -1,5 +1,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; +import com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database; + import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -8,7 +10,7 @@ public abstract class ObjectDAO<T> { /** EntityManager */ @PersistenceContext(name = "database") - public EntityManager entityManager; + public EntityManager entityManager = Database.getEntityManager(); /** * Save the object to the database diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java index fe6702a08e0923bd37a78987114d6fc25a48ce35..15cb1071d8bb5a114235829e1d4901afb5557b6c 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java @@ -3,13 +3,10 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Overworld; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateOverworldException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.OverworldNotFoundException; -import com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.ObjectDAO; -import com.j256.ormlite.dao.Dao; +import lombok.NonNull; -public class OverworldDAO extends ObjectDAO<Overworld> { - /** OverworldDAO */ - private Dao<Overworld,String> overworldDAO; +public class OverworldDAO extends ObjectDAO<Overworld> { /** * Add a new OverWorld to the database @@ -19,7 +16,15 @@ public class OverworldDAO extends ObjectDAO<Overworld> { */ @Override public void persist(Overworld o) throws DuplicateOverworldException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(o); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateOverworldException(); + } } /** @@ -30,7 +35,15 @@ public class OverworldDAO extends ObjectDAO<Overworld> { */ @Override public void remove(Overworld o) throws OverworldNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(o); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new OverworldNotFoundException(); + } } /** Get the overworld of a designated user @@ -38,6 +51,15 @@ public class OverworldDAO extends ObjectDAO<Overworld> { * @return the user's world map * @throws OverworldNotFoundException if the overworld couldn't be found */ public Overworld getOverworldByUser(String username) throws OverworldNotFoundException{ - return null; + try { + entityManager.getTransaction().begin(); + @NonNull Overworld o = entityManager.createNamedQuery("Overworld.getByUsername",Overworld.class).setParameter("name",username).getSingleResult(); + entityManager.getTransaction().commit(); + return o; + } + catch (Exception e){ + e.printStackTrace(); + throw new OverworldNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java index 7c2f42798813040ebd25cba1d9cad980138a4c2d..92b827ff4f93517376b423e5753aca38d10fecc0 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java @@ -3,13 +3,9 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Planet; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicatePlanetException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.PlanetNotFoundException; -import com.j256.ormlite.dao.Dao; public class PlanetDAO extends ObjectDAO<Planet> { - /** Planet DAO */ - private Dao<Planet,String> planetDAO; - /** * Add a new planet to the database * @@ -18,7 +14,15 @@ public class PlanetDAO extends ObjectDAO<Planet> { */ @Override public void persist(Planet p) throws DuplicatePlanetException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(p); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicatePlanetException(); + } } /** @@ -28,7 +32,15 @@ public class PlanetDAO extends ObjectDAO<Planet> { * @throws PlanetNotFoundException if the planet cannot be found in the database */ public void update(Planet p) throws PlanetNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(p); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new PlanetNotFoundException(); + } } /** @@ -39,6 +51,14 @@ public class PlanetDAO extends ObjectDAO<Planet> { */ @Override public void remove(Planet p) throws PlanetNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(p); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new PlanetNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java index 9fbbb566c1e7e5cbd9bb5934b02fd19f7ef73249..459d518e433943afd7e5867ef8015f893185f94b 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java @@ -3,14 +3,11 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateRoomException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.RoomNotFoundException; -import com.j256.ormlite.dao.Dao; + /** This class manages room objects in the database */ public class RoomDAO extends ObjectDAO<Room> { - /** RoomDAO */ - private Dao<Room,String> roomDAO; - /** * Add a new room to the database * @@ -19,7 +16,15 @@ public class RoomDAO extends ObjectDAO<Room> { */ @Override public void persist(Room r) throws DuplicateRoomException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(r); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateRoomException(); + } } /** @@ -29,7 +34,15 @@ public class RoomDAO extends ObjectDAO<Room> { * @throws RoomNotFoundException if the room cannot be found in the database */ public void update(Room r) throws RoomNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(r); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new RoomNotFoundException(); + } } /** @@ -40,6 +53,14 @@ public class RoomDAO extends ObjectDAO<Room> { */ @Override public void remove(Room r) throws RoomNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(r); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new RoomNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java index 2519a4893d7066ace3f3346ac1f3a76b6aca4b3b..19352c357ccf72af2fd947c249c879028151968e 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java @@ -3,25 +3,10 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Ship; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateShipException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.ShipNotFoundException; -import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.UserNotFoundException; -import com.j256.ormlite.dao.Dao; -import com.j256.ormlite.support.ConnectionSource; -public class ShipDAO extends ObjectDAO<Ship> { - - /** - * ShipDAO - */ - private Dao<Ship, String> shipDAO; +import lombok.NonNull; - /** - * Constructor - * - * @param source - the database connection source - */ - public ShipDAO(ConnectionSource source) { - - } +public class ShipDAO extends ObjectDAO<Ship> { /** * Add a new ship to the database @@ -30,14 +15,30 @@ public class ShipDAO extends ObjectDAO<Ship> { */ @Override public void persist(Ship s) throws DuplicateShipException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(s); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateShipException(); + } } /** Update a ship in the database * @param s - the ship to update * @throws ShipNotFoundException if the ship cannot be found in the database */ public void update(Ship s) throws ShipNotFoundException{ - + try { + entityManager.getTransaction().begin(); + entityManager.merge(s); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new ShipNotFoundException(); + } } /** @@ -45,8 +46,17 @@ public class ShipDAO extends ObjectDAO<Ship> { * * @param user - the ship's associated user */ - private Ship getShipByUser(String user) throws ShipNotFoundException, UserNotFoundException { - return null; + private Ship getShipByUser(String user) throws ShipNotFoundException { + try { + entityManager.getTransaction().begin(); + @NonNull Ship s = entityManager.createNamedQuery("Ship.getByUsername",Ship.class).setParameter("username",user).getSingleResult(); + entityManager.getTransaction().commit(); + return s; + } + catch (Exception e){ + e.printStackTrace(); + throw new ShipNotFoundException(); + } } /** @@ -56,6 +66,14 @@ public class ShipDAO extends ObjectDAO<Ship> { */ @Override public void remove(Ship s) throws ShipNotFoundException{ - + try { + entityManager.getTransaction().begin(); + entityManager.remove(s); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new ShipNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java index 0388a8396f3595af814f0fb4c64064370a4e843e..b91b19dae3f46503f38564ca6fe3b16b1846526c 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java @@ -3,16 +3,12 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Trader; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateTraderException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.TraderNotFoundException; -import com.j256.ormlite.dao.Dao; /** * This class handles trader objects in the database */ public class TraderDAO extends ObjectDAO<Trader> { - /** TraderDAO */ - private Dao<Trader,String> traderDAO; - /** * Add a new trader to the database * @@ -21,7 +17,15 @@ public class TraderDAO extends ObjectDAO<Trader> { */ @Override public void persist(Trader t) throws DuplicateTraderException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(t); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateTraderException(); + } } /** @@ -31,7 +35,15 @@ public class TraderDAO extends ObjectDAO<Trader> { * @throws TraderNotFoundException if the trader cannot be found in the database */ public void update(Trader t) throws TraderNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(t); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new TraderNotFoundException(); + } } /** @@ -42,6 +54,14 @@ public class TraderDAO extends ObjectDAO<Trader> { */ @Override public void remove(Trader t) throws TraderNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(t); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new TraderNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java index 45c79cb5ee04d0d9d1c60c4c4f2c7ff8bf838ae9..cf642be92bf0918aed8cbe228f60df345790a557 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java @@ -3,25 +3,10 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.User; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateUserException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.UserNotFoundException; -import com.j256.ormlite.dao.Dao; -import com.j256.ormlite.support.ConnectionSource; +import lombok.NonNull; public class UserDAO extends ObjectDAO<User> { - /** - * UserDAO - */ - private Dao<User, String> userDAO; - - /** - * Constructor - * - * @param source - database connection source - */ - public UserDAO(ConnectionSource source) { - - } - /** * Add a new user to the database * @@ -29,14 +14,31 @@ public class UserDAO extends ObjectDAO<User> { */ @Override public void persist(User u) throws DuplicateUserException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(u); + entityManager.getTransaction().commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new DuplicateUserException(); + } } - /** Update a user in the database + /** + * Update a user in the database + * * @param u - the user to update - * @throws UserNotFoundException if the user cannot be found in the database */ + * @throws UserNotFoundException if the user cannot be found in the database + */ public void update(User u) throws UserNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(u); + entityManager.getTransaction().commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new UserNotFoundException(); + } } /** @@ -45,7 +47,15 @@ public class UserDAO extends ObjectDAO<User> { * @param username - the username of the user */ private User getUserByUsername(String username) throws UserNotFoundException { - return null; + try { + entityManager.getTransaction().begin(); + @NonNull User u = entityManager.createNamedQuery("User.getByUsername",User.class).setParameter("username",username).getSingleResult(); + entityManager.getTransaction().commit(); + return u; + } catch (Exception e) { + e.printStackTrace(); + throw new UserNotFoundException(); + } } /** @@ -55,7 +65,14 @@ public class UserDAO extends ObjectDAO<User> { */ @Override public void remove(User u) throws UserNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(u); + entityManager.getTransaction().commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new UserNotFoundException(); + } } /** @@ -64,7 +81,8 @@ public class UserDAO extends ObjectDAO<User> { * @param username - the username of the user to delete */ private void removeUserByUsername(String username) throws UserNotFoundException { - + User u = getUserByUsername(username); + remove(u); } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java index 01872911dafc60294a4f189ffad06c05ceea6d29..d8cdeec9f061d899d0119ffc9dccbe6aaaa12402 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java @@ -3,16 +3,13 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateWeaponException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.WeaponNotFoundException; -import com.j256.ormlite.dao.Dao; + /** * This class manages weapons in the database */ public class WeaponDAO extends ObjectDAO<Weapon> { - /** WeaponDAO */ - private Dao<Weapon,String> weaponDAO; - /** * Add a new weapon to the database * @@ -21,7 +18,15 @@ public class WeaponDAO extends ObjectDAO<Weapon> { */ @Override public void persist(Weapon w) throws DuplicateWeaponException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(w); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateWeaponException(); + } } /** @@ -31,7 +36,15 @@ public class WeaponDAO extends ObjectDAO<Weapon> { * @throws WeaponNotFoundException if the weapon doesn't exist in the database */ public void update(Weapon w) throws WeaponNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(w); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new WeaponNotFoundException(); + } } /** @@ -42,7 +55,15 @@ public class WeaponDAO extends ObjectDAO<Weapon> { */ @Override public void remove(Weapon w) throws WeaponNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(w); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new WeaponNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java index 6fc08e4b2af9df28739ba517dfd04b93bdd121ba..3bcc4ce105e70d2f97b45a0c49ebe5819ccafa43 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Server.java @@ -1,6 +1,5 @@ package com.galaxytrucker.galaxytruckerreloaded.Server; -import com.j256.ormlite.support.ConnectionSource; import java.net.Socket; @@ -21,20 +20,9 @@ public class Server { } - /** Start serverServiceCommunicator - * @param source - the database connection source */ - private void startServerServiceCommunicator(ConnectionSource source){ - - } - /** Receive some data from the client and return a response * @param socket - the client socket */ private void receiveAndSendData(Socket socket){ } - /** Initialize database - * @return the database connection source */ - private ConnectionSource initializeDatabase(){ - return null; - } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ServerServiceCommunicator.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ServerServiceCommunicator.java index b6c0cdf2c4f588894162243b2f5cdc3955615b07..59ddc12cfbad4b698a080f3a44f1432c1d3f4e2e 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ServerServiceCommunicator.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/ServerServiceCommunicator.java @@ -1,7 +1,6 @@ package com.galaxytrucker.galaxytruckerreloaded.Server; import com.galaxytrucker.galaxytruckerreloaded.Model.Ship; -import com.j256.ormlite.support.ConnectionSource; import lombok.AccessLevel; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -9,9 +8,6 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) public class ServerServiceCommunicator { - /** Database connection source */ - @NonNull - private ConnectionSource databaseConnectionSource; /** Take a request from the client side, pass it through the services * and return a response diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Services/UserService.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Services/UserService.java index 7e7d70e12625d60d22265390bbc95214d1bf91fc..bfa05acd078cc161677fc64736b5a24f38e367aa 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Services/UserService.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Services/UserService.java @@ -4,7 +4,6 @@ import com.galaxytrucker.galaxytruckerreloaded.Model.User; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateUserException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.UserNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.UserDAO; -import com.j256.ormlite.support.ConnectionSource; public class UserService { @@ -53,15 +52,6 @@ public class UserService { public void removeUserByUsername(String username) throws UserNotFoundException { } - /** - * Constructor - * - * @param source - the database connections source - */ - public UserService(ConnectionSource source) { - - } - /** * Save game * diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java index 2443c7b911b791f6d4257bc21bf1c752600be112..4d91f5c23833197c81865562a46bddb020b053b6 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java @@ -9,6 +9,7 @@ import org.junit.Assert; import org.junit.Test; import javax.persistence.EntityManager; +import javax.xml.crypto.Data; import java.util.UUID; public class CrewDAOTest { @@ -22,7 +23,7 @@ public class CrewDAOTest { /** * CrewDAO */ - private CrewDAO crewDAO = new CrewDAO(entityManager); + private CrewDAO crewDAO = new CrewDAO(); /**