例: Database class

  1. 次のエージェントは、db という Database オブジェクトを作成し、このオブジェクトにデータベースを割り当てます。データベースの名前は names.nsf で、サーバー文書上のデータディレクトリの最上位のレベルに置かれています。このデータベースが存在する場合は、getDatabase が自動的にこのデータベースを開きます。
    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 = 
             session.getDatabase("doc", "names");
          System.out.println(db.getTitle());
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  2. 次のエージェントは、isOpen を使用して、データベース quack.nsf がローカルに存在するかどうかを調べます。ローカルに存在しない場合、このエージェントは create メソッドを使用して、ディスク上に新規データベースを作成します。
    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, template;
          db = session.getDatabase(null, "quack");
          if (db.isOpen())
            System.out.println(db.getTitle());
          else {
            System.out.println("Database does not exist");
            System.out.println("Creating new database ...");
            template = session.getDatabase(null, 
            "discsw50.ntf");
            if (template.isOpen()) {
              db = template.createFromTemplate
              (null, "quack", true);
              db.setTitle("Ducks of North America");
              System.out.println(db.getTitle()); }
            else
              System.out.println
              ("Template discsw50.ntf does not exist"); }
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  3. 次のエージェントは例 2 と同じですが、データベースがデータディレクトリのサブディレクトリ内にあるという点だけが違います。円記号を 2 つ使用しなければならないことに注意してください。Java™ では円記号がエスケープ文字であるためです。
    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, template;
          db = session.getDatabase(null, "quack");
          if (db.isOpen())
            System.out.println(db.getTitle());
          else {
            System.out.println(
               "Database does not exist");
            System.out.println(
               "Creating new database ...");
            template = session.getDatabase(null, 
            "discsw50.ntf");
            if (template.isOpen()) {
              db = template.createFromTemplate
              (null, "birds¥¥quack", true);
              db.setTitle("Ducks of North America");
              System.out.println(db.getTitle()); }
            else
              System.out.println
              ("Template discsw50.ntf does not exist"); }
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  4. 次のエージェントは、Brian Flokka に対して現在のデータベースの [編集者] のアクセス権を与えます。CurrentDatabase プロパティを使用すると、エージェント内でファイル名を使用する必要がなく、エージェントをデータベース間で簡単に移行することができます。
    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();
          db.grantAccess("Brian Flokka", ACL.LEVEL_EDITOR);
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  5. 次のエージェントは、openIfModified メソッドを使用して、データベースがある日付以降に変更されている場合にだけデータベースを開く方法を示します。このエージェントは、現在のサーバー上の quack.nsf が昨日以降変更されているかどうかを調べます。変更されている場合は、データベースを開いて圧縮します。
    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);
          DateTime dt = session.createDateTime("Today");
          dt.setNow();
          dt.adjustDay(-1);
          Database db = dir.openDatabaseIfModified
          ("quack", dt);
          if (db != null) {
            System.out.println("Compacting database");
            db.compact(); }
          else
            System.out.println(
              "Database not modified in past 
               day");
        } catch(Exception e) {
          e.printStackTrace();
        }
      }