package gr.ntua.ivml.mint.oaiexporter; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import de.schlichtherle.util.zip.BasicZipFile; import gr.ntua.ivml.mint.db.DB; import gr.ntua.ivml.mint.db.PublicationDAO; import gr.ntua.ivml.mint.oaiexporter.DBExport; import gr.ntua.ivml.mint.persistent.Publication; import gr.ntua.ivml.mint.xml.ESEToFullBean; import gr.ntua.ivml.mint.xml.FullBean; public class PublicationIterator { static{} public static void iteratePublications() throws IOException{ PublicationDAO pubD = DB.getPublicationDAO(); ArrayList<Publication> pubs = (ArrayList<Publication>) pubD.findAll(); FullBean bean = null; Iterator<Publication> itr = pubs.iterator(); //int counter = 0; HashMap<String, String> logz = new HashMap<String, String>(); String name = ""; boolean add = false; while(itr.hasNext()){ int counter = 0; Publication pubTmp = itr.next(); Date dat = pubTmp.getLastProcess(); String DATE_FORMAT = "yyyy-MM-dd"; java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(DATE_FORMAT); Calendar c1 = Calendar.getInstance(); c1.set(2010, 06, 10); Calendar c2 = Calendar.getInstance(); c2.set(2010, dat.getMonth(), dat.getDay()+1); if(c2.after(c1)){ //System.out.println("Meta"); add = true; } if(c2.before(c1)){ //System.out.println("Prin"); add = false; } name = pubTmp.getPublishingOrganization().getEnglishName(); /*pubTmp.unloadToTmpFile(); //File file = pubTmp.getTmpFile(); BasicZipFile zip = new BasicZipFile(file); Enumeration en = zip.entries(); de.schlichtherle.util.zip.ZipEntry ze = null; while(en.hasMoreElements()){ if(!add){ break; } //Object la = en.nextElement(); ze = (de.schlichtherle.util.zip.ZipEntry) en.nextElement(); InputStream zis = zip.getInputStream(ze); if( (!ze.isDirectory()) && (ze.getName().endsWith(".xml"))){ StringBuilder sb = new StringBuilder(); String line; try { BufferedReader reader = new BufferedReader(new InputStreamReader(zis, "UTF-8")); while ((line = reader.readLine()) != null) { sb.append(line).append("\n"); } ArrayList<FullBean> beanz = ESEToFullBean.getFullBeans(sb.toString()); DBExport.addAsset(beanz, name); counter+= beanz.size(); } finally { zis.close(); } } } String ti = ""+ counter; logz.put(name, ti); pubTmp.cleanup();*/ System.out.println("Org name:" + name + " number of items:"+counter); } int total = 0; Iterator<String> itr2 = logz.keySet().iterator(); while(itr2.hasNext()){ String orgName = itr2.next(); int No = Integer.parseInt(logz.get(orgName)); total += No; System.out.println("Imported for Org with name " + orgName + " " + No + " items."); } System.out.println("Total Number of items imported to OAI repository:" + total); } }