package ecologylab.bigsemantics.tools; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.HashMap; import ecologylab.bigsemantics.collecting.DownloadStatus; import ecologylab.bigsemantics.metadata.Metadata; import ecologylab.bigsemantics.metadata.builtins.Document; import ecologylab.bigsemantics.metadata.builtins.DocumentClosure; import ecologylab.bigsemantics.metadata.builtins.RichArtifact; import ecologylab.serialization.SIMPLTranslationException; public class TestMmdSpeed extends MmTest { PrintStream print; public TestMmdSpeed(String appName) throws SIMPLTranslationException { super(appName); try { File outfile = new File("TestMmdSpeed.csv"); print = new PrintStream(outfile); System.out.println("Output csv file at:"+outfile.getAbsolutePath()); } catch (FileNotFoundException e) { e.printStackTrace(); } } public static void main(String args[]) { TestMmdSpeed speedTest; try { speedTest = new TestMmdSpeed("TestMmSpeed"); speedTest.collect(args); } catch (SIMPLTranslationException e) { e.printStackTrace(); } } boolean shownHeaderYet = false; @Override protected void output(DocumentClosure incomingClosure) { Document document = incomingClosure.getDocument(); if (document != null) { RichArtifact<Metadata> artifact = new RichArtifact<Metadata>(); artifact.outlinks().add(document); curation.metadataCollection().add(artifact); String outline = ""+document.getLocation().toString(); HashMap<DownloadStatus, Long> statusChanges = document.getTransitionTimeToDownloadStatus(); if(shownHeaderYet == false) { String line = "URL,"; for(DownloadStatus downloadStatus : DownloadStatus.values()) line += downloadStatus+","; print.append(line+"\n"); System.out.println(line); shownHeaderYet = true; } for(DownloadStatus downloadStatus : DownloadStatus.values()) { if(statusChanges.containsKey(downloadStatus)) { outline += ","+statusChanges.get(downloadStatus); } else { outline += ","+"null"; } } System.out.println(outline); print.append(outline+"\n"); System.out.println(outline); } } }