Package org.openntf.domino.impl

Source Code of org.openntf.domino.impl.AgentContext

/*
* Copyright 2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package org.openntf.domino.impl;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import lotus.domino.NotesException;

import org.openntf.domino.Agent;
import org.openntf.domino.Database;
import org.openntf.domino.DateTime;
import org.openntf.domino.Document;
import org.openntf.domino.DocumentCollection;
import org.openntf.domino.Session;
import org.openntf.domino.WrapperFactory;
import org.openntf.domino.utils.DominoUtils;

/**
* The Class AgentContext.
*/
public class AgentContext extends Base<org.openntf.domino.AgentContext, lotus.domino.AgentContext, Session> implements
    org.openntf.domino.AgentContext {

  /**
   * Instantiates a new agent context.
   *
   * @param delegate
   *            the delegate
   * @param parent
   *            the parent
   */
  @Deprecated
  public AgentContext(final lotus.domino.AgentContext delegate, final org.openntf.domino.Base<?> parent) {
    super(delegate, (Session) parent);

  }

  /* (non-Javadoc)
   * @see org.openntf.domino.impl.Base#findParent(lotus.domino.Base)
   */
  @Override
  protected Session findParent(final lotus.domino.AgentContext delegate) {
    return fromLotus(Base.getSession(delegate), Session.SCHEMA, null);
  }

  /**
   * Instantiates a new agent context.
   *
   * @param delegate
   *            the delegate
   * @param parent
   *            the parent
   * @param wf
   *            the wrapperFactory
   * @param cpp_id
   *            the cpp-id
   */
  public AgentContext(final lotus.domino.AgentContext delegate, final Session parent, final WrapperFactory wf, final long cpp_id) {
    super(delegate, parent, wf, cpp_id, NOTES_AGENTCTX);
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getCurrentAgent()
   */
  @Override
  public Agent getCurrentAgent() {
    try {
      return fromLotus(getDelegate().getCurrentAgent(), Agent.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getCurrentDatabase()
   */
  @Override
  public Database getCurrentDatabase() {
    try {
      return fromLotus(getDelegate().getCurrentDatabase(), Database.SCHEMA, getParentSession());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getDocumentContext()
   */
  @Override
  public Document getDocumentContext() {
    try {
      return fromLotus(getDelegate().getDocumentContext(), Document.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getEffectiveUserName()
   */
  @Override
  public String getEffectiveUserName() {
    try {
      return getDelegate().getEffectiveUserName();
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getLastExitStatus()
   */
  @Override
  public int getLastExitStatus() {
    try {
      return getDelegate().getLastExitStatus();
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return 0;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getLastRun()
   */
  @Override
  public DateTime getLastRun() {
    try {
      return fromLotus(getDelegate().getLastRun(), DateTime.SCHEMA, getAncestorSession());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /* (non-Javadoc)
   * @see org.openntf.domino.AgentContext#getParentSession()
   */
  public Session getParentSession() {
    return getAncestor();
  }

  /* (non-Javadoc)
   * @see org.openntf.domino.ext.AgentContext#getQueryStringParameters()
   */
  @Override
  public Map<String, List<String>> getQueryStringParameters() {
    Map<String, List<String>> result = new TreeMap<String, List<String>>(String.CASE_INSENSITIVE_ORDER);

    Document doc = getDocumentContext();
    String queryString = doc.getItemValueString("QUERY_STRING");

    for (String pair : queryString.split("&")) {
      if (!pair.isEmpty()) {
        String[] bits = pair.split("=");
        try {
          String left = java.net.URLDecoder.decode(bits[0], "UTF-8");
          String right = bits.length > 1 ? java.net.URLDecoder.decode(bits[1], "UTF-8") : "";

          if (!result.containsKey(left)) {
            result.put(left, new ArrayList<String>());
          }
          result.get(left).add(right);
        } catch (UnsupportedEncodingException uee) {
          // I can't imagine how we'd get here, so we're free to fail entirely
          DominoUtils.handleException(uee);
          return null;
        }
      }
    }

    return result;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getSavedData()
   */
  @Override
  public Document getSavedData() {
    try {
      return fromLotus(getDelegate().getSavedData(), Document.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#getUnprocessedDocuments()
   */
  @Override
  public DocumentCollection getUnprocessedDocuments() {
    try {
      return fromLotus(getDelegate().getUnprocessedDocuments(), DocumentCollection.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#unprocessedFTSearch(java.lang.String, int)
   */
  @Override
  public DocumentCollection unprocessedFTSearch(final String query, final int maxDocs) {
    try {
      return fromLotus(getDelegate().unprocessedFTSearch(query, maxDocs), DocumentCollection.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#unprocessedFTSearch(java.lang.String, int, int, int)
   */
  @Override
  public DocumentCollection unprocessedFTSearch(final String query, final int maxDocs, final int sortOpt, final int otherOpt) {
    try {
      return fromLotus(getDelegate().unprocessedFTSearch(query, maxDocs, sortOpt, otherOpt), DocumentCollection.SCHEMA,
          getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#unprocessedFTSearchRange(java.lang.String, int, int)
   */
  @Override
  public DocumentCollection unprocessedFTSearchRange(final String query, final int maxDocs, final int sortOpt) {
    try {
      return fromLotus(getDelegate().unprocessedFTSearchRange(query, maxDocs, sortOpt), DocumentCollection.SCHEMA,
          getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#unprocessedFTSearchRange(java.lang.String, int, int, int, int)
   */
  @Override
  public DocumentCollection unprocessedFTSearchRange(final String query, final int maxDocs, final int sortOpt, final int otherOpt,
      final int start) {
    try {
      lotus.domino.DocumentCollection coll = getDelegate().unprocessedFTSearchRange(query, maxDocs, sortOpt, otherOpt, start);
      return fromLotus(coll, DocumentCollection.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
    return null;
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#unprocessedSearch(java.lang.String, lotus.domino.DateTime, int)
   */
  @Override
  public DocumentCollection unprocessedSearch(final String formula, final lotus.domino.DateTime limit, final int maxDocs) {
    @SuppressWarnings("rawtypes")
    List recycleThis = new ArrayList();
    try {
      lotus.domino.DocumentCollection coll = getDelegate().unprocessedSearch(formula, toLotus(limit, recycleThis), maxDocs);
      return fromLotus(coll, DocumentCollection.SCHEMA, getCurrentDatabase());
    } catch (NotesException e) {
      DominoUtils.handleException(e);
      return null;
    } finally {
      s_recycle(recycleThis);
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.AgentContext#updateProcessedDoc(lotus.domino.Document)
   */
  @Override
  public void updateProcessedDoc(final lotus.domino.Document doc) {
    try {
      getDelegate().updateProcessedDoc(toLotus(doc));
    } catch (NotesException e) {
      DominoUtils.handleException(e);
    }
  }

  /*
   * (non-Javadoc)
   *
   * @see org.openntf.domino.types.SessionDescendant#getAncestorSession()
   */
  @Override
  public org.openntf.domino.Session getAncestorSession() {
    return this.getParentSession();
  }
}
TOP

Related Classes of org.openntf.domino.impl.AgentContext

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.