de.katho.kBorrow.interfaces

## Interface DbConnector

All Known Implementing Classes:
  SqlConnector, SqliteConnector

    public interface DbConnector

Dieses Interface definiert die Vorgaben für einen Datenbankkonnektor.

### Method Summary

All Methods Instance Methods Abstract Methods
`int` `createArticle(java.lang.String pName, java.lang.String pDesc)` Erstellt einen neuen Artikel mit dem übergebenen Namen und der übergebenen Beschreibung.
`int` `createNewLender(java.lang.String pLName, java.lang.String pLSurname, java.lang.String pLSN)` Erzeugt einen neuen Ausleiher mit den übergebenen Daten.
`int[]` `createNewLending(int pArtId, int pUId, int pLId, java.lang.String pStartDate, java.lang.String pEstEndDate)` Erstellt eine neue Ausleihe.
`int` `createUser(java.lang.String pName, java.lang.String pSurname)` Erzeugt einen neuen Benutzer mit dem übergebenen Vor- und Nachnamen.
`int` `deleteArticle(int id)` Löscht den Artikel mit der übergebenen ID.
`boolean` `deleteUser(int id)` Löscht den Benutzer mit der als Parameter übergebenen ID.
`int` `editArticle(int pId, java.lang.String pName, java.lang.String pDesc)` Setzt Name und Beschreibung des Artikels mit der übergebenen ID entsprechend.
`int` `editUser(int pId, java.lang.String pName, java.lang.String pSurname)` Bearbeitet den Benutzer mit der übergebenen ID und ändert ggf.
`java.util.ArrayList<KArticle>` `getArticleList()` Gibt die komplette Artikelliste als ArrayList zurück.
`java.util.ArrayList<KLender>` `getLenderList()` Gibt die komplette Ausleiher-Liste als ArrayList zurück.
`java.util.ArrayList<KLending>` `getLendingList()` Gibt die komplette Liste der Ausleihen als ArrayList zurück.
`java.util.ArrayList<KLending>` `getLendingListForArticle(int pArtId)` Gibt die Liste der Ausleihen für den Artikel mit der als Parameter übergebenen ID als ArrayList zurück.
`java.util.ArrayList<KUser>` `getUserList()` Gibt eine Liste aller Benutzer als ArrayList zurück.
`int` `returnLending(int lendingId, int artId, java.lang.String end_date)` Gibt eine Ausleihe zurück, indem ein End-Datum gesetzt wird und der Artikel wieder freigegeben wird.
`boolean` `rewriteToNewUser(int pOldId, int pNewId)` Schreibt alle Ausleihen von einem auf einen anderen Benutzer um.

### Method Detail

#### createUser

    int createUser(java.lang.String pName,
                   java.lang.String pSurname)

Erzeugt einen neuen Benutzer mit dem übergebenen Vor- und Nachnamen.

Gibt je nach Ergebnis einen anderen Statuscode als Int zurück:

- 0: Benutzer erfolgreich erzeugt.
- 1: SQL-Fehler beim Erzeugen.

Parameters:
  `pName` - Vorname.
  `pSurname` - Nachname.
Returns:
  Statuscode als Int.

#### getUserList

    java.util.ArrayList<KUser> getUserList()

Gibt eine Liste aller Benutzer als ArrayList zurück.

Returns:
  Liste aller Benutzer als ArrayList.

#### deleteUser

    boolean deleteUser(int id)

Löscht den Benutzer mit der als Parameter übergebenen ID.

Parameters:
  `id` - ID des Benutzers, der gelöscht werden soll.
Returns:
  True, wenn der Benutzer gelöscht werden konnte, andernfalls false.

#### editUser

    int editUser(int pId,
                 java.lang.String pName,
                 java.lang.String pSurname)

Bearbeitet den Benutzer mit der übergebenen ID und ändert ggf. Vor- und Nachname.

Gibt je nach Ergebnis einen anderen Statuscode als Int zurück:

- 0: Benutzer erfolgreich bearbeitet.
- 1: SQL-Fehler beim Bearbeiten.

Parameters:
  `pId` - ID des Benutzert, der bearbeitet werden soll.
  `pName` - (Neuer) Vorname.
  `pSurname` - (Neuer) Nachname.
Returns:
  Statuscode als Int.

#### getArticleList

    java.util.ArrayList<KArticle> getArticleList()

Gibt die komplette Artikelliste als ArrayList zurück.

Returns:
  Komplette Artikelliste als ArrayList.

#### createArticle

    int createArticle(java.lang.String pName,
                      java.lang.String pDesc)

Erstellt einen neuen Artikel mit dem übergebenen Namen und der übergebenen Beschreibung.

Je nach Ergebnis gibt die Funktion einen anderen Statuscode als Int zurück:

- 0: Artikel erfolgreich erstellt.
- 1: SQL-Fehler beim Erstellen.

Parameters:
  `pName` - Name des Artikels.
  `pDesc` - Beschreibung des Artikels.
Returns:
  Statuscode als Int.

#### deleteArticle

    int deleteArticle(int id)

Löscht den Artikel mit der übergebenen ID.

Je nach Ergebnis gibt die Funktion einen anderen Statuscode als Int zurück:

- 0: Artikel erfolgreich gelöscht.
- 1: SQL-Fehler beim Löschen

Parameters:
  `id` - ID des Artikels, der gelöscht werden soll.
Returns:
  Statuscode als Int.

#### editArticle

    int editArticle(int pId,
                    java.lang.String pName,
                    java.lang.String pDesc)

Setzt Name und Beschreibung des Artikels mit der übergebenen ID entsprechend.

Je nach Ergebnis gibt die Funktion einen anderen Statuscode als Int zurück:

- 0: Artikel erfolgreich gelöscht.
- 1: SQL-Fehler beim Bearbeiten.

Parameters:
  `pId` - ID des Artikels, der bearbeitet werden soll.
  `pName` - (Neuer) Name des Artikels.
  `pDesc` - (Neue) Beschreibung des Artikels.
Returns:
  Statuscode als Int.

#### getLenderList

    java.util.ArrayList<KLender> getLenderList()

Gibt die komplette Ausleiher-Liste als ArrayList zurück.

Returns:
  Komplette Ausleiher-Liste als ArrayList.

#### createNewLending

    int[] createNewLending(int pArtId,
                           int pUId,
                           int pLId,
                           java.lang.String pStartDate,
                           java.lang.String pEstEndDate)

Erstellt eine neue Ausleihe.

Gibt ein Int-Array der Länge 2 zurück. An erster Stelle steht der Rückgabestatus, an zweiter Stelle die ID der gerade erzeugten Tabellenzeile.

Die Statuscodes lauten:

- 0: Ausleihe konnte erfolgreich erzeugt werden.
- 1: SQL-Fehler beim Erstellen der Ausleihe.

Parameters:
  `pArtId` - ID des verliehenen Artikels.
  `pUId` - ID des ausleihenden Benutzers.
  `pLId` - ID des Ausleihers.
  `pStartDate` - Startdatum der Ausleihe.
  `pEstEndDate` - Voraussichtliches Enddatum der Ausleihe.
Returns:
  Statuscode als Int.

#### createNewLender

    int createNewLender(java.lang.String pLName,
                        java.lang.String pLSurname,
                        java.lang.String pLSN)

Erzeugt einen neuen Ausleiher mit den übergebenen Daten.

Je nach Ergebnis gibt die Funktion einen anderen Statuscode als Int zurück:

- 0: Artikel erfolgreich gelöscht.
- 1: SQL-Fehler beim Erstellen.

Parameters:
  `pLName` - Vorname des neuen Ausleihers.
  `pLSurname` - Nachname des neuen Ausleihers.
  `pLSN` - Matrikelnummer des neuen Ausleihers.
Returns:
  Statuscode als Int.

#### returnLending

    int returnLending(int lendingId,
                      int artId,
                      java.lang.String end_date)

Gibt eine Ausleihe zurück, indem ein End-Datum gesetzt wird und der Artikel wieder freigegeben wird.

Je nach Ergebnis gibt die Funktion einen anderen Statuscode als Int zurück:

- 0: Artikel erfolgreich gelöscht.
- 1: SQL-Fehler beim Umtragen.

Parameters:
  `lendingId` - ID der Ausleihe, die zurückgegeben werden soll.
  `artId` - ID des Artikels, der freigegeben werden soll.
  `end_date` - ID des Rückgabedatums.
Returns:
  Statuscode als Int.

#### getLendingList

    java.util.ArrayList<KLending> getLendingList()

Gibt die komplette Liste der Ausleihen als ArrayList zurück.

Returns:
  Die komplette Liste der Ausleihen als ArrayList.

#### getLendingListForArticle

    java.util.ArrayList<KLending> getLendingListForArticle(int pArtId)

Gibt die Liste der Ausleihen für den Artikel mit der als Parameter übergebenen ID als ArrayList zurück.

Parameters:
  `pArtId` - ID der Artikels, für den die Ausleihen zurückgegeben werden sollen.
Returns:
  Liste der Ausleihen des Artikels mit der als Parameter übergebenen ID.

#### rewriteToNewUser

    boolean rewriteToNewUser(int pOldId,
                             int pNewId)

Schreibt alle Ausleihen von einem auf einen anderen Benutzer um.

Parameters:
  `pOldId` - ID des alten Benutzers.
  `pNewId` - ID des Benutzers, auf den die Ausleihen umgeschrieben werden sollen.
Returns:
  True, wenn erfolgreich umgeschrieben werden konnte, andernfalls false.