package org.openntf.domino.tests.ntf; import org.openntf.domino.Database; import org.openntf.domino.Document; import org.openntf.domino.Item; import org.openntf.domino.NoteCollection; import org.openntf.domino.Session; import org.openntf.domino.thread.AbstractDominoRunnable; import org.openntf.domino.utils.Factory; import org.openntf.domino.utils.Factory.SessionType; @SuppressWarnings("unused") public class ItemFlagTest extends AbstractDominoRunnable { private static final long serialVersionUID = 1L; private static int THREAD_COUNT = 1; public static void main(final String[] args) { org.openntf.domino.thread.DominoExecutor de = new org.openntf.domino.thread.DominoExecutor(10); for (int i = 0; i < THREAD_COUNT; i++) { de.execute(new ItemFlagTest()); } de.shutdown(); } @Override public void run() { Session session = Factory.getSession(SessionType.CURRENT); long collectionBuildNS = 0l; long documentBuildNS = 0l; long documentPageNS = 0l; int collectionSize = 0; int dbDocs = 0; try { Database db = session.getDatabase("", "imdb/movies.bak"); dbDocs = db.getAllDocuments().getCount(); long testStartTime = System.nanoTime(); NoteCollection nc = db.createNoteCollection(false); nc.selectAllDataNotes(true); nc.setSelectionFormula("@Begins(Title; \"B\")"); //NTF comment or uncomment this to toggle testing selection formula impact nc.buildCollection(); int[] nids = nc.getNoteIDs(); long collectionTime = System.nanoTime(); collectionBuildNS = collectionTime - testStartTime; collectionSize = nids.length; Document[] documents = new Document[collectionSize]; for (int i = 0; i < collectionSize; i++) { documents[i] = db.getDocumentByID(nids[i], true/*false would mean full load of the Document*/); } long documentTime = System.nanoTime(); documentBuildNS = documentTime - collectionTime; int pageSize = 1000; int pageStart = 2014; for (int i = pageStart; i < (pageStart + pageSize); i++) { Item titleItem = documents[i].getFirstItem("Title"); titleItem.isAuthors(); titleItem.isEncrypted(); titleItem.isNames(); titleItem.isProtected(); titleItem.isReaders(); titleItem.isSigned(); titleItem.isSummary(); String report = documents[i].getNoteID() + " is a " + titleItem.getText(); // System.out.println(report); // report = report + (" Summary: " + String.valueOf()); } documentPageNS = System.nanoTime() - documentTime; System.out.println("Done with document details for " + pageSize + " out of " + collectionSize + " (" + dbDocs + " total in db.) NC build took " + (collectionBuildNS / 1000000) + "ms, Document build took " + (documentBuildNS / 1000000) + "ms, Document page took " + (documentPageNS / 1000000) + "ms"); } catch (Throwable t) { t.printStackTrace(); } long testEndTime = System.nanoTime(); System.out.println("Completed " + getClass().getSimpleName()); } @Override public boolean shouldStop() { return true; } }