From 64773918c0eb346be28c5290a9186b6eaa34bcbe Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Fri, 09 Mar 2018 07:04:40 +0000
Subject: [PATCH] Abspieler aendern und loeschen
---
src/java/de/uhilger/radiozentrale/api/AbspielerApi.java | 44 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 39 insertions(+), 5 deletions(-)
diff --git a/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java b/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
index 64d52e0..03a4d25 100644
--- a/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
+++ b/src/java/de/uhilger/radiozentrale/api/AbspielerApi.java
@@ -33,14 +33,16 @@
private static final Logger logger = Logger.getLogger(AbspielerApi.class.getName());
public static final String KEY_ABSPIELER_ID = "abs_id";
+ public static final String ABSPIELER_SELECTED = "selected";
public static final String SQL_GET_ABSPIELER = "getAbspieler";
+ public static final String SQL_UNSEL_ABSPIELER = "unselectAbspieler";
/**
- * TODO selected bei anderen Abspielern entfernen, wenn der neue Abspieler
- * selected sein soll
- * @param abspieler
- * @return
+ * Einen neuen Abspieler in der Datenbank speichern
+ *
+ * @param abspieler der neue Abspieler
+ * return der Abspieler nach dem Speichern (mit ID)
*/
public Abspieler neuerAbspieler(Abspieler abspieler) {
Abspieler neuerAbspieler = null;
@@ -49,8 +51,11 @@
db.startTransaction(c);
int nextKey = getNextId(db, KEY_ABSPIELER_ID);
if(nextKey > -1) {
+ if(abspieler.getZustand().equals(ABSPIELER_SELECTED)) {
+ db.execute(getSql(SQL_UNSEL_ABSPIELER), "", ABSPIELER_SELECTED);
+ }
abspieler.setId(nextKey);
- Object o = getDb().insert(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+ Object o = db.insert(abspieler, getMapper(Initialiser.MP_ABSPIELER));
if(o instanceof Abspieler) {
neuerAbspieler = (Abspieler) o;
db.commit(c);
@@ -66,6 +71,35 @@
return neuerAbspieler;
}
+ public Abspieler abspielerAendern(Abspieler abspieler) {
+ Abspieler geaendert = null;
+ PersistenceManager db = getDb();
+ Connection c = db.getConnection();
+ db.startTransaction(c);
+ if(abspieler.getZustand().equals(ABSPIELER_SELECTED)) {
+ db.execute(getSql(SQL_UNSEL_ABSPIELER), "", ABSPIELER_SELECTED);
+ }
+ Object o = db.update(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+ if(o instanceof Abspieler) {
+ geaendert = (Abspieler) o;
+ db.commit(c);
+ logger.fine("Abspieler geaendert: " + abspieler.getId() + " " + abspieler.getName());
+ } else {
+ db.rollback(c);
+ }
+ return geaendert;
+ }
+
+ public Abspieler abspielerLoeschen(Abspieler abspieler) {
+ Abspieler geloescht = null;
+ Object o = getDb().delete(abspieler, getMapper(Initialiser.MP_ABSPIELER));
+ if(o instanceof Abspieler) {
+ geloescht = (Abspieler) o;
+ logger.fine("Abspieler geloescht: " + abspieler.getId() + " " + abspieler.getName());
+ }
+ return geloescht;
+ }
+
public List abspielerliste() {
return getDb().select(getSql(SQL_GET_ABSPIELER), getMapper(Initialiser.MP_ABSPIELER));
}
--
Gitblit v1.9.3