Package org.openntf.domino.tests.ntf

Source Code of org.openntf.domino.tests.ntf.LargishSortedCollectionTest

package org.openntf.domino.tests.ntf;

import java.util.ArrayList;
import java.util.List;

import lotus.domino.NotesFactory;

import org.openntf.domino.Database;
import org.openntf.domino.DocumentCollection;
import org.openntf.domino.Session;
import org.openntf.domino.helpers.DocumentSorter;
import org.openntf.domino.utils.DominoUtils;
import org.openntf.domino.utils.Factory;

public class LargishSortedCollectionTest implements Runnable {
  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 LargishSortedCollectionTest());
    }
    de.shutdown();
    //    for (int i = 0; i < 4; i++) {
    //      DominoThread thread = new DominoThread(new LargishSortedCollectionTest(), "My thread " + i);
    //      thread.start();
    //    }
  }

  public LargishSortedCollectionTest() {
    // whatever you might want to do in your constructor, but stay away from Domino objects
  }

  @Override
  public void run() {
    long testStartTime = System.nanoTime();
    Session session = this.getSession();
    //    Database db = session.getDatabase("", "events4.nsf");
    Database db = session.getDatabase("", "events4.nsf");
    //    System.out.println("Starting build of byMod view");
    //    long vStartTime = System.nanoTime();
    //    View newView = db.createView("ModTest", "SELECT @All");
    //    ViewColumn modCol = newView.createColumn(1, "Modified", "@Modified");
    //    modCol.setSorted(true);
    //    newView.refresh();
    //    long vEndTime = System.nanoTime();
    //    System.out.println("Completed building byModView in " + ((vEndTime - vStartTime) / 1000000) + "ms");
    //    IndexDatabase index = new IndexDatabase(session.getDatabase("", "redpill/index.nsf"));
    //    Document indexDoc = index.getDbDocument(db.getReplicaID());

    //    System.out.println("UNSORTED");

    List<String> criteria = new ArrayList<String>();
    //    criteria.add("@doclength");
    criteria.add("@modifieddate");
    try {
      DocumentSorter sorter = null;

      //      if (indexDoc.hasItem("DocumentSorter")) {
      //        sorter = indexDoc.getItemValue("DocumentSorter", DocumentSorter.class);
      //        sorter.setDatabase(db);
      //        System.out.println("Starting resort of " + sorter.getCount() + " documents");
      //      } else {
      DocumentCollection coll = db.getAllDocuments();
      sorter = new DocumentSorter(coll, criteria);
      System.out.println("Starting resort of " + coll.getCount() + " documents");
      //      }
      //      System.out.println("SORTING...");

      long startTime = System.nanoTime();
      DocumentCollection sortedColl = sorter.sort();
      long endTime = System.nanoTime();
      System.out.println("Completed resort of " + sortedColl.getCount() + " in " + ((endTime - startTime) / 1000000) + " ms");
      //      int count = 0;
      //      for (Document doc : sortedColl) {
      //        //        System.out.println(doc.getLastModifiedDate().getTime() + " " + doc.getNoteID());
      //        if (++count > 500) {
      //          break;
      //        }
      //      }

      //      indexDoc.replaceItemValue("DocumentList", sortedColl);
      //      indexDoc.replaceItemValue("DocumentSorter", sorter);
      //      indexDoc.save();
      //      System.out.println("Saved sorter and result list to document of length " + (indexDoc.getSize() / 1024) + "KB");
      //      System.out.println("SORTED");
      //      for (Document doc : sortedColl) {
      //        System.out.println(doc.getItemValueString("MainSortValue") + " " + doc.getLastModifiedDate().getTime());
      //      }
    } catch (Throwable t) {
      t.printStackTrace();
    }
    long testEndTime = System.nanoTime();
    System.out.println("Completed " + getClass().getSimpleName() + " run in " + ((testEndTime - testStartTime) / 1000000000) + " s");
    //    View modView = db.getView("AllByLengthMod");
    //    long startTime = System.nanoTime();
    //    if (modView != null) {
    //      modView.refresh();
    //    }
    //    long endTime = System.nanoTime();
    //    System.out.println("Completed view build in " + ((endTime - startTime) / 1000000) + "ms");

  }

  protected Session getSession() {
    try {
      Session session = Factory.fromLotus(NotesFactory.createSession(), Session.class, null);
      return session;
    } catch (Throwable t) {
      DominoUtils.handleException(t);
      return null;
    }
  }
}
TOP

Related Classes of org.openntf.domino.tests.ntf.LargishSortedCollectionTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.