diff options
Diffstat (limited to 'org/madore/damlengine/WeblogPopulate.java')
-rw-r--r-- | org/madore/damlengine/WeblogPopulate.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/org/madore/damlengine/WeblogPopulate.java b/org/madore/damlengine/WeblogPopulate.java index 6593f9f..bb3af48 100644 --- a/org/madore/damlengine/WeblogPopulate.java +++ b/org/madore/damlengine/WeblogPopulate.java @@ -46,13 +46,13 @@ public final class WeblogPopulate { final PreparedStatement checkSt = conn.prepareStatement("SELECT sha1 FROM entries WHERE id=?"); final PreparedStatement insertNSt - = conn.prepareStatement("INSERT INTO entries(id,edate,lang,do_single_page,title,title_xml,content,sha1) VALUES (?,?,?,?,?,?::xml,?::xml,?)"); + = conn.prepareStatement("INSERT INTO entries(id,edate,lang,do_single_page,title,title_xml,content,sha1,has_cut) VALUES (?,?,?,?,?,?::xml,?::xml,?,?)"); final PreparedStatement insertCSt - = conn.prepareStatement("INSERT INTO entries(id,edate,lang,do_single_page,title,title_xml,content,sha1,cdate) VALUES (?,?,?,?,?,?::xml,?::xml,?,?::timestamptz)"); + = conn.prepareStatement("INSERT INTO entries(id,edate,lang,do_single_page,title,title_xml,content,sha1,has_cut,cdate) VALUES (?,?,?,?,?,?::xml,?::xml,?,?,?::timestamptz)"); final PreparedStatement updateNSt - = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,do_single_page,title,title_xml,content,sha1)=(?,DEFAULT,?,?,?,?::xml,?::xml,?) WHERE id=?"); + = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,do_single_page,title,title_xml,content,sha1,has_cut)=(?,DEFAULT,?,?,?,?::xml,?::xml,?,?) WHERE id=?"); final PreparedStatement updateCSt - = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,do_single_page,title,title_xml,content,sha1,cdate)=(?,DEFAULT,?,?,?,?::xml,?::xml,?,?::timestamptz) WHERE id=?"); + = conn.prepareStatement("UPDATE entries SET (edate,mdate,lang,do_single_page,title,title_xml,content,sha1,has_cut,cdate)=(?,DEFAULT,?,?,?,?::xml,?::xml,?,?,?::timestamptz) WHERE id=?"); final PreparedStatement checkDateSt = conn.prepareStatement("SELECT to_char(cdate,'YYYY-MM-DD\"T\"HH24:MI:SS\"Z\"') FROM entries WHERE id=?"); final PreparedStatement clearCatSt @@ -68,6 +68,7 @@ public final class WeblogPopulate { xp.setNamespaceContext(new DamlEngine.DamlNSMapping()); XPathExpression expr = xp.compile("//d:weblog/d:entry"); XPathExpression texpr = xp.compile("d:title"); + XPathExpression cutexpr = xp.compile(".//d:cut-here"); NodeList entries = (NodeList)(expr.evaluate(doc, XPathConstants.NODESET)); for ( int i=0 ; i<entries.getLength() ; i++ ) { Element ent = (Element)(entries.item(i)); @@ -101,6 +102,7 @@ public final class WeblogPopulate { Node titleNode = (Node)(texpr.evaluate(ent, XPathConstants.NODE)); String titleTxt = (titleNode != null) ? titleNode.getTextContent() : null; String titleXml = (titleNode != null) ? ser.writeToString(titleNode) : null; + boolean hasCut = cutexpr.evaluate(ent, XPathConstants.NODE) != null; conn.setAutoCommit(false); if ( exists ) { System.err.println("Updating entry "+id); @@ -116,11 +118,12 @@ public final class WeblogPopulate { updateSt.setString(5, titleXml); updateSt.setString(6, content); updateSt.setString(7, digest); + updateSt.setBoolean(8, hasCut); if ( cdate != null ) { - updateSt.setString(8, cdate); - updateSt.setInt(9, id); + updateSt.setString(9, cdate); + updateSt.setInt(10, id); } else { - updateSt.setInt(8, id); + updateSt.setInt(9, id); } updateSt.executeUpdate(); } else { @@ -138,8 +141,9 @@ public final class WeblogPopulate { insertSt.setString(6, titleXml); insertSt.setString(7, content); insertSt.setString(8, digest); + insertSt.setBoolean(9, hasCut); if ( cdate != null ) - insertSt.setString(9, cdate); + insertSt.setString(10, cdate); insertSt.executeUpdate(); } if ( ! Pattern.matches("^\\d{4}-\\d{2}-\\d{2}T\\d{2}\\:\\d{2}(?:\\:\\d{2})?(?:Z|[\\+\\-]\\d{2}\\:\\d{2})$", cdate) ) { |