例: データベースを開く (Java™)

  1. 次のエージェントは、ローカルなデータベースを開いてそのタイトルを出力します。ユーザーは、エージェントのコメントとしてデータベースファイル名を指定します。その際、拡張子 .NSF は必要ありません。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = 
            session.getAgentContext();
          // (Your code goes here) 
          Agent agent = agentContext.getCurrentAgent();
          DbDirectory dir = session.getDbDirectory(null);
          Database db = dir.openDatabase(agent.getComment());
          if (db == null) System.out.println(
             "Database open failed");
          else System.out.println("Title:¥t¥t" + 
              db.getTitle());
        } catch(NotesException e) {
          if (e.id + NotesError.NOTES_MIN_ERROR_CODE ==
          NotesError.NOTES_ERR_NOTAFILE)
            System.out.println("No such database");
          else {
            System.out.println(e.id + " " + e.text);
            e.printStackTrace(); }
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  2. 次のエージェントは、現在のデータベースを開きます。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = 
             session.getAgentContext();
          // (Your code goes here) 
          Database db = agentContext.getCurrentDatabase();
          System.out.println
          ("Title:¥t¥t" + db.getTitle());
          System.out.println
          ("File name:¥t" + db.getFileName());
          String msg = "closed";
          if (db.isOpen()) msg = "open";
          System.out.println("Database is " + msg);
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  3. 次のエージェントは、getFirstDatabase によって返されるデータベースが、open メソッドで開かれるまで閉じられていることを示します。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = 
             session.getAgentContext();
          // (Your code goes here) 
          DbDirectory dir = session.getDbDirectory(null);
          Database db = dir.getFirstDatabase(
              DbDirectory.DATABASE);
          if (db.isOpen()) System.out.println("Is open");
          else System.out.println("Is closed");
          db.open();
          if (db.isOpen()) System.out.println("Is open");
          else System.out.println("Is closed");
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  4. 次のエージェントは、ローカルのデータベースを検索し、エージェントのコメントに指定されたタイトルのデータベースを開きます。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = 
              session.getAgentContext();
          // (Your code goes here) 
          Agent agent = agentContext.getCurrentAgent();
          DbDirectory dir = session.getDbDirectory(null);
          Database tmpdb;
          Database db = dir.getFirstDatabase(
              DbDirectory.DATABASE);
          while (db != null) {
            if (db.getTitle() != null)
            if (db.getTitle().equalsIgnoreCase(
                 agent.getComment())) {
              db.open();
              DocumentCollection dc = db.getAllDocuments();
              Document tmpdoc;
              Document doc = dc.getFirstDocument();
              while (doc != null) {
                System.out.println(doc.getItemValueString("Subject"));
                tmpdoc = dc.getNextDocument();
                doc.reycle;
                doc = tmpdoc; }
              break; }
            tmpdb = dir.getNextDatabase();
            db.recycle();
            db = tmpdb; }
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  5. 次のエージェントは、ユーザーのメールデータベースを開きます。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = 
              session.getAgentContext();
          // (Your code goes here) 
          DbDirectory dir = session.getDbDirectory(null);
          Database db = dir.openMailDatabase();
          System.out.println("File name:¥t" + 
              db.getFileName());
          String msg = "closed";
          if (db.isOpen()) msg = "open";
          System.out.println("Database is " + msg);
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  6. 次のエージェントは、現在のデータベースと同じレプリカ ID を持つサーバー NotesUA1 上のデータベースを開きます。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = 
              session.getAgentContext();
          // (Your code goes here) 
          DbDirectory dir = session.getDbDirectory(
              "NotesUA1");
          Database dbLocal = 
               agentContext.getCurrentDatabase();
          Database dbRemote = 
               dir.openDatabaseByReplicaID
          (dbLocal.getReplicaID());
          System.out.println
          ("Title:¥t¥t" + dbRemote.getTitle());
          System.out.println
          ("Server:¥t¥t" + dbRemote.getServer());
          System.out.println
          ("File path:¥t¥t" + dbRemote.getFilePath());
          String msg = "closed";
          if (dbRemote.isOpen()) msg = "open";
          System.out.println("Database is " + msg);
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }