Skip to content
Snippets Groups Projects
Commit 5c265576 authored by Leonard Haddad's avatar Leonard Haddad :rocket:
Browse files

Merge branch 'model' into 'master'

added diagrams

See merge request reswp-2020/galaxytrucker!28
parents 5343c061 4b7577c6
No related branches found
No related tags found
No related merge requests found
Showing
with 70 additions and 23 deletions
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.*;
......@@ -37,7 +39,7 @@ public class Planet implements Serializable {
*/
@DatabaseField(columnName = "event", foreign = true)
@NonNull
private PlanetEvent event;
private Enum<PlanetEvent> event;
/**
* If already discovered set to true
......@@ -45,4 +47,9 @@ public class Planet implements Serializable {
@DatabaseField(columnName = "discovered")
@NonNull
private boolean discovered = false;
/** Ships at this planet */
@DatabaseField(foreign = true, columnName = "ships")
@NonNull
private List<Ship> ships;
}
......@@ -3,6 +3,7 @@ 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;
......@@ -103,12 +104,7 @@ public class Ship implements Serializable {
/** This ship's systems */
@NonNull
@DatabaseField(columnName = "systems",foreign = true)
private List<System> systems;
/** List of crew */
@NonNull
@DatabaseField(foreign = true,columnName = "crew")
private List<Crew> crew;
private List<Room> systems;
/** Inventory */
@NonNull
......
package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
import lombok.*;
@Getter
@Setter
@RequiredArgsConstructor(access = AccessLevel.PUBLIC)
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@DatabaseTable(tableName = "blankRoom")
public class BlankRoom extends Room {
/** ID */
@NonNull
@DatabaseField(id = true)
private int id;
}
......@@ -38,4 +38,14 @@ public abstract class Room implements Serializable {
@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;
}
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.*;
......@@ -36,4 +38,9 @@ public abstract class System extends Room implements Serializable {
@DatabaseField(columnName = "damage")
@NonNull
private int damage;
/** Crew in this system */
@DatabaseField(foreign = true, columnName = "crew")
@NonNull
private List<Crew> crew;
}
package com.galaxytrucker.galaxytruckerreloaded.Model.Weapons;
import com.galaxytrucker.galaxytruckerreloaded.Model.Ship;
import com.j256.ormlite.field.DatabaseField;
import lombok.*;
......@@ -15,7 +16,7 @@ public abstract class Weapon implements Serializable {
*/
@DatabaseField(id = true, columnName = "ID")
@NonNull
private int ID;
private int id;
/** Weapon level */
@NonNull
......@@ -92,4 +93,9 @@ public abstract class Weapon implements Serializable {
@DatabaseField(columnName = "weaponBurst")
private int burst;
/** Ship this weapon belongs to */
@NonNull
@DatabaseField(foreign = true, columnName = "associatedShip")
private Ship associatedShip;
}
......@@ -8,11 +8,6 @@ import com.j256.ormlite.support.ConnectionSource;
public class CrewDAO extends ObjectDAO<Crew> {
/**
* Database connection
*/
private ConnectionSource source;
/**
* Crew dao
*/
......
package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence;
import com.j256.ormlite.support.ConnectionSource;
/** Template for DAOs */
public abstract class ObjectDAO<T> {
/**
* Database connection
*/
private ConnectionSource source;
/**
* Save the object to the database
*
......
......@@ -4,9 +4,13 @@ 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;
public class OverworldDAO extends ObjectDAO<Overworld> {
/** OverworldDAO */
private Dao<Overworld,String> overworldDAO;
/**
* Add a new OverWorld to the database
*
......
......@@ -3,9 +3,13 @@ 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
*
......
......@@ -9,11 +9,6 @@ import com.j256.ormlite.support.ConnectionSource;
public class ShipDAO extends ObjectDAO<Ship> {
/**
* Database connection source
*/
private ConnectionSource source;
/**
* ShipDAO
*/
......
......@@ -8,11 +8,6 @@ import com.j256.ormlite.support.ConnectionSource;
public class UserDAO extends ObjectDAO<User> {
/**
* Database connection source
*/
private ConnectionSource source;
/**
* UserDAO
*/
......
package com.galaxytrucker.galaxytruckerreloaded.Server;
import com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database;
import com.galaxytrucker.galaxytruckerreloaded.Server.Services.CrewService;
import java.io.InputStream;
import java.io.OutputStream;
......
<mxfile host="app.diagrams.net" modified="2020-05-27T15:20:21.330Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" etag="LVy6xN6CRc7D_DMOXAaF" version="13.1.2" type="device"><diagram id="eSud1R6gVXv-HQVYPhv1" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
<mxfile host="app.diagrams.net" modified="2020-05-27T15:41:41.457Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" etag="muEOTpiCteKXb1eRQTGz" version="13.1.2" type="device"><diagram id="vfHjjWkVMplfIyUdYfi3" name="Page-1">7Vtdc+I2FP01zKQPMP7ABh4DJE3b6WympLPdvgl8A9qVLVcWAfrrKyHJ2LLJwiawhm0eEuvYvta9Ouf6SlZa/ihe/8xQuvidRkBanhOtW/645Ymfnif+SGSjkF7gKmDOcKSgAjDB/4IGHY0ucQRZ6UJOKeE4LYMzmiQw4yUMMUZX5cueKSk/NUVzqACTGSJV9COO+EKh/cDZ4Q+A5wvzZNfRZ2JkLtZAtkARXRUg/67ljxilXB3F6xEQGTwTF3Xf/Z6zeccYJPygG/4Y/H3/6deHj09T7ze4X6NfolVbW3lBZKkd1p3lGxMB0e9UHsrQAWv5w2ea8Ik+74p2lqIZTuZPNJWAIxCOpiZYbk8DeZS6GnikGeaYJgIi8CzODBc8Jtqm7hYwDuu9/rp5FAX9gMbA2UZcom9ou2aQDPV0c7UbR9cNNbgoDGLXkA9p8sxz47v4igMd4iPC7deEOyTS97QU9PCfpaTFMEZsjkWEbsVZJ12L39vYOApvcxlyea5bOCcixtuI4Lm+bybiJcYttymO5vrv9sm4AKBYGBySaut2mnGGhL4MWr6jZFBEBtsPmbIKYoAP089CuOPbD+UnPu01PrVNCSy1sQWTATXpxPju7g/DNw2AIm4+AlXb8tqMLtkM1GUjlaYE7ScKvQwXUmAZzvjN00/q0hcqaP5K10/XEwYxfYEDOmJlMZlKsEjrt0oY4610hlomJgEJy+yZbJP0M5bKVrlODYHr6fY9ijGROeUByAtIq++eu3w/KKUu36/JXYOa1OWeLHV1G5i68kwwYrBSGeRSk8RMe6D8pnHnsxeEHcpigjl0IkQ7Y0TLGVI63fJGE87E23dPYk6mWXo5QVimEeJwIx27bn23Xb9cm7g1AvedGoH3T6XvoMn6/iCivaKMRJctclp04wil5+5fj9z3lYVXJPKwe4DGg3NqPGyyxh8JSoBftsDT3Icj1K0c/1/aFyTtyvvbq9O2e05t95qs7ckCp5et7Ex7cISupdPXo+pCfS4d++4LAXPgsh/DzZ8ZsBsVZN0pFfirSzpeUF4UOLieON2iQL/RSWeTcYgvPO3kPhyTeLY3XU/q+QEKCnuu4A0O1PbJ6olBk6Utc/5lC3upPThC1tLp6xF1oZ6QjjWhnpD9UPVEgmIo1xQq+N/vi8drfftRFknrvoLUTrJOV/AYw4W0eLfmkERZJdgCvJUbEERrSujsiwiKgEwcQ9W830Z47NQFD6LK1gQrdLtvi1+bFnJBOOCvXOfXD0Xxe5P5VM6AII5fyn2ri7Q290ix6HU+rF3PetWF1mApn/RdxQ0NlqGg/xVDyumKoe3A5z6+gQvVzRMn4AKsMf9LHnccx9ftT/KyTugFuj1e6/u2jU2h8QgMCz/lvo2x877M6jaOWXnRZAhhF0eHMss25PfOzCzvwrJM2DgudIN3yjK2obwKPxcXqnuGms2FQfO4EFpcsOV8MBcsQ/653zjVTRjN5kLQPC703ukdYRs6+zui+sH+FNVHInqpyw83B1T90XUGBtgVINvWptg6YQnSbx697Jp08K30sgz5Nk9PTa/qt+InWPMKt+QSTpkyGWf0C4wooXLEE5qAnDIKdlmQmXbqRR9/aM9OYxxF8jHD1QJzmKRoy4UVQ3LSyugyiSAqcepNs83KS8LsvimwxCzSFeeanrOfI2+bah77RY/gBNqma3JdwJV9C/Yv7Mh5fK0leaKtloikHc+rW514VHtCISntYlU2j1invRoCVfab96sEcnvvwyDR3P3jgJL87t8v/Lv/AA==</diagram></mxfile>
\ No newline at end of file
doc/UML/Persistence.png

51.8 KiB

doc/UML/Untitled Diagram.png

118 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment