Examples: lock method (Agent - Java)

This view action attempts to lock the agent named "Main Agent" for all members of the "Guys" group. Locking is successful if the agent is not yet locked, or the agent is locked but the effective user is a member of Guys. A provisional lock is allowed if the administration server is not available.

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();
      
      // Design locking must be enabled
      if (db.isDesignLockingEnabled()) {
        // Get agent and lock
        // Not locked if return is false or exception thrown
        Agent agent = db.getAgent("Main Agent");
        if (agent.lock("Guys", true))
          System.out.println("Agent locked");
        else
          System.out.println("Agent not locked");
      }
      else
        System.out.println("Design locking not enabled");

    } catch(NotesException e) {
      if (e.id == NotesError.NOTES_ERR_LOCKED)
        System.out.println("Agent not locked (exception)");
      else
        e.printStackTrace();

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