Examples: intersect method

This example builds and exports a notes collection containing those agents with "example" in the name. First the collection contains all agents. Then a second collection is built by adding the desired notes one at a time from the first collection. Then the first collection is corrected by intersecting it with the second.

import lotus.domino.*;
import java.util.Vector;

public class JavaAgent extends AgentBase {

  public void NotesMain() {

    try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here) 
      Database db = agentContext.getCurrentDatabase();
      
      // Open DXL file named after current database
      Stream stream = session.createStream();
      String filename = "c:\\dxl\\";
      filename = filename + db.getFileName();
      filename = filename.substring(0, filename.length() - 3) + "dxl";
      if (stream.open(filename)) {
        System.out.println("Opened " + filename);
        stream.truncate();
        
        // Create note collection of all agents
        NoteCollection nc = db.createNoteCollection(false);
        nc.setSelectAgents(true);
        nc.buildCollection();
        
        if (nc.getCount() > 0) {
          // Build temporary note collection of agents whose
          // names contain the word "example"
          NoteCollection ncEx = db.createNoteCollection(false);
          nc.buildCollection();
          String id = nc.getFirstNoteID();
          Vector agents = db.getAgents();
          // For each agent, use corresponding note from nc collection
          for (int i = 0; i < agents.size(); i++) {
            Agent agent = (Agent)agents.elementAt(i);
            String name = agent.getName();
            if (name.toLowerCase().indexOf("example") >= 0) {
              ncEx.add(id);
            }
            id = nc.getNextNoteID(id);
          }
        
          // Reduce nc collection to examples by intersecting
          nc.intersect(ncEx);

          // Export note collection as DXL
          if (nc.getCount() > 0) {
            DxlExporter exporter = session.createDxlExporter();
            String output = exporter.exportDxl(nc);
            stream.writeText(output);
            stream.close();
            System.out.println(nc.getCount() + " notes exported");
          }
          else
            System.out.println("No notes exported");
        }
        else
          System.out.println("No agents in database");
      }
      else {
        System.out.println("Cannot open " + filename);
      }

    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}