/* * 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; import java.io.Externalizable; import java.util.Calendar; import java.util.Date; import java.util.Vector; import org.openntf.domino.annotations.Legacy; import org.openntf.domino.types.FactorySchema; import org.openntf.domino.types.Resurrectable; // TODO: Auto-generated Javadoc /** * The Interface Session is the root of the Domino Objects containment hierarchy, providing access to the other Domino objects, and * represents the Domino environment of the current program. */ public interface Session extends lotus.domino.Session, org.openntf.domino.ext.Session, Base<lotus.domino.Session>, ExceptionDetails, Resurrectable, Externalizable { public static enum Permissions { READ_CURRENT_NSF, WRITE_CURRENT_NSF, DESIGN_CURRENT_NSF, READ_LOCAL_NSF, WRITE_LOCAL_NSF, DESIGN_LOCAL_NSF, READ_REMOTE_NSF, WRITE_REMOTE_NSF, DESIGN_REMOTE_NSF, SEND_MAIL, SEND_COMMANDS, READ_DIRECTORY, WRITE_DIRECTORY, IMPORT_DXL, EXPORT_DXL; } public static class Schema extends FactorySchema<Session, lotus.domino.Session, WrapperFactory> { @Override public Class<Session> typeClass() { return Session.class; } @Override public Class<lotus.domino.Session> delegateClass() { return lotus.domino.Session.class; } @Override public Class<WrapperFactory> parentClass() { return WrapperFactory.class; } }; public static final Schema SCHEMA = new Schema(); /** * The Enum RunContext. */ public static enum RunContext { /** The agent. */ AGENT, /** The applet. */ APPLET, /** The dots. */ DOTS, /** The xpages nsf. */ XPAGES_NSF, /** The xpages osgi. */ XPAGES_OSGI, /** The plugin. */ PLUGIN, /** The addin. */ ADDIN, /** The servlet. */ SERVLET, /** The cli. */ CLI, /** The diiop. */ DIIOP, /** The unknown. */ UNKNOWN } /** * Creates a new AdministrationProcess object. * * @param server * The name of the server containing the Administration Requests database (ADMIN4.NSF). An empty string means the local * computer. The server must contain a replica of the Certification Log. You must have access privileges to the Domino��� * Directory on the server for Administration Process requests that use it. * * @return The newly created {@link AdministrationProcess} object. * @since lotus.domino 6.5.0 */ @Override public AdministrationProcess createAdministrationProcess(final String server); /** * Creates a new ColorObject object. * * @return The newly created {@link ColorObject} object. * @since lotus.domino 6.5.0 */ @Override public ColorObject createColorObject(); /** * Creates the color object. * * @param color * the color * @return the color object */ @Override public ColorObject createColorObject(final java.awt.Color color); /** * Creates a new DateRange object. * * @return The newly created {@link DateRange} object. * @since lotus.domino 4.5.0 */ @Override public DateRange createDateRange(); /** * Creates a new DateRange object. * * @param startTime * The starting date-time of the range. Cannot be <code>null</code>. * @param endTime * The ending date-time of the range. Cannot be <code>null</code>. * * @return The newly created {@link DateRange} object. * @since lotus.domino 4.5.0 */ @Override public DateRange createDateRange(final Date startTime, final Date endTime); /** * Creates a new DateRange object. * * @param startTime * The starting date-time of the range. Cannot be <code>null</code>. * @param endTime * The ending date-time of the range. Cannot be <code>null</code>. * * @return The newly created {@link DateRange} object. * @since lotus.domino 4.5.0 */ @Override public DateRange createDateRange(final lotus.domino.DateTime startTime, final lotus.domino.DateTime endTime); /** * Creates a DateTime object that represents a specified date and time. * * @param date * The date, time, and time zone you want the object to represent using a {@link java.util.Calendar} object. * * @return The newly created {@link DateTime} object. * @since lotus.domino 4.5.0 */ @Override public DateTime createDateTime(final Calendar date); /** * Creates a DateTime object that represents a specified date and time. * * @param date * The date, time you want the object to represent using a {@link java.util.Date} object. * * @return The newly created {@link DateTime} object. * @since lotus.domino 4.5.0 */ @Override public DateTime createDateTime(final Date date); // there's no recycle burden? /** * Creates a DateTime object that represents a specified date and time. * * @param date * The date, time you want the object to represent using a string. @see org.openntf.domino.DateTime for formats. * * @return The newly created {@link DateTime} object. * @since lotus.domino 4.5.0 */ @Override public DateTime createDateTime(final String date); /** * Creates a DateTime object that represents a specified date and time. * * @param y * the year * @param m * the month * @param d * the day * @param h * the hour * @param i * the mInutes * @param s * the seconds * * @return The newly created {@link DateTime} object. * @since org.openntf.domino 2014-03-11 */ public DateTime createDateTime(int y, int m, int d, int h, int i, int s); /** * Creates a DxlExporter object. * * @return The newly created {@link DxlExporter} object. * @since lotus.domino 6.5.0 */ @Override public DxlExporter createDxlExporter(); // no recycle burden? /** * Creates a DxlImporter object. * * @return The newly created {@link DxlImporter} object. * @since lotus.domino 6.5.0 */ @Override public DxlImporter createDxlImporter(); /** * Creates a new Log object with the name you specify. * * @param name * A name that identifies the log. * * @return The newly created {@link Log} object with the specified name. * @since lotus.domino 4.5.0 */ @Override public Log createLog(final String name); /** * Creates a new Name object. * * @param name * A user or server name. If the name is not in the format of an abbreviated or canonical hierarchical name, it is treated as * a flat name. * * @return The newly created {@link Name} object. * @since lotus.domino 4.5.0 */ @Override public Name createName(final String name); /** * Creates a new Name object with the specified language. * * @param name * A user or server name. If the name is not in the format of an abbreviated or canonical hierarchical name, it is treated as * a flat name. * @param lang * A language associated with the user name. For primary user names, the language should be <code>null</code>. For alternate * user names, a language can be specified. Typical language codes look like * <p> * <ul> * <li>en * <li>en-IE * <li>de * <li>zh-CN * </ul> * * @return The newly created {@link Name} object. * @since lotus.domino 4.5.0 */ @Override public Name createName(final String name, final String lang); /** * Given a DocumentCollection containing the documents you want, creates a new Newsletter. * * @param collection * The documents that you want included in the newsletter. Can be null. * * @return The newly created {@link Newsletter} object. * @since lotus.domino 4.5.0 */ @Override public Newsletter createNewsletter(final lotus.domino.DocumentCollection collection); /** * Creates a new Registration object. * * @return The newly created {@link Registration} object. * @since lotus.domino 4.5.0 */ @Override public Registration createRegistration(); /** * Creates a new RichTextParagraphStyle object. * * @return The newly created {@link RichTextParagraphStyle} object. * @since lotus.domino 4.5.0 */ @Override public RichTextParagraphStyle createRichTextParagraphStyle(); /** * Creates a new RichTextStyle object. * * @return The newly created {@link RichTextStyle} object. * @since lotus.domino 4.5.0 */ @Override public RichTextStyle createRichTextStyle(); /** * Creates a new Stream object. * * @return The newly created {@link Stream} object. * @since lotus.domino 6.0.0 */ @Override public Stream createStream(); /** * Evaluates a Domino formula. * <p> * * All @Functions that affect the user interface do not work in evaluate. These include: * </p> * <p> * <ul> * <li>@Command</li> * <li>@DbManager</li> * <li>@DbName</li> * <li>@DbTitle</li> * <li>@DDEExecute</li> * <li>@DDEInitiate</li> * <li>@DDEPoke</li> * <li>@DDETerminate</li> * <li>@DialogBox</li> * <li>@PickList</li> * <li>@PostedCommand</li> * <li>@Prompt</li> * <li>@ViewTitle</li> * </ul> * </p> * * @param formula * The formula to be evaluated. * * @return The result of the evaluation. A scalar result is returned in firstElement. * @since lotus.domino 4.5.0 */ @Override public Vector<Object> evaluate(final String formula); /** * Evaluates a Domino formula against a given document. * * <p> * If the formula contains the name of a field, you must use the 2-parameter method. The formula takes the field from the document * specified as parameter 2. * </p> * * <p> * You cannot change a document with evaluate; you can only get a result. To change a document, write the result to the document with a * method such as Document.replaceItemValue. * </p> * * <p> * * All @Functions that affect the user interface do not work in evaluate. These include: * </p> * <p> * <ul> * <li>@Command</li> * <li>@DbManager</li> * <li>@DbName</li> * <li>@DbTitle</li> * <li>@DDEExecute</li> * <li>@DDEInitiate</li> * <li>@DDEPoke</li> * <li>@DDETerminate</li> * <li>@DialogBox</li> * <li>@PickList</li> * <li>@PostedCommand</li> * <li>@Prompt</li> * <li>@ViewTitle</li> * </ul> * </p> * * @param formula * The formula to be evaluated. * @param doc * The document to evaluate against. * * @return The result of the evaluation. A scalar result is returned in firstElement. * @since lotus.domino 4.5.0 */ @Override public Vector<Object> evaluate(final String formula, final lotus.domino.Document doc); /* (non-Javadoc) * * @see lotus.domino.Session#freeResourceSearch(lotus.domino.DateTime, lotus.domino.DateTime, java.lang.String, int, int) */ @Override public Vector<String> freeResourceSearch(final lotus.domino.DateTime arg0, final lotus.domino.DateTime arg1, final String arg2, final int arg3, final int arg4); /* (non-Javadoc) * * @see lotus.domino.Session#freeResourceSearch(lotus.domino.DateTime, lotus.domino.DateTime, java.lang.String, int, int, java.lang.String, int, java.lang.String, java.lang.String, int) */ @Override public Vector<String> freeResourceSearch(final lotus.domino.DateTime arg0, final lotus.domino.DateTime arg1, final String arg2, final int arg3, final int arg4, final String arg5, final int arg6, final String arg7, final String arg8, final int arg9); /* * (non-Javadoc) * * @see lotus.domino.Session#freeTimeSearch(lotus.domino.DateRange, int, java.lang.Object, boolean) */ @Override @Deprecated @Legacy({ Legacy.INTERFACES_WARNING }) public Vector<DateRange> freeTimeSearch(final lotus.domino.DateRange window, final int duration, final Object names, final boolean firstFit); /** * The Domino Directories and Personal Address Books, including directory catalogs, known to the current session. * * <p> * To distinguish between a Domino Directory and a Personal Address Book, use isPublicAddressBook and isPrivateAddressBook of Database. * </p> * * <p> * A database retrieved through getAddressBooks is closed. To access all its properties and methods, you must open the database with the * open method in NotesDatabase. * </p> * * @deprecated Use {@link #getAddressBookCollection()} instead * * @return A {@link java.lang.Vector Vector} of Databases. * @since lotus.domino 4.5.0 */ @Override @Deprecated @Legacy({ Legacy.INTERFACES_WARNING }) public Vector<Database> getAddressBooks(); /** * Represents the agent environment of the current program, if an agent is running it. * * @return If the current program is not running from an agent, this property returns <code>null</code>, otherwise it returns the * current {@link AgentContext}. * @since lotus.domino 4.5.0 */ @Override public AgentContext getAgentContext(); /** * Creates a new NotesCalendar object. * * @param db * A standard Domino mail application, for example, an application based on the template StdR85Mail. * @return The newly created {@link NotesCalendar} object. * @since lotus.domino 4.5.0 */ @Override public NotesCalendar getCalendar(final lotus.domino.Database db); /** * The common name of the user that created the session. * <p> * This is the name of the user running the script, which for a server-side code is the server name. For the name of the user logged * into the server, use {@link #getEffectiveUserName()}. * <p> * If the user name is flat (non-hierarchical), this is the same as {@link #getUserName()}. * * @return The session creators common user name. * @since lotus.domino 4.5.0 */ @Override public String getCommonUserName(); /** * Gets the session's credentials. * * @return An {@link java.lang.Object Object} representing the current credentials. * @deprecated As per IBM help documentation. No replacement. * @since lotus.domino 4.5.0 */ @Deprecated @Override @Legacy({ Legacy.IBM_DEP_WARNING }) public Object getCredentials(); /** * Creates a NotesDatabase object that represents the current database and opens the database. * * @return A {@link Database} object that can be used to access the current database. * @since lotus.domino 4.5.0 */ @Override public Database getCurrentDatabase(); /** * Creates a NotesDatabase object that represents the database located at the server and file name you specify, and opens the database, * if possible. * * @param server * The name of the server on which the database resides. Use <code>null</code> to indicate the session's environment, for * example, the current computer. * @param db * The file name and location of the database within the Domino data directory. Use a full path name if the database is not * within the Domino data directory. * * @return A {@link Database} object that can be used to access the database you have specified, or null if the database cannot be * opened and createonfail is false. If the database cannot be opened {@link Database#isOpen} is false for the NotesDatabase * object. * @since lotus.domino 4.5.0 */ @Override public Database getDatabase(final String server, final String db); /** * Creates a NotesDatabase object that represents the database located at the server and file name you specify with an option to create * the database if it does not already exist. * * @param server * The name of the server on which the database resides. Use <code>null</code> to indicate the session's environment, for * example, the current computer. * @param db * The file name and location of the database within the Domino data directory. Use a full path name if the database is not * within the Domino data directory. * @param createOnFail * If true creates a Database object even if the specified database cannot be opened. If false, returns <code>null</code> if * the database cannot be opened. * * @return A {@link Database} object that can be used to access the database you have specified, or <code>null</code> if the database * cannot be opened and <code>createOnFail</code> is false. If the database cannot be opened and <code>createOnFail</code> is * true, {@link Database#isOpen} is false for the NotesDatabase object. * @since lotus.domino 4.5.0 */ @Override public Database getDatabase(final String server, final String db, final boolean createOnFail); /** * Gets a directory of databases. * * @param server * The name of the server with database files you want to navigate. Use the empty string to indicate the current session's * environment * * @return A {@link DbDirectory} of databases on the server. * @since lotus.domino 4.5.0 */ @Override public DbDirectory getDbDirectory(final String server); /** * Creates a new NotesDirectory object using the name of the current server. * * @return A {@link Directory} object. * @since lotus.domino 4.5.0 */ @Override public Directory getDirectory(); /** * Creates a new NotesDirectory object using the name of the server you want to access. * <p> * If this method is run on a server, and the server parameter is the name of a different server, the current server must have a trusted * relationship with the specified server. * * @param server * The name of the server whose database files you want to navigate. Use no parameter method or an empty string to indicate * the current server. * @return A {@link Directory} object. * @since lotus.domino 4.5.0 */ @Override public Directory getDirectory(final String server); /** * The login name of the user that created the session. * * @return The name of the user logged into the server session running the code. * @since lotus.domino 4.5.0 */ @Override public String getEffectiveUserName(); /** * Gets the value of a non-system string environment variable. * * @param vname * The name of the environment variable. * * @return The value of the environment variable. * @since lotus.domino 4.5.0 */ @Override public String getEnvironmentString(final String vname); /** * Gets the value of a string environment variable. * * @param vname * The name of the environment variable. * @param isSystem * If <code>true</code>, the method uses the exact name of the environment variable. If <code>false</code>, the method * prefixes a dollar sign to the name. * * @return The value of the environment variable. * @since lotus.domino 4.5.0 */ @Override public String getEnvironmentString(final String vname, final boolean isSystem); /** * Gets the value of a non-system numeric environment variable. * <p> * <b>Note:</b> Do not use this method for string values. * * @param vname * The name of the environment variable. * * @return The value of the environment variable. * @since lotus.domino 4.5.0 */ @Override public Object getEnvironmentValue(final String vname); /** * Gets the value of a numeric environment variable. * <p> * <b>Note:</b> Do not use this method for string values. * * @param vname * The name of the environment variable. * @param isSystem * If <code>true</code>, the method uses the exact name of the environment variable. If <code>false</code>, the method * prefixes a dollar sign to the name. * * @return The value of the environment variable. * @since lotus.domino 4.5.0 */ @Override public Object getEnvironmentValue(final String vname, final boolean isSystem); /** * The Domino URL of a server when HTTP protocols are in effect. * * @return The URL as a string. If HTTP protocols are not available, this property returns an <code>empty string</code>. * @since lotus.domino 4.5.0 */ @Override public String getHttpURL(); /** * The international (regional) settings for the session's operating environment. * * @return the regional settings for the OS as a {@link International} object. * @since lotus.domino 4.5.0 */ @Override public International getInternational(); /** * The release of Domino the session is running on. * * @return a {@link java.lang.String String} containing the current Domino server version. * @since lotus.domino 4.5.0 */ @Override public String getNotesVersion(); /** * The default directory of the current user in a hosted organization. * * @return the default directory of the current user. * @since lotus.domino 6.0.0 */ @Override public String getOrgDirectoryPath(); /** * The name of the platform the session is running on. * <p> * The return value will be one of the following * <p> * <ul> * <li>AIX/64 * <li>Linux/64 * <li>Macintosh * <li>OS/400��� * <li>UNIX * <li>Windows/32 * <li>Windows/64 * </ul> * * @return the name of the platform * @since lotus.domino 4.5.0 */ @Override public String getPlatform(); /** * Gets the current sessions property broker. * * @return the current {@link PropertyBroker} object * @since openntf.domino 1.0.0 */ @Override public PropertyBroker getPropertyBroker(); /** * The full name of the server that the session is running on. * * @return The name of the server that the code is currently running on * @since lotus.domino 4.5.0 */ @Override public String getServerName(); /** * Gets a session token for enabling sign-on to Domino and WebSphere servers in a domain that supports Single Sign-on. * <p> * The token is unique for each user and is valid for the time specified in the Domino Directory. The format of the token is consistent * with the LtpaToken cookie used by a WebSphere server when the SSO configuration of the Domino server imports the Websphere server * keys. You can also get the token from the HTTP headers in a servlet with HttpServletRequest.getCookies(). * * @return The session token * @since lotus.domino 4.5.0 */ @Override public String getSessionToken(); /** * Gets a session token on a specific server for enabling sign-on to Domino and WebSphere servers in a domain that supports Single * Sign-on. * <p> * The token is unique for each user and is valid for the time specified in the Domino Directory. The format of the token is consistent * with the LtpaToken cookie used by a WebSphere server when the SSO configuration of the Domino server imports the Websphere server * keys. You can also get the token from the HTTP headers in a servlet with HttpServletRequest.getCookies(). * * @param serverName * The name of a server configured for Single Sign-on. If the server name is not specified, the code must execute on a server * configured for Single Sign-on. * * @return The session token * @since lotus.domino 4.5.0 */ @Override public String getSessionToken(final String serverName); /** * Gets the Domino��� URL for the session. * <p> * Effectively this method returns an empty string. Use {@link Database#getURL} to get the URL for a database. See {@link #resolve} for * URL hints. * * @return The Domino URL for the session. * @since lotus.domino 4.5.0 */ @Override public String getURL(); /** * Finds and opens the default Web Navigator database. * * @return The default Web Navigator database. * @since lotus.domino 4.5.0 */ @Override public Database getURLDatabase(); /** * The groups to which the current user belongs. * * <p> * The "groups" include the hierarchical parents of the current effective user name and the alternate user name, if available. For Mary * Smith/Department One/Acme, for example, the groups include /Department One/Acme and /Acme. * </p> * * <p> * The groups include those to which the user name belongs in the Domino��� Directory or Personal Address Book where the program is * running. * </p> * * @deprecated Use {@link #getUserGroupNameCollection} instead. * * @return A {@link java.lang.Vector vector} of group names. Elements of of type {@link org.openntf.domino.Name} * @since lotus.domino 6.0.0 */ @Override @Deprecated @Legacy({ Legacy.INTERFACES_WARNING }) public Vector<Name> getUserGroupNameList(); // TODO should we use a Vector of names? Or allow someone to request it as String-only so /** * The full name of the user or server that created the session. * <p> * This is the name of the "user" running the script, which for a server-side script is the server name. For the name of the user logged * into the server, use {@link #getEffectiveUserName}. * <p> * If the user name is hierarchical, this property returns the fully distinguished name. To get only the common name, use the * * @return The full name of the user or server that created the session. {@link #getCommonUserName} property. * @since lotus.domino 4.5.0 */ @Override public String getUserName(); /** * The name of the user or server that created the session, and the alternate name if it exists. * * @deprecated Use {@link #getUserNameCollection} instead. * * @return If the user does not have an alternate name, getUserNameList returns a vector of one element containing the user name. If the * user does have an alternate name, getUserNameList returns a vector of two elements containing the user name and the alternate * user name. * @since lotus.domino 4.5.0 */ @Override @Deprecated @Legacy({ Legacy.INTERFACES_WARNING }) public Vector<Name> getUserNameList(); // TODO should we use a Vector of names? Or allow someone to request it as String-only so there's /** * The name, in the form of a NotesName object, of the user or server that created the session. * * @return The {@link Name} object of the session creator. * @since lotus.domino 4.5.0 */ @Override public Name getUserNameObject(); /** * Gets a policy document. * <p> * Policy Types are as follows * <p> * <ul> * 0 - NotesSession.POLICYSETTINGS_REGISTRATION * <li>1 - NotesSession.POLICYSETTINGS_SETUP * <li>2 - NotesSession.POLICYSETTINGS_ARCHIVE * <li>3 - NotesSession.POLICYSETTINGS_SECURITY * <li>4 - NotesSession.POLICYSETTINGS_DESKTOP * <li>5 - NotesSession.POLICYSETTINGS_MAIL * </ul> * * @param server * The name of the server containing the policy. An empty string means the local computer. * @param name * The name of the effective user of the policy. The name must be fully qualified. * @param type * The type of policy. * @return the user policy settings * @see lotus.domino.Session#getUserPolicySettings * @since lotus.domino 6.5.0 */ @Override public Document getUserPolicySettings(final String server, final String name, final int type); /** * Gets a policy document. * <p> * Policy Types are as follows * <p> * <ul> * 0 - NotesSession.POLICYSETTINGS_REGISTRATION * <li>1 - NotesSession.POLICYSETTINGS_SETUP * <li>2 - NotesSession.POLICYSETTINGS_ARCHIVE * <li>3 - NotesSession.POLICYSETTINGS_SECURITY * <li>4 - NotesSession.POLICYSETTINGS_DESKTOP * <li>5 - NotesSession.POLICYSETTINGS_MAIL * </ul> * * @param server * The name of the server containing the policy. An empty string means the local computer. * @param name * The name of the effective user of the policy. The name must be fully qualified. * @param type * The type of policy. * @param explicitPolicy * The policy namespace, with slash (/) prefix, that contains the settings. If this parameter is specified, the second * parameter is not used. * @return the user policy settings * @see lotus.domino.Session#getUserPolicySettings * @since lotus.domino 6.5.0 */ @Override public Document getUserPolicySettings(final String server, final String name, final int type, final String explicitPolicy); /** * Hashes a string value so that it is not recognizable. * * @param password * the password * @return The hashed value. * @since lotus.domino 6.5.0 */ @Override public String hashPassword(final String password); /** * Indicates whether items of type NotesItem.MIME_PART are converted to rich text upon NotesDocument instantiation. * * @return When <code>true</code> MIME will be converted to RichText, otherwise they will remain MIME Items. * @since lotus.domino 4.5.0 */ @Override public boolean isConvertMime(); /** * Indicates whether items of type NotesItem.MIME_PART are converted to rich text upon NotesDocument instantiation. * * @return When <code>true</code> MIME will be converted to RichText, otherwise they will remain MIME Items. * @since lotus.domino 4.5.0 */ @Override public boolean isConvertMIME(); /** * Indicates whether the session is running on a server. * * @return returns <code>true</code> when the code is running on the server, otherwise returns <code>false</code> * @since lotus.domino 4.5.0 */ @Override public boolean isOnServer(); /** * (Indicates whether the session is restricted. * * @return returns <code>true</code> when the code is running in a restricted session, otherwise returns <code>false</code> * @since lotus.domino 4.5.0 */ @Override public boolean isRestricted(); /** * Indicates whether milliseconds are used in Java��� dates. * <p> * By default milliseconds are not tracked. You must set this property to true if you want milliseconds to appear in Java dates * * @return returns <code>true</code> when tracking milliseconds in Java Dates, otherwise returns <code>false</code> * @since lotus.domino 4.5.0 */ @Override public boolean isTrackMillisecInJavaDates(); /** * Indicates whether the session is a trusted session. * <p> * Applications running on a server installation that need to access databases on a remote server must have either a Trusted Server * relationship, or a Trusted Session. The userID authority that the application is running under must be accounted for in the ACL of * the remote database. That userID is often the serverID. * * @return returns <code>true</code> when the code is running in a trusted session, otherwise returns <code>false</code> * @since lotus.domino 4.5.0 */ @Override public boolean isTrustedSession(); /** * Indicates whether an instantiated NotesSession object is still valid. * * @return returns <code>true</code> when the session valid, otherwise returns <code>false</code> * @since lotus.domino 6.0.0 */ @Override public boolean isValid(); /* * (non-Javadoc) * * @see lotus.domino.Session#resetUserPassword(java.lang.String, java.lang.String, java.lang.String) */ @Override public boolean resetUserPassword(final String serverName, final String userName, final String password); /* * (non-Javadoc) * * @see lotus.domino.Session#resetUserPassword(java.lang.String, java.lang.String, java.lang.String, int) */ @Override public boolean resetUserPassword(final String serverName, final String userName, final String password, final int downloadCount); /* * (non-Javadoc) * * @see lotus.domino.Session#resolve(java.lang.String) */ @Override public Base<?> resolve(final String url); /* * (non-Javadoc) * * @see lotus.domino.Session#sendConsoleCommand(java.lang.String, java.lang.String) */ @Override public String sendConsoleCommand(final String serverName, final String consoleCommand); /* * (non-Javadoc) * * @see lotus.domino.Session#setAllowLoopBack(boolean) */ @Override public void setAllowLoopBack(final boolean flag); /* * (non-Javadoc) * * @see lotus.domino.Session#setConvertMime(boolean) */ @Override public void setConvertMime(final boolean flag); /* * (non-Javadoc) * * @see lotus.domino.Session#setConvertMIME(boolean) */ @Override public void setConvertMIME(final boolean flag); /* * (non-Javadoc) * * @see lotus.domino.Session#setEnvironmentVar(java.lang.String, java.lang.Object) */ @Override public void setEnvironmentVar(final String vname, final Object value); /* * (non-Javadoc) * * @see lotus.domino.Session#setEnvironmentVar(java.lang.String, java.lang.Object, boolean) */ @Override public void setEnvironmentVar(final String vname, final Object value, final boolean isSystem); /* * (non-Javadoc) * * @see lotus.domino.Session#setTrackMillisecInJavaDates(boolean) */ @Override public void setTrackMillisecInJavaDates(final boolean flag); /** * Verifies a plain string value against a hashed value. * * @param password * The plain value. * @param hashedPassword * The hashed value. * * @return Returns <code>true</code> if the plain vlaue converts to the same hashed value and <code>false</code> if it does not. * */ @Override public boolean verifyPassword(final String password, final String hashedPassword); }