Skip to content
Snippets Groups Projects
Commit 4b7577c6 authored by Leonard's avatar Leonard
Browse files

added diagrams

parent 0ea84ca3
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