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

added persistence package

parent 63bbf9ed
No related branches found
No related tags found
No related merge requests found
Showing
with 49 additions and 19 deletions
File added
...@@ -32,4 +32,12 @@ public class OverworldDAO extends ObjectDAO<Overworld> { ...@@ -32,4 +32,12 @@ public class OverworldDAO extends ObjectDAO<Overworld> {
public void remove(Overworld o) throws OverworldNotFoundException { public void remove(Overworld o) throws OverworldNotFoundException {
} }
/** Get the overworld of a designated user
* @param username - the user whose world map to get
* @return the user's world map
* @throws OverworldNotFoundException if the overworld couldn't be found */
public Overworld getOverworldByUser(String username) throws OverworldNotFoundException{
return null;
}
} }
...@@ -3,10 +3,14 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; ...@@ -3,10 +3,14 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence;
import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room;
import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateRoomException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateRoomException;
import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.RoomNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.RoomNotFoundException;
import com.j256.ormlite.dao.Dao;
/** This class manages room objects in the database */ /** This class manages room objects in the database */
public class RoomDAO extends ObjectDAO<Room> { public class RoomDAO extends ObjectDAO<Room> {
/** RoomDAO */
private Dao<Room,String> roomDAO;
/** /**
* Add a new room to the database * Add a new room to the database
* *
...@@ -24,7 +28,7 @@ public class RoomDAO extends ObjectDAO<Room> { ...@@ -24,7 +28,7 @@ public class RoomDAO extends ObjectDAO<Room> {
* @param r - the room to edit * @param r - the room to edit
* @throws RoomNotFoundException if the room cannot be found in the database * @throws RoomNotFoundException if the room cannot be found in the database
*/ */
public void edit(Room r) throws RoomNotFoundException { public void update(Room r) throws RoomNotFoundException {
} }
......
...@@ -3,12 +3,16 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; ...@@ -3,12 +3,16 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence;
import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Trader; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Trader;
import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateTraderException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateTraderException;
import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.TraderNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.TraderNotFoundException;
import com.j256.ormlite.dao.Dao;
/** /**
* This class handles trader objects in the database * This class handles trader objects in the database
*/ */
public class TraderDAO extends ObjectDAO<Trader> { public class TraderDAO extends ObjectDAO<Trader> {
/** TraderDAO */
private Dao<Trader,String> traderDAO;
/** /**
* Add a new trader to the database * Add a new trader to the database
* *
...@@ -26,7 +30,7 @@ public class TraderDAO extends ObjectDAO<Trader> { ...@@ -26,7 +30,7 @@ public class TraderDAO extends ObjectDAO<Trader> {
* @param t - the trader to edit * @param t - the trader to edit
* @throws TraderNotFoundException if the trader cannot be found in the database * @throws TraderNotFoundException if the trader cannot be found in the database
*/ */
public void edit(Trader t) throws TraderNotFoundException { public void update(Trader t) throws TraderNotFoundException {
} }
......
...@@ -11,7 +11,7 @@ public class UserDAO extends ObjectDAO<User> { ...@@ -11,7 +11,7 @@ public class UserDAO extends ObjectDAO<User> {
/** /**
* UserDAO * UserDAO
*/ */
private Dao<User, String> userDao; private Dao<User, String> userDAO;
/** /**
* Constructor * Constructor
......
...@@ -3,12 +3,16 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; ...@@ -3,12 +3,16 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence;
import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon;
import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateWeaponException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateWeaponException;
import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.WeaponNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.WeaponNotFoundException;
import com.j256.ormlite.dao.Dao;
/** /**
* This class manages weapons in the database * This class manages weapons in the database
*/ */
public class WeaponDAO extends ObjectDAO<Weapon> { public class WeaponDAO extends ObjectDAO<Weapon> {
/** WeaponDAO */
private Dao<Weapon,String> weaponDAO;
/** /**
* Add a new weapon to the database * Add a new weapon to the database
* *
...@@ -26,7 +30,7 @@ public class WeaponDAO extends ObjectDAO<Weapon> { ...@@ -26,7 +30,7 @@ public class WeaponDAO extends ObjectDAO<Weapon> {
* @param w - the weapon to edit * @param w - the weapon to edit
* @throws WeaponNotFoundException if the weapon doesn't exist in the database * @throws WeaponNotFoundException if the weapon doesn't exist in the database
*/ */
public void edit(Weapon w) throws WeaponNotFoundException { public void update(Weapon w) throws WeaponNotFoundException {
} }
......
desktop/out/production/resources/badlogic.jpg

66.9 KiB

...@@ -16,12 +16,7 @@ ...@@ -16,12 +16,7 @@
\begin{document} \begin{document}
\newcommand\documentTitle{Architekturbeschreibung} \newcommand\documentTitle{Architekturbeschreibung}
\begin{minipage}[H]{\textwidth}
\vfill
\centering
\includegraphics[scale=0.2]{Logo/Logo.PNG}
\end{minipage}
\vfill
\swpdocument{Karsten Hölscher}{31. Mai 2020}{1.0}% \swpdocument{Karsten Hölscher}{31. Mai 2020}{1.0}%
{Fabian Kehlenbeck & fkehlenb@tzi.de}% {Fabian Kehlenbeck & fkehlenb@tzi.de}%
...@@ -1217,6 +1212,23 @@ Es werden alle Daten und Befehle vom Frontend (Interface/View) ins Backend weite ...@@ -1217,6 +1212,23 @@ Es werden alle Daten und Befehle vom Frontend (Interface/View) ins Backend weite
\end{figure} \end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Pakete} \label{sec:pakete}
\subsection{Persistenz}
Das folgende Diagramm beschreibt unsere Persistenz. Persistenz Klassen werden dazu genutzt daten in der Datenbank zu speichern, verändern und löschen. Zu jedem im Spiel vorkommenden Objekt, bzw zu der Klasse aus dem das Objekt stammt, muss es ein so gennantes Data Access Object geben (kurz DAO), um diese in der Datenbank verwalten zu können.
Da viele von den DAOs die gleichen Funktionen haben, werden sie alle von einer Oberklasse ObjectDAO erben. ObjectDAO hat in sich drin auch eine Variable, welche die Verbundung zur Datenbank herstellt. Hiermit können so auch alle anderen DAOs auf die Datenbank zugreifen. Da wir ORMLite benutzen, wird auch jede unterklasse eine Variable des Typs Dao haben, welche zur abspeicherung der Daten verwendet wird. Um Daten abzuspeichern, wird die Methode persist(T) benutzt. Um daten zu löschen remove(T). Da manche Objekte in der Datenbank nicht verändert werden müssen (z.B. die Weltkarte), wird es keine Methode in der Oberklasse zum Updaten der Daten geben, sondern in jeder Unterklasse welche diese benötigt.
\begin{figure}[h!]
\begin{center}
\includegraphics[width=\linewidth]{UML/PersistencePackage.pdf}
\caption{Persistenz}
\end{center}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Modulsicht} \label{sec:modulsicht} \section{Modulsicht} \label{sec:modulsicht}
{\itshape Diese Sicht beschreibt den statischen Aufbau des Systems mit Hilfe von {\itshape Diese Sicht beschreibt den statischen Aufbau des Systems mit Hilfe von
...@@ -1313,15 +1325,6 @@ anhand der Strategien erläutert werden.} ...@@ -1313,15 +1325,6 @@ anhand der Strategien erläutert werden.}
\end{center} \end{center}
\end{figure} \end{figure}
\subsection{Persistenz}
\begin{figure}[H]
\begin{center}
\includegraphics[width=\linewidth]{../GT_Modulsicht/src/Persistenz.pdf}
\caption{Das Datenmodell}
\end{center}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Datensicht} \label{sec:datensicht} \section{Datensicht} \label{sec:datensicht}
......
<mxfile host="app.diagrams.net" modified="2020-05-31T14:30:53.603Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36" etag="3Gld44FJTPROcGOVfXdR" version="13.1.11" type="device"><diagram id="VoNF1Vp0fhK8RiTlHOmJ" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
File added
...@@ -116,6 +116,12 @@ ...@@ -116,6 +116,12 @@
\end{center} \end{center}
\end{minipage} \end{minipage}
\vfill \vfill
\begin{minipage}[H]{\textwidth}
\vfill
\centering
\includegraphics[scale=0.2]{Logo/Logo.PNG}
\end{minipage}
\vfill
\begin{minipage}[H]{\textwidth} \begin{minipage}[H]{\textwidth}
\begin{center} \begin{center}
\sffamily \sffamily
......
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