package org.greenstone.gsdl3.gs3build.notifier; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Calendar; import java.util.GregorianCalendar; import org.greenstone.gsdl3.gs3build.util.*; public class NotifierManager { public NotifierManager() { } public void detectEvents(GS3SQLConnection database, GregorianCalendar lastBuildDate) { // quick and dirty: detect all new documents, i.e. all documents where // AccessionDate >= CollectionLastRebuiltDate StringBuffer lastBuild = new StringBuffer(); lastBuild.append(lastBuildDate.get(Calendar.YEAR)); int month = lastBuildDate.get(Calendar.MONTH) + 1; lastBuild.append(month < 10 ? "0" + month : "" + month); int date = lastBuildDate.get(Calendar.DATE); lastBuild.append(date < 10 ? "0" + date : "" + date); int hour = lastBuildDate.get(Calendar.HOUR_OF_DAY); lastBuild.append(hour < 10 ? "0" + hour : "" + hour); int minute = lastBuildDate.get(Calendar.MINUTE); lastBuild.append(minute < 10 ? "0" + minute : "" + minute); int sec = lastBuildDate.get(Calendar.SECOND); lastBuild.append(sec < 10 ? "0" + sec : "" + sec); System.out.println("last build: " + lastBuild); Statement statement = database.createStatement(); try { ResultSet results = statement.executeQuery("SELECT DocID from document where DocType != 'GSMETADATA' AND AccessionDate >= " + lastBuild); while(results.next()) { System.out.println("new document: " + results.getString("DocID")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }