例: getNextEntity method

次のエージェントは、最初に breadth を検索して、マルチパートエンティティの最後の分岐の最後にある子をすべて取得します。

import lotus.domino.*;

public class JavaAgent extends AgentBase {

  public void NotesMain() {

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

      // (Your code goes here)
      // Do not convert MIME to rich text
      session.setConvertMIME(false);
      DocumentCollection dc = agentContext.getUnprocessedDocuments();
      Document doc = dc.getFirstDocument();
      while (doc != null) {
        MIMEEntity mime = doc.getMIMEEntity();
        if (mime != null) {
          // Drill down to last child at end of first branch
          MIMEEntity child = mime.getNextEntity(MIMEEntity.SEARCH_BREADTH);
          while (child != null) {
            mime = child;
            child = mime.getNextEntity(MIMEEntity.SEARCH_BREADTH);
          }
          Stream stream = session.createStream();
          String pathname = "c:¥¥lotus¥¥notes¥¥data¥¥temp.txt";
          if (stream.open(pathname, "us-ascii")) {
            // Get content of all children at end level
            // of first branch in reverse order
            while (mime != null) {
              mime.getContentAsText(stream, false);
              mime = mime.getPrevSibling();
            }
          }
          stream.close();
          else System.out.println
            ("Can't open c:¥¥lotus¥¥notes¥¥data¥¥temp.txt");
        }
        else
        {
          System.out.println
            ("Not MIME - " + doc.getItemValueString("Subject"));
        }
        doc = dc.getNextDocument(doc);
      }
      // Restore conversion
      session.setConvertMIME(true);
     
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}