]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Testing jautodoc with ProgrammeCache
authorJan-Pascal van Best <janpascal@vanbest.org>
Wed, 18 Jul 2012 09:40:23 +0000 (11:40 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Wed, 18 Jul 2012 09:40:23 +0000 (11:40 +0200)
src/main/java/org/vanbest/xmltv/ProgrammeCache.java

index 64fe596805b0ac5de44b742cb0a54b0b2313b920..007ac91fd957c3c0f0266fa1d24d6d0ebe0fba19 100644 (file)
@@ -24,248 +24,309 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import org.apache.log4j.Logger;
 
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ProgrammeCache.
+ */
 public class ProgrammeCache {
-       private Connection db;
-       private Config config;
-       private PreparedStatement getStatement;
-       private PreparedStatement putStatement;
-       private PreparedStatement removeStatement;
-       private PreparedStatement clearStatement;
-       private PreparedStatement clearSourceStatement;
+    
+    /** The db. */
+    private Connection db;
+    
+    /** The config. */
+    private Config config;
+    
+    /** The get statement. */
+    private PreparedStatement getStatement;
+    
+    /** The put statement. */
+    private PreparedStatement putStatement;
+    
+    /** The remove statement. */
+    private PreparedStatement removeStatement;
+    
+    /** The clear statement. */
+    private PreparedStatement clearStatement;
+    
+    /** The clear source statement. */
+    private PreparedStatement clearSourceStatement;
 
-       private final static Integer SCHEMA_VERSION = 1;
-       private final static String SCHEMA_KEY = "TV_GRAB_NL_JAVA_SCHEMA_VERSION";
+    /** The Constant SCHEMA_VERSION. */
+    private final static Integer SCHEMA_VERSION = 1;
+    
+    /** The Constant SCHEMA_KEY. */
+    private final static String SCHEMA_KEY = "TV_GRAB_NL_JAVA_SCHEMA_VERSION";
 
-       static Logger logger = Logger.getLogger(ProgrammeCache.class);
+    /** The logger. */
+    static Logger logger = Logger.getLogger(ProgrammeCache.class);
 
-       public ProgrammeCache(Config config) {
-               this.config = config;
-               try {
-                       db = DriverManager.getConnection(config.cacheDbHandle,
-                                       config.cacheDbUser, config.cacheDbPassword);
-                       /*
-                        * Test for upgrade path from legacy database Statement stat =
-                        * db.createStatement(); .println("Dropping old table");
-                        * stat.execute("DROP TABLE IF EXISTS cache");
-                        * System.out.println("Creating new table"); stat.execute(
-                        * "CREATE CACHED TABLE IF NOT EXISTS cache (id VARCHAR(64) PRIMARY KEY, date DATE, programme OTHER)"
-                        * );
-                        */
-               } catch (SQLException e) {
-                       db = null;
-                       if (!config.quiet) {
-                               logger.warn("Unable to open cache database, proceeding without cache");
-                               logger.debug("Stack trace: ", e);
-                       }
-               }
-               boolean recreateTable = false;
-               if (db != null) {
-                       try {
-                               PreparedStatement stat = db
-                                               .prepareStatement("SELECT programme FROM cache WHERE source=? AND id=?");
-                               stat.setInt(1, 1);
-                               stat.setString(2, SCHEMA_KEY);
-                               ResultSet result = stat.executeQuery();
-                               if (!result.next()) {
-                                       logger.debug("No schema version found in database");
-                                       recreateTable = true;
-                               } else {
-                                       Integer currentSchema = (Integer) result
-                                                       .getObject("programme");
-                                       if (currentSchema < SCHEMA_VERSION) {
-                                               logger.debug("Current cache database schema version "
-                                                               + currentSchema + " is lower than my version "
-                                                               + SCHEMA_VERSION);
-                                               recreateTable = true;
-                                       } else if (currentSchema > SCHEMA_VERSION) {
-                                               logger.warn("Got a database schema from the future, since my version is "
-                                                               + SCHEMA_VERSION
-                                                               + " and yours is "
-                                                               + currentSchema);
-                                               recreateTable = true;
-                                       }
+    /**
+     * Instantiates a new programme cache.
+     *
+     * @param config the config
+     */
+    public ProgrammeCache(Config config) {
+        this.config = config;
+        try {
+            db = DriverManager.getConnection(config.cacheDbHandle,
+                    config.cacheDbUser, config.cacheDbPassword);
+            /*
+             * Test for upgrade path from legacy database Statement stat =
+             * db.createStatement(); .println("Dropping old table");
+             * stat.execute("DROP TABLE IF EXISTS cache");
+             * System.out.println("Creating new table"); stat.execute(
+             * "CREATE CACHED TABLE IF NOT EXISTS cache (id VARCHAR(64) PRIMARY KEY, date DATE, programme OTHER)"
+             * );
+             */
+        } catch (SQLException e) {
+            db = null;
+            if (!config.quiet) {
+                logger.warn("Unable to open cache database, proceeding without cache");
+                logger.debug("Stack trace: ", e);
+            }
+        }
+        boolean recreateTable = false;
+        if (db != null) {
+            try {
+                PreparedStatement stat = db
+                        .prepareStatement("SELECT programme FROM cache WHERE source=? AND id=?");
+                stat.setInt(1, 1);
+                stat.setString(2, SCHEMA_KEY);
+                ResultSet result = stat.executeQuery();
+                if (!result.next()) {
+                    logger.debug("No schema version found in database");
+                    recreateTable = true;
+                } else {
+                    Integer currentSchema = (Integer) result
+                            .getObject("programme");
+                    if (currentSchema < SCHEMA_VERSION) {
+                        logger.debug("Current cache database schema version "
+                                + currentSchema + " is lower than my version "
+                                + SCHEMA_VERSION);
+                        recreateTable = true;
+                    } else if (currentSchema > SCHEMA_VERSION) {
+                        logger.warn("Got a database schema from the future, since my version is "
+                                + SCHEMA_VERSION
+                                + " and yours is "
+                                + currentSchema);
+                        recreateTable = true;
+                    }
 
-                               }
-                               stat.close();
-                       } catch (SQLException e) {
-                               if (!config.quiet) {
-                                       logger.warn("Got SQL exception when trying to find current database schema");
-                                       logger.debug("Stack trace", e);
-                               }
-                               recreateTable = true;
-                       }
-                       if (recreateTable) {
-                               logger.info("Unknown cache schema, removing and recreating cache");
-                               try {
-                                       Statement stat = db.createStatement();
-                                       // System.out.println("Dropping old table");
-                                       stat.execute("DROP TABLE IF EXISTS cache");
-                                       // System.out.println("Creating new table");
-                                       stat.execute("CREATE CACHED TABLE IF NOT EXISTS cache (source INTEGER, id VARCHAR(64), date DATE, programme OTHER, PRIMARY KEY (source,id))");
-                                       stat.close();
+                }
+                stat.close();
+            } catch (SQLException e) {
+                if (!config.quiet) {
+                    logger.warn("Got SQL exception when trying to find current database schema");
+                    logger.debug("Stack trace", e);
+                }
+                recreateTable = true;
+            }
+            if (recreateTable) {
+                logger.info("Unknown cache schema, removing and recreating cache");
+                try {
+                    Statement stat = db.createStatement();
+                    // System.out.println("Dropping old table");
+                    stat.execute("DROP TABLE IF EXISTS cache");
+                    // System.out.println("Creating new table");
+                    stat.execute("CREATE CACHED TABLE IF NOT EXISTS cache (source INTEGER, id VARCHAR(64), date DATE, programme OTHER, PRIMARY KEY (source,id))");
+                    stat.close();
 
-                                       // System.out.println("Writing new schema version to database");
-                                       PreparedStatement stat2 = db
-                                                       .prepareStatement("INSERT INTO cache VALUES (?,?,?,?)");
+                    // System.out.println("Writing new schema version to database");
+                    PreparedStatement stat2 = db
+                            .prepareStatement("INSERT INTO cache VALUES (?,?,?,?)");
 
-                                       stat2.setInt(1, 1);
-                                       stat2.setString(2, SCHEMA_KEY);
-                                       stat2.setDate(3, new java.sql.Date(new java.util.Date(2100,
-                                                       11, 31).getTime()));
-                                       stat2.setObject(4, SCHEMA_VERSION);
-                                       // System.out.println(stat2.toString());
-                                       stat2.executeUpdate();
-                               } catch (SQLException e) {
-                                       if (!config.quiet) {
-                                               logger.warn("Unable to create cache database, proceeding without cache");
-                                               logger.debug("stack trace: ", e);
-                                       }
-                                       db = null;
-                               }
-                       }
-                       try {
-                               // System.out.println("Preparing statements");
-                               getStatement = db
-                                               .prepareStatement("SELECT programme FROM cache WHERE source=? AND id=?");
-                               putStatement = db
-                                               .prepareStatement("INSERT INTO cache VALUES (?,?,?,?)");
-                               removeStatement = db
-                                               .prepareStatement("DELETE FROM cache WHERE source=? AND id=?");
-                               clearStatement = db.prepareStatement("DELETE FROM cache");
-                               clearSourceStatement = db
-                                               .prepareStatement("DELETE FROM cache WHERE source=?");
-                       } catch (SQLException e) {
-                               if (!config.quiet) {
-                                       logger.warn("Unable to prepare statements, proceeding without cache");
-                                       logger.debug("stack trace: ", e);
-                               }
-                               db = null;
-                       }
+                    stat2.setInt(1, 1);
+                    stat2.setString(2, SCHEMA_KEY);
+                    stat2.setDate(3, new java.sql.Date(new java.util.Date(2100,
+                            11, 31).getTime()));
+                    stat2.setObject(4, SCHEMA_VERSION);
+                    // System.out.println(stat2.toString());
+                    stat2.executeUpdate();
+                } catch (SQLException e) {
+                    if (!config.quiet) {
+                        logger.warn("Unable to create cache database, proceeding without cache");
+                        logger.debug("stack trace: ", e);
+                    }
+                    db = null;
+                }
+            }
+            try {
+                // System.out.println("Preparing statements");
+                getStatement = db
+                        .prepareStatement("SELECT programme FROM cache WHERE source=? AND id=?");
+                putStatement = db
+                        .prepareStatement("INSERT INTO cache VALUES (?,?,?,?)");
+                removeStatement = db
+                        .prepareStatement("DELETE FROM cache WHERE source=? AND id=?");
+                clearStatement = db.prepareStatement("DELETE FROM cache");
+                clearSourceStatement = db
+                        .prepareStatement("DELETE FROM cache WHERE source=?");
+            } catch (SQLException e) {
+                if (!config.quiet) {
+                    logger.warn("Unable to prepare statements, proceeding without cache");
+                    logger.debug("stack trace: ", e);
+                }
+                db = null;
+            }
 
-               }
-       }
+        }
+    }
 
-       public Programme get(int source, String id) {
-               if (db == null)
-                       return null;
-               try {
-                       getStatement.setInt(1, source);
-                       getStatement.setString(2, id);
-                       ResultSet r = getStatement.executeQuery();
-                       if (!r.next())
-                               return null; // not found
-                       try {
-                               Programme result = (Programme) r.getObject("programme");
-                               return result;
-                       } catch (java.sql.SQLDataException e) {
-                               removeCacheEntry(source, id);
-                               return null;
-                       }
-               } catch (SQLException e) {
-                       if (!config.quiet) {
-                               logger.warn("Error fetching programme (" + source + "," + id
-                                               + ") from cache");
-                               logger.debug("stack trace: ", e);
-                       }
-                       return null;
-               }
-       }
+    /**
+     * Gets the.
+     *
+     * @param source the source
+     * @param id the id
+     * @return the programme
+     */
+    public Programme get(int source, String id) {
+        if (db == null)
+            return null;
+        try {
+            getStatement.setInt(1, source);
+            getStatement.setString(2, id);
+            ResultSet r = getStatement.executeQuery();
+            if (!r.next())
+                return null; // not found
+            try {
+                Programme result = (Programme) r.getObject("programme");
+                return result;
+            } catch (java.sql.SQLDataException e) {
+                removeCacheEntry(source, id);
+                return null;
+            }
+        } catch (SQLException e) {
+            if (!config.quiet) {
+                logger.warn("Error fetching programme (" + source + "," + id
+                        + ") from cache");
+                logger.debug("stack trace: ", e);
+            }
+            return null;
+        }
+    }
 
-       private void removeCacheEntry(int source, String id) {
-               try {
-                       removeStatement.setInt(1, source);
-                       removeStatement.setString(2, id);
-                       removeStatement.execute();
-               } catch (SQLException e) {
-                       logger.warn("Exception trying to remove item " + id
-                                       + " from source " + source + " from cache");
-                       logger.debug("Stack trace: ", e);
-               }
-       }
+    /**
+     * Removes the cache entry.
+     *
+     * @param source the source
+     * @param id the id
+     */
+    private void removeCacheEntry(int source, String id) {
+        try {
+            removeStatement.setInt(1, source);
+            removeStatement.setString(2, id);
+            removeStatement.execute();
+        } catch (SQLException e) {
+            logger.warn("Exception trying to remove item " + id
+                    + " from source " + source + " from cache");
+            logger.debug("Stack trace: ", e);
+        }
+    }
 
-       public void put(int source, String id, Programme prog) {
-               if (db == null)
-                       return;
-               try {
-                       putStatement.setInt(1, source);
-                       putStatement.setString(2, id);
-                       putStatement
-                                       .setDate(3, new java.sql.Date(prog.startTime.getTime()));
-                       putStatement.setObject(4, prog);
-                       // System.out.println(putStatement.toString());
-                       int count = putStatement.executeUpdate();
-                       if (count != 1 && !config.quiet) {
-                               logger.warn("Weird, cache database update statement affected "
-                                               + count + " rows");
-                       }
-               } catch (SQLException e) {
-                       logger.warn("Error writing programme (" + source + "," + id
-                                       + ") to cache");
-                       logger.debug("stack trace:", e);
-               }
-       }
+    /**
+     * Put.
+     *
+     * @param source the source
+     * @param id the id
+     * @param prog the prog
+     */
+    public void put(int source, String id, Programme prog) {
+        if (db == null)
+            return;
+        try {
+            putStatement.setInt(1, source);
+            putStatement.setString(2, id);
+            putStatement
+                    .setDate(3, new java.sql.Date(prog.startTime.getTime()));
+            putStatement.setObject(4, prog);
+            // System.out.println(putStatement.toString());
+            int count = putStatement.executeUpdate();
+            if (count != 1 && !config.quiet) {
+                logger.warn("Weird, cache database update statement affected "
+                        + count + " rows");
+            }
+        } catch (SQLException e) {
+            logger.warn("Error writing programme (" + source + "," + id
+                    + ") to cache");
+            logger.debug("stack trace:", e);
+        }
+    }
 
-       public void cleanup() {
-               if (db == null)
-                       return;
-               Statement stat;
-               try {
-                       stat = db.createStatement();
-                       int count = stat
-                                       .executeUpdate("DELETE FROM cache WHERE date<CURRENT_DATE - 3 DAY");
-                       if (!config.quiet && count > 0) {
-                               logger.info("Purged " + count + " old entries from cache");
-                       }
-                       stat.close();
-               } catch (SQLException e) {
-                       logger.debug("stack trace:", e);
-               }
-       }
+    /**
+     * Cleanup.
+     */
+    public void cleanup() {
+        if (db == null)
+            return;
+        Statement stat;
+        try {
+            stat = db.createStatement();
+            int count = stat
+                    .executeUpdate("DELETE FROM cache WHERE date<CURRENT_DATE - 3 DAY");
+            if (!config.quiet && count > 0) {
+                logger.info("Purged " + count + " old entries from cache");
+            }
+            stat.close();
+        } catch (SQLException e) {
+            logger.debug("stack trace:", e);
+        }
+    }
 
-       public void clear() {
-               if (db == null)
-                       return;
-               try {
-                       int count = clearStatement.executeUpdate();
-                       if (!config.quiet && count > 0) {
-                               logger.info("Cleared " + count + " entries from cache");
-                       }
-               } catch (SQLException e) {
-                       logger.warn("Failed to clear cache");
-                       logger.debug("Stack trace: ", e);
-               }
-       }
+    /**
+     * Clear.
+     */
+    public void clear() {
+        if (db == null)
+            return;
+        try {
+            int count = clearStatement.executeUpdate();
+            if (!config.quiet && count > 0) {
+                logger.info("Cleared " + count + " entries from cache");
+            }
+        } catch (SQLException e) {
+            logger.warn("Failed to clear cache");
+            logger.debug("Stack trace: ", e);
+        }
+    }
 
-       public void clear(int source) {
-               if (db == null)
-                       return;
-               try {
-                       clearSourceStatement.setInt(1, source);
-                       int count = clearSourceStatement.executeUpdate();
-                       if (!config.quiet && count > 0) {
-                               logger.info("Cleared " + count + " entries from cache");
-                       }
-               } catch (SQLException e) {
-                       logger.warn("Failed to clear cache");
-                       logger.debug("Stack trace: ", e);
-               }
-       }
+    /**
+     * Clear.
+     *
+     * @param source the source
+     */
+    public void clear(int source) {
+        if (db == null)
+            return;
+        try {
+            clearSourceStatement.setInt(1, source);
+            int count = clearSourceStatement.executeUpdate();
+            if (!config.quiet && count > 0) {
+                logger.info("Cleared " + count + " entries from cache");
+            }
+        } catch (SQLException e) {
+            logger.warn("Failed to clear cache");
+            logger.debug("Stack trace: ", e);
+        }
+    }
 
-       public void close() {
-               cleanup();
-               if (db != null) {
-                       try {
-                               getStatement.close();
-                               putStatement.close();
-                               removeStatement.close();
-                               clearStatement.close();
-                               clearSourceStatement.close();
-                               db.close();
-                       } catch (SQLException e) {
-                               logger.warn("Error closing cache database connection");
-                               logger.debug("Stack trace: ", e);
-                       }
-               }
-       }
+    /**
+     * Close.
+     */
+    public void close() {
+        cleanup();
+        if (db != null) {
+            try {
+                getStatement.close();
+                putStatement.close();
+                removeStatement.close();
+                clearStatement.close();
+                clearSourceStatement.close();
+                db.close();
+            } catch (SQLException e) {
+                logger.warn("Error closing cache database connection");
+                logger.debug("Stack trace: ", e);
+            }
+        }
+    }
 
 }