ulrich
2018-03-09 64773918c0eb346be28c5290a9186b6eaa34bcbe
commit | author | age
98e5c6 1 /*
U 2  *  Radiozentrale - Webradio App
3  *  Copyright (C) 2018 Ulrich Hilger, http://uhilger.de
4  *
5  *  This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation, either version 3 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program.  If not, see http://www.gnu.org/licenses/
17  */
18
19 package de.uhilger.radiozentrale.api;
20
21 import de.uhilger.baselink.PersistenceManager;
22 import de.uhilger.radiozentrale.daten.Abspieler;
23 import de.uhilger.radiozentrale.web.Initialiser;
24 import java.sql.Connection;
b6585c 25 import java.util.List;
98e5c6 26 import java.util.logging.Logger;
U 27
28 /**
29  *
30  */
31 public class AbspielerApi extends DbApi {
32
33   private static final Logger logger = Logger.getLogger(AbspielerApi.class.getName());
34
35   public static final String KEY_ABSPIELER_ID = "abs_id";
647739 36   public static final String ABSPIELER_SELECTED = "selected";
b6585c 37   public static final String SQL_GET_ABSPIELER = "getAbspieler";
647739 38   public static final String SQL_UNSEL_ABSPIELER = "unselectAbspieler";
b6585c 39
98e5c6 40   
U 41   /**
647739 42    * Einen neuen Abspieler in der Datenbank speichern
U 43    * 
44    * @param abspieler der neue Abspieler
45    * return der Abspieler nach dem Speichern (mit ID)
98e5c6 46    */
U 47   public Abspieler neuerAbspieler(Abspieler abspieler) {
48     Abspieler neuerAbspieler = null;
49     PersistenceManager db = getDb();
50     Connection c = db.getConnection();
51     db.startTransaction(c);
52     int nextKey = getNextId(db, KEY_ABSPIELER_ID);
53     if(nextKey > -1) {
647739 54       if(abspieler.getZustand().equals(ABSPIELER_SELECTED)) {
U 55         db.execute(getSql(SQL_UNSEL_ABSPIELER), "", ABSPIELER_SELECTED);
56       }
98e5c6 57       abspieler.setId(nextKey);
647739 58       Object o = db.insert(abspieler, getMapper(Initialiser.MP_ABSPIELER));
98e5c6 59       if(o instanceof Abspieler) {
U 60         neuerAbspieler = (Abspieler) o;
61         db.commit(c);
62         logger.fine("Abspieler erstellt: " + abspieler.getId() + " " + abspieler.getName());
63       } else {
64         db.rollback(c);
65         logger.info("Abspieler konnte nicht erstellt werden: " + abspieler.getName());
66       } 
67     } else {
68       db.rollback(c);
69       logger.info("Abspieler konnte nicht erstellt werden, nextKey ist -1");
70     }
b6585c 71     return neuerAbspieler;   
98e5c6 72   }
b6585c 73   
647739 74   public Abspieler abspielerAendern(Abspieler abspieler) {
U 75     Abspieler geaendert = null;
76     PersistenceManager db = getDb();
77     Connection c = db.getConnection();
78     db.startTransaction(c);
79     if(abspieler.getZustand().equals(ABSPIELER_SELECTED)) {
80       db.execute(getSql(SQL_UNSEL_ABSPIELER), "", ABSPIELER_SELECTED);
81     }
82     Object o = db.update(abspieler, getMapper(Initialiser.MP_ABSPIELER));
83     if(o instanceof Abspieler) {
84       geaendert = (Abspieler) o;
85       db.commit(c);
86       logger.fine("Abspieler geaendert: " + abspieler.getId() + " " + abspieler.getName());
87     } else {
88       db.rollback(c);
89     }
90     return geaendert;
91   }
92   
93   public Abspieler abspielerLoeschen(Abspieler abspieler) {
94     Abspieler geloescht = null;
95     Object o = getDb().delete(abspieler, getMapper(Initialiser.MP_ABSPIELER));
96     if(o instanceof Abspieler) {
97       geloescht = (Abspieler) o;
98       logger.fine("Abspieler geloescht: " + abspieler.getId() + " " + abspieler.getName());
99     }
100     return geloescht;
101   }
102   
b6585c 103   public List abspielerliste() {
U 104     return getDb().select(getSql(SQL_GET_ABSPIELER), getMapper(Initialiser.MP_ABSPIELER));
105   }
106   
98e5c6 107 }