| | |
| | | |
| | | package de.uhilger.radiozentrale.api; |
| | | |
| | | import de.uhilger.baselink.GenericRecord; |
| | | import de.uhilger.baselink.PersistenceManager; |
| | | import de.uhilger.radiozentrale.daten.Sender; |
| | | import de.uhilger.radiozentrale.web.Initialiser; |
| | | import java.sql.Connection; |
| | | import java.util.List; |
| | | import java.util.logging.Logger; |
| | | |
| | | /** |
| | | * |
| | | */ |
| | | public class SenderApi extends Api { |
| | | public class SenderApi extends DbApi { |
| | | |
| | | private static final Logger logger = Logger.getLogger(SenderApi.class.getName()); |
| | | |
| | | public static final String SQL_GET_SENDER = "getSender"; |
| | | public static final String SQL_GET_NEXT_KEY = "getNextKey"; |
| | | public static final String SQL_INCREMENT_KEY = "incrementKey"; |
| | | |
| | | public static final String KEY_SENDER_ID = "sender_id"; |
| | | |
| | | |
| | | public Sender neuerSender(Sender sender) { |
| | | Sender neuerSender = null; |
| | | PersistenceManager db = getDb(); |
| | | Connection c = db.getConnection(); |
| | | List<List<String>> list = db.select(getSql(SQL_GET_NEXT_KEY), GenericRecord.WITHOUT_BLOBS, KEY_SENDER_ID); |
| | | if(list != null && list.size() > 1) { |
| | | int nextKey = Integer.parseInt(list.get(1).get(0)); // erster Datensatz ist Ueberschrift |
| | | db.startTransaction(c); |
| | | db.execute(getSql(SQL_INCREMENT_KEY), nextKey+1, KEY_SENDER_ID, nextKey); |
| | | db.startTransaction(c); |
| | | int nextKey = getNextId(db, KEY_SENDER_ID); |
| | | if(nextKey > -1) { |
| | | sender.setId(nextKey); |
| | | Object o = getDb().insert(sender, getMapper(Initialiser.MP_SENDER)); |
| | | if(o instanceof Sender) { |
| | | neuerSender = (Sender) o; |
| | | db.commit(c); |
| | | logger.fine("Sender erstellt: " + sender.getId() + " " + sender.getName()); |
| | | } else { |
| | | db.rollback(c); |
| | | logger.info("Sender konnte nicht erstellt werden: " + sender.getName()); |
| | | } |
| | | } else { |
| | | db.rollback(c); |
| | | logger.info("Sender konnte nicht erstellt werden, nextKey ist -1"); |
| | | } |
| | | return neuerSender; |
| | | } |
| | | |
| | | public Sender senderAendern(Sender sender) { |
| | | Sender geaendert = null; |
| | | Object o = getDb().update(sender, getMapper(Initialiser.MP_SENDER)); |
| | | if(o instanceof Sender) { |
| | | geaendert = (Sender) o; |
| | | logger.fine("Sender geaendert: " + sender.getId() + " " + sender.getName()); |
| | | } |
| | | return geaendert; |
| | | } |
| | | |
| | | public Sender senderLoeschen(Sender sender) { |
| | | Sender geloescht = null; |
| | | Object o = getDb().delete(sender, getMapper(Initialiser.MP_SENDER)); |
| | | if(o instanceof Sender) { |
| | | geloescht = (Sender) o; |
| | | logger.fine("Sender geloescht: " + sender.getId() + " " + sender.getName()); |
| | | } |
| | | return geloescht; |
| | | } |
| | | |
| | | public List senderliste() { |
| | | return getDb().select(getSql(SQL_GET_SENDER), getMapper(Initialiser.MP_SENDER)); |
| | | } |
| | | |
| | | } |