From 98fc790f9ec053d5367d7ce5851ef66d5a7ced5b Mon Sep 17 00:00:00 2001
From: Dennis Kao <ulysseskao@gmail.com>
Date: Wed, 04 Dec 2013 09:33:15 +0800
Subject: [PATCH] add copyapi for theme

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 53 insertions(+), 1 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java
index ce4124f..766511b 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java
@@ -469,6 +469,59 @@
         }
     }
 
+    private void updateCurrentThemeStatus(Connection connection, String schemaName, short newStatus)
+            throws SQLException {
+        StringBuilder sbSQL = new StringBuilder("UPDATE ");
+        sbSQL.append(DataReposVersionManager.XPTVERSIONTABLE_NAME).append(' ');
+        sbSQL.append(" SET vptstatus = ");
+        sbSQL.append(newStatus);
+        sbSQL.append(", vpttimestamp = CURRENT_TIMESTAMP WHERE vptname = '");
+        sbSQL.append(schemaName).append("'");
+
+        Statement stmt = null;
+        try {
+            stmt = connection.createStatement();
+            stmt.executeUpdate(sbSQL.toString());
+        } finally {
+            if (stmt != null) stmt.close();
+        }
+    }
+
+
+    private boolean checkCurrentThemeStatus(Connection connection, short status) {
+        try {
+            return (retrieveCurrentThemeName(connection, status) != null);
+        } catch (SQLException e) {
+            logger.warn(e.getMessage(), e);
+            return false;
+        }
+    }
+
+
+    private String retrieveCurrentThemeName(Connection connection, short status) throws SQLException {
+        StringBuilder sbSQL = new StringBuilder("SELECT ");
+        sbSQL.append("vptname, vptstatus, vpttimestamp FROM ");
+        sbSQL.append(encodeSchemaTableName(_pgSchema, DataReposVersionManager.XPTVERSIONTABLE_NAME)).append(' ');
+        sbSQL.append("ORDER BY vptid");
+
+        String result = null;
+        Statement stmt = null;
+        ResultSet rs = null;
+
+        try {
+            stmt = connection.createStatement();
+            rs = stmt.executeQuery(sbSQL.toString());
+            // get first result
+            if (rs.next()) {
+                result = rs.getString(1);
+            }
+            return result;
+        } finally {
+            JDBCUtils.close(rs);
+            JDBCUtils.close(stmt);
+        }
+    }
+
     protected void transferXGeosVersionStatus(Connection connection,
                                        short vsstatusBefore, short vsstatusAfter, boolean exclusive) throws JobExecutionException {
 
@@ -1019,5 +1072,4 @@
             }
         }
     }
-
 }

--
Gitblit v0.0.0-SNAPSHOT