Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jet.server.api.rmi
Interface RemoteResourceManager

All Superinterfaces:
  java.rmi.Remote

    public interface RemoteResourceManager

extends java.rmi.Remote

This RMI interface defines methods to explore the resources on the remote JReport Server.
This is an RMI-based interface, invocation on the methods of this interface will make an RMI call to the associated JReport Server.

Method Summary
`java.lang.String` | `addFolder(java.lang.String userID, java.lang.String parentPath, java.util.Hashtable htFolder)` Deprecated. since version 6.1, replaced by createFolder(...) and addResourcesToFolder(...). the param "includesSubDir" of the method addResourcesToFolder(...) should be true in this case.
`VersionRecord` | `addResource(java.lang.String userID, java.lang.String folderPath, boolean isAutoConvert, java.util.Hashtable htResource, java.util.Hashtable[] permissions)` Adds a resource into the specified folder.
`VersionRecord` | `addResource(java.lang.String userID, java.lang.String folderPath, java.util.Hashtable htResource)` Deprecated. since version 6.1, replaced by addResource(String userID, String folderPath, Hashtable htResource, Hashtable[] permissions)
`VersionRecord` | `addResource(java.lang.String userID, java.lang.String folderPath, java.util.Hashtable htResource, java.util.Hashtable[] permissions)` Adds a resource into the specified folder.
`void` | `addResourcesToFolder(java.lang.String userID, java.lang.String folderPath, java.lang.String fromRealDir, boolean includesSubDir, boolean isAutoConvert, java.util.Hashtable htResource, java.util.Hashtable[] permissions)` Adds resources and folders according to catalog/report files and sub-folders under the disk directory into the specified folder.
`void` | `addResourcesToFolder(java.lang.String userID, java.lang.String folderPath, java.lang.String fromRealDir, boolean includesSubDir, java.util.Hashtable htResource, java.util.Hashtable[] permissions)` Adds resources and folders according to catalog/report files and sub-folders under the disk directory into the specified folder.
`VersionRecord` | `addResultInReport(java.lang.String userID, java.lang.String reportPath, java.util.Hashtable htResult)` Adds a result into the specific report.
`boolean` | `checkPermission(java.lang.String userID, java.lang.String resourcePath, int versionNumber, java.security.acl.Permission permission)` Checks whether the specific user has a permission on the specific version number of a resource path.
`boolean` | `checkPermission(java.lang.String userID, java.lang.String resourcePath, java.security.acl.Permission permission)` Checks whether the specific user has a permission on the specific resource path.
`java.lang.String` | `createFolder(java.lang.String userID, java.lang.String parentPath, java.lang.String folderName, java.util.Hashtable htFolder, java.util.Hashtable[] permissions)` Creates a sub-folder into the specified folder.
`java.util.Vector` | `getAllRoles(java.lang.String submitter)` Gets all roles.
`java.util.Vector` | `getAllUsers(java.lang.String submitter)` Gets all users.
`java.util.Vector` | `getCatalogsInPath(java.lang.String userID, java.lang.String path)` Gets the catalogs in a resource path.
`CatalogVersionRecord` | `getCatalogVersion(java.lang.String userID, java.lang.String catName, int versionNumber)` Gets a catalog version by catalog name and version number.
`java.util.Vector` | `getCatalogVersions(java.lang.String userID, java.lang.String catName)` Gets the versions of a specific catalog.
`java.util.Vector<PathInfo>` | `getDashboardsInPath(java.lang.String userID, java.lang.String path)` Gets the dashboards in a resource path.
`java.util.Vector` | `getEnabledCustomFieldNames()` Gets all names of enabled custom fields.
`java.lang.String[]` | `getExtensions(java.lang.String mimieType)` Gets file extensions of the MIME type.
`java.util.Vector` | `getFileSysDirsInPath(java.lang.String userID, java.lang.String path)` Gets the sub-directories in a resource path.
`java.util.Vector` | `getFileSysFilesInPath(java.lang.String userID, java.lang.String path)` Gets the files in a resource path.
`java.util.Vector` | `getFoldersInPath(java.lang.String userID, java.lang.String path)` Gets the folders in a resource path.
`java.lang.String` | `getHistDir()` Gets the directory in which result versions are saved to.
`java.lang.String` | `getHistFile(java.lang.String file)` Gets the history file directory path.
`java.util.Vector` | `getImagesByCatalog(java.lang.String userID, java.lang.String catalog)` Gets inherited permissions of the users attached to the specific path.
`java.lang.String` | `getInheritedLinkedCatalog(java.lang.String userID, java.lang.String path)` Gets inherited linked catalog.
`java.util.Hashtable[]` | `getInheritedPermissions(java.lang.String userID, java.lang.String path, int versionNumber)` Gets inherited permissions set to the specific path.
`int` | `getLatestVersionNumber(java.lang.String resourcePath)` Gets the latest version number of the specific resource.
`int` | `getLatestVersionNumber(java.lang.String resourcePath, java.lang.String userID)` Gets the latest version number of the specific resource.
`java.util.Vector<PathInfo>` | `getLCsInPath(java.lang.String userID, java.lang.String path)` Gets the library components (LCs) in a resource path.
`LCVersionRecord` | `getLCVersion(java.lang.String userID, java.lang.String lcName, int versionNumber)` Gets an LC version by LC name and version number.
`java.util.Vector<LCVersionRecord>` | `getLCVersions(java.lang.String userID, java.lang.String lcName)` Gets the versions of a specific LC.
`java.lang.String` | `getMIMEType(java.lang.String extName)` Gets the MIME type of a file extension.
`PathInfo` | `getPathInfo(java.lang.String userID, java.lang.String path)` Gets the PathInfo for a specific user.
`java.util.Hashtable[]` | `getPermissions(java.lang.String userID, java.lang.String path, int versionNumber)` Gets the permissions set to the specific path.
`java.lang.String` | `getRealm()` Gets the active realm.
`java.lang.String` | `getRealmDir()` Gets the directory of the active realm.
`java.lang.String` | `getRealPathOfNode(java.lang.String userID, java.lang.String path)` Gets real path property of a node, which is specified by path.
`java.util.Vector` | `getReferGroups(java.lang.String userID)` Gets the groups which the specific user belongs to.
`java.util.Vector` | `getReferRoles(java.lang.String userID)` Gets the roles which are defined for the specific user.
`java.util.Vector` | `getReferUsers(java.lang.String userID)` Gets the users which the specific user is referred.
`java.util.Vector` | `getReports(java.lang.String userID, java.lang.String catalog)` Gets the reports of a catalog.
`java.util.Vector` | `getReportsInPath(java.lang.String userID, java.lang.String path)` Gets the reports in a resource path.
`ReportVersionRecord` | `getReportVersion(java.lang.String userID, java.lang.String rptName, int versionNumber)` Gets a version of the specific report by version number.
`java.util.Vector` | `getReportVersions(java.lang.String userID, java.lang.String rptName)` Gets the versions of a specific report.
`byte[]` | `getResourceTreeInputStream(java.lang.String userID, int streamType, java.lang.String[] roots, java.lang.String[] suffixes, java.util.Locale locale)` Gets resource tree input stream.
`byte[]` | `getResourceTreeInputStream(java.lang.String userID, java.lang.String... pathPrefix)` Gets the resource tree XML input stream.
`byte[]` | `getResourceTreeInputStreamByType(java.lang.String userID, int streamType, java.lang.String... pathPrefix)` Gets the resource tree XML input stream.
`ResultVersionRecord` | `getResultDocVersion(java.lang.String userID, java.lang.String resultDocName, int versionNumber)` Gets the version of the specific result by version number.
`java.util.Vector` | `getResultDocVersions(java.lang.String userID, java.lang.String resultDocName)` Gets the versions of a specific result.
`int` | `getResultMaxVersionAmount(java.lang.String userID, java.lang.String reportResource)` Gets the maximum number of versions for the specific report's results.
`java.util.Vector` | `getResultsInPath(java.lang.String userID, java.lang.String path)` Gets the results in a resource path.
`ResultVersionRecord` | `getResultVersion(java.lang.String userID, java.lang.String rptName, int versionNumber)` Gets a result version attached to the specific report by version number.
`ResultVersionRecord` | `getResultVersionByNodeID(java.lang.String recordID)` Gets a result version by node id.
`java.util.Vector` | `getResultVersions(java.lang.String userID, java.lang.String rptName)` Gets the result versions that are attached to a specific report.
`java.util.Vector` | `getRolesByUser(java.lang.String submitter, java.lang.String userID)` Gets the roles which the specific user has.
`java.lang.String` | `getRoot()` Gets the resource root directory of the report server.
`java.lang.String` | `getRootNodeDisplay(java.util.Locale locale)` Get "Root" node's display text on UI for specified locale.
`java.lang.String` | `getSchedulePath()` Gets the path of the Schedule.
`java.util.Vector` | `getSubnodes(java.lang.String userID, java.lang.String path)` Gets the sub-nodes of a resource node in the resource tree.
`java.util.Vector` | `getSubpaths(java.lang.String userID, java.lang.String path)` Gets the sub-paths of a resource path.
`java.util.Vector` | `getSubpathsAndCatalogs(java.lang.String userID, java.lang.String path)` Gets the sub-paths of a resource path and catalogs.
`java.lang.String` | `getTempDir()` Gets the temporary directory of the server.
`java.util.Vector` | `getUsersByRole(java.lang.String submitter, java.lang.String roleID)` Gets the users who have the specific role.
`VersionRecord` | `getVersion(java.lang.String userID, java.lang.String resourceName, int versionNumber)` Gets a resource version by resource name and version number.
`boolean` | `isAdminUser(java.lang.String userID)` Checks if a user is an administrator.
`boolean` | `isCatalogLinked(java.lang.String userID, java.lang.String path)` Checks whether the catalog is linked.
`boolean` | `isNodeExist(java.lang.String path, java.lang.String userName)` Checks whether or not the specified node exists.
`boolean` | `isOrganizationAdminUser(java.lang.String userID)` Checks if a user is an administrator of an organization.
`void` | `loadUserResAliasToMem(java.lang.String userID)` Loads the resource alias of a user and save them into memory.
`java.lang.String` | `refreshFolders(java.lang.String userID)` Refreshes the folders representing in UI for the specific user.
`void` | `removeNode(java.lang.String userID, java.lang.String path)` Removes the specific node which was indicated by path.
`void` | `removeVersion(java.lang.String userID, java.lang.String versionID)` Removes the specific version.
`void` | `rmUserResAliasFromMem(java.lang.String userID)` Removes the resource alias of a user from memory.
`void` | `setNodeProperties(java.lang.String userID, java.lang.String path, java.util.Hashtable htProps, java.util.Hashtable[] permissions)` Sets properties and permissions of users on the specific path.
`void` | `setNodeProperties(java.lang.String userID, java.lang.String path, int versionNumber, java.util.Hashtable htProps, java.util.Hashtable[] permissions)` Sets properties and permissions on the specific version of path or path.
`void` | `setPermissions(java.lang.String userID, java.lang.String path, int versionNumber, java.util.Hashtable[] permissions)` Sets permissions for the specified path.
`void` | `setResultMaxVersionAmount(java.lang.String userID, java.lang.String reportResource, int maxVersionAmount)` Sets the maximum number of versions for the specific report's results.
`void` | `setResultVersionProperties(java.lang.String userID, java.lang.String report, int versionNumber, java.util.Hashtable htProps)` Sets properties of users on the specific result version of a report.

Method Detail

### getMIMEType

    java.lang.String getMIMEType(java.lang.String extName)
                                 throws java.rmi.RemoteException

  Gets the MIME type of a file extension.

  Parameters:
    `extName` - the file extension.
  Returns:
    the MIME type of a file extension.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getExtensions

    java.lang.String[] getExtensions(java.lang.String mimieType)
                                     throws java.rmi.RemoteException

  Gets file extensions of the MIME type.

  Parameters:
    `mimieType` - the MIME type.
  Returns:
    file extensions of the MIME type.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getRealm

    java.lang.String getRealm()
                              throws java.rmi.RemoteException

  Gets the active realm.

  Returns:
    the active realm.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getRealmDir

    java.lang.String getRealmDir()
                                 throws java.rmi.RemoteException

  Gets the directory of the active realm.

  Returns:
    the directory of the active realm.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getTempDir

    java.lang.String getTempDir()
                                throws java.rmi.RemoteException

  Gets the temporary directory of the server.

  Returns:
    the temporary directory of the server.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getHistDir

    java.lang.String getHistDir()
                                throws java.rmi.RemoteException

  Gets the directory in which result versions are saved to.

  Returns:
    the directory in which result versions are saved to.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getRoot

    java.lang.String getRoot()
                             throws java.rmi.RemoteException

  Gets the resource root directory of the report server.

  Returns:
    the resource root directory of the report server.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getPathInfo

    PathInfo getPathInfo(java.lang.String userID,
                         java.lang.String path)
                         throws java.rmi.RemoteException,
                                RptServerException

  Gets the PathInfo for a specific user.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the PathInfo.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getSubpaths

    java.util.Vector getSubpaths(java.lang.String userID,
                                 java.lang.String path)
                                 throws java.rmi.RemoteException,
                                        RptServerException

  Gets the sub-paths of a resource path. The sub-paths mean non-leaf resource sub-nodes (except catalogs) and sub-directories.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the sub-paths of the resource path. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getSubpathsAndCatalogs

    java.util.Vector getSubpathsAndCatalogs(java.lang.String userID,
                                            java.lang.String path)
                                            throws java.rmi.RemoteException,
                                                   RptServerException

  Gets the sub-paths of a resource path and catalogs.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the sub-paths of the resource path and catalogs. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getSubnodes

    java.util.Vector getSubnodes(java.lang.String userID,
                                 java.lang.String path)
                                 throws java.rmi.RemoteException,
                                        RptServerException

  Gets the sub-nodes of a resource node in the resource tree.

  Parameters:
    `userID` - the user ID.
    `path` - the resource node, for example, /SunVMDemo.
  Returns:
    the sub-nodes of the resource node in the resource tree. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getCatalogsInPath

    java.util.Vector getCatalogsInPath(java.lang.String userID,
                                       java.lang.String path)
                                       throws java.rmi.RemoteException,
                                              RptServerException

  Gets the catalogs in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the catalogs in the resource path. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getLCsInPath

    java.util.Vector<PathInfo> getLCsInPath(java.lang.String userID,
                                            java.lang.String path)
                                            throws java.rmi.RemoteException,
                                                   RptServerException

  Gets the library components (LCs) in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /COMPONENT_LIB/test.
  Returns:
    the catalogs in the resource path. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getFileSysDirsInPath

    java.util.Vector getFileSysDirsInPath(java.lang.String userID,
                                          java.lang.String path)
                                          throws java.rmi.RemoteException,
                                                 RptServerException

  Gets the sub-directories in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the sub-directories in the resource path. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getFileSysFilesInPath

    java.util.Vector getFileSysFilesInPath(java.lang.String userID,
                                           java.lang.String path)
                                           throws java.rmi.RemoteException,
                                                  RptServerException

  Gets the files in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the files in the resource path. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getReports

    java.util.Vector getReports(java.lang.String userID,
                                java.lang.String catalog)
                                throws java.rmi.RemoteException,
                                       RptServerException

  Gets the reports of a catalog.

  Parameters:
    `userID` - the user ID.
    `catalog` - the catalog, for example, /SunVMDemo/SunVMDemo.cat.
  Returns:
    the reports of the catalog. The Vector contains PathInfo objects.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `RptServerException` - if an RptServerException occurs.
  See Also:
    `PathInfo`

### getSchedulePath

    java.lang.String getSchedulePath()
                                     throws java.rmi.RemoteException

  Gets the path of the Schedule.

  Returns:
    the path of the Schedule.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getHistFile

    java.lang.String getHistFile(java.lang.String file)
                                 throws java.rmi.RemoteException

  Gets the history file directory path.

  Parameters:
    `file` - the file.
  Returns:
    the history file.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getReportsInPath

    java.util.Vector getReportsInPath(java.lang.String userID,
                                      java.lang.String path)
                                      throws java.rmi.RemoteException,
                                             NoPrivilegeException,
                                             UnknownResource

  Gets the reports in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the reports in the resource path. The Vector contains PathInfo objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `PathInfo`

### getDashboardsInPath

    java.util.Vector<PathInfo> getDashboardsInPath(java.lang.String userID,
                                                   java.lang.String path)
                                                   throws java.rmi.RemoteException,
                                                          NoPrivilegeException,
                                                          UnknownResource

  Gets the dashboards in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the dashboards in the resource path, the vector contains PathInfo objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 10.1
  See Also:
    `PathInfo`

### getResultsInPath

    java.util.Vector getResultsInPath(java.lang.String userID,
                                      java.lang.String path)
                                      throws java.rmi.RemoteException,
                                             NoPrivilegeException,
                                             UnknownResource

  Gets the results in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the results in the resource path. The Vector contains PathInfo objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `PathInfo`

### getFoldersInPath

    java.util.Vector getFoldersInPath(java.lang.String userID,
                                      java.lang.String path)
                                      throws java.rmi.RemoteException,
                                             NoPrivilegeException,
                                             UnknownResource

  Gets the folders in a resource path.

  Parameters:
    `userID` - the user ID.
    `path` - the resource path, for example, /SunVMDemo.
  Returns:
    the folders in the resource path. The Vector contains PathInfo objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `PathInfo`

### getCatalogVersions

    java.util.Vector getCatalogVersions(java.lang.String userID,
                                        java.lang.String catName)
                                        throws java.rmi.RemoteException,
                                               NoPrivilegeException,
                                               UnknownResource

  Gets the versions of a specific catalog.

  Parameters:
    `userID` - the user ID.
    `catName` - the catalog name, for example, /SampleReports/SampleReports.cat.
  Returns:
    the versions of the catalog. The `Vector` object contains `CatalogVersionRecord` objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `CatalogVersionRecord`

### getLCVersions

    java.util.Vector<LCVersionRecord> getLCVersions(java.lang.String userID,
                                                    java.lang.String lcName)
                                                    throws java.rmi.RemoteException,
                                                           NoPrivilegeException,
                                                           UnknownResource

  Gets the versions of a specific LC.

  Parameters:
    `userID` - the user ID.
    `lcName` - the LC name, for example, /COMPONENT_LIB/SampleReports.lc.
  Returns:
    the versions of the LC. The `Vector` object contains `LCVersionRecord` objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 10.1
  See Also:
    `LCVersionRecord`

### getReportVersions

    java.util.Vector getReportVersions(java.lang.String userID,
                                       java.lang.String rptName)
                                       throws java.rmi.RemoteException,
                                              NoPrivilegeException,
                                              UnknownResource

  Gets the versions of a specific report.

  Parameters:
    `userID` - the user ID.
    `rptName` - the report name, for example, /SampleReports/CustomerAnalysis.cls.
  Returns:
    the versions of the report. The `Vector` object contains `ReportVersionRecord` objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `ReportVersionRecord`

### getResultVersions

    java.util.Vector getResultVersions(java.lang.String userID,
                                       java.lang.String rptName)
                                       throws java.rmi.RemoteException,
                                              NoPrivilegeException,
                                              UnknownResource

  Gets the result versions that are attached to a specific report.

  Parameters:
    `userID` - the user ID.
    `rptName` - the report name, for example, /SampleReports/CustomerAnalysis.cls.
  Returns:
    the result versions of the report. The `Vector` object contains `ResultVersionRecord` objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution .
  Since:
    version 6
  See Also:
    `ResultVersionRecord`

### getResultDocVersions

    java.util.Vector getResultDocVersions(java.lang.String userID,
                                          java.lang.String resultDocName)
                                          throws java.rmi.RemoteException,
                                                 NoPrivilegeException,
                                                 UnknownResource

  Gets the versions of a specific result.

  Parameters:
    `userID` - the user ID.
    `resultDocName` - the result name, for example, /SampleReports/resultdoc1.
  Returns:
    the versions of the result. The `Vector` object contains `ResultVersionRecord` objects.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `ResultVersionRecord`

### getCatalogVersion

    CatalogVersionRecord getCatalogVersion(java.lang.String userID,
                                           java.lang.String catName,
                                           int versionNumber)
                                           throws java.rmi.RemoteException,
                                                  NoPrivilegeException,
                                                  UnknownResource

  Gets a catalog version by catalog name and version number.

  Parameters:
    `userID` - the user ID.
    `catName` - the catalog name, for example, /SampleReports/Tutorail.cat.
    `versionNumber` - the version number
  Returns:
    the version of the specific catalog, a `CatalogVersionRecord` object, or null if the specific version cannot be gotten.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `CatalogVersionRecord`

### getVersion

    VersionRecord getVersion(java.lang.String userID,
                             java.lang.String resourceName,
                             int versionNumber)
                             throws java.rmi.RemoteException,
                                    NoPrivilegeException,
                                    UnknownResource

  Gets a resource version by resource name and version number.

  Parameters:
    `userID` - the user ID.
    `resourceName` - the resource name, for example, /COMPONENT_LIB/Tutorail.lc.
    `versionNumber` - the version number
  Returns:
    the version of the specific LC, a `VersionRecord` object, or null if the specific version cannot be gotten.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 10.1
  See Also:
    `VersionRecord`

### getLCVersion

    LCVersionRecord getLCVersion(java.lang.String userID,
                                 java.lang.String lcName,
                                 int versionNumber)
                                 throws java.rmi.RemoteException,
                                        NoPrivilegeException,
                                        UnknownResource

  Gets an LC version by LC name and version number.

  Parameters:
    `userID` - the user ID.
    `lcName` - the LC name, for example, /COMPONENT_LIB/Tutorail.lc.
    `versionNumber` - the version number.
  Returns:
    the version of the specific LC, a `LCVersionRecord` object or null if the specific version cannot be gotten.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 10.1
  See Also:
    `LCVersionRecord`

### getReportVersion

    ReportVersionRecord getReportVersion(java.lang.String userID,
                                         java.lang.String rptName,
                                         int versionNumber)
                                         throws java.rmi.RemoteException,
                                                NoPrivilegeException,
                                                UnknownResource

  Gets a version of the specific report by version number.

  Parameters:
    `userID` - the user ID.
    `rptName` - the report name, for example, /SampleReports/CustomerAnalysis.cls.
    `versionNumber` - the version number.
  Returns:
    a `ReportVersionRecord` object, or null if the specific version cannot be gotten.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `ReportVersionRecord`

### getResultVersion

    ResultVersionRecord getResultVersion(java.lang.String userID,
                                         java.lang.String rptName,
                                         int versionNumber)
                                         throws java.rmi.RemoteException,
                                                NoPrivilegeException,
                                                UnknownResource

  Gets a result version attached to the specific report by version number.

  Parameters:
    `userID` - the user ID.
    `rptName` - the report name, for example, /SampleReports/CustomerAnalysis.cls.
    `versionNumber` - the version number.
  Returns:
    a `ResultVersionRecord` object, or null if the specific version cannot be gotten
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `ResultVersionRecord`

### getResultDocVersion

    ResultVersionRecord getResultDocVersion(java.lang.String userID,
                                            java.lang.String resultDocName,
                                            int versionNumber)
                                            throws java.rmi.RemoteException,
                                                   NoPrivilegeException,
                                                   UnknownResource

  Gets the version of the specific result by version number.

  Parameters:
    `userID` - the user ID.
    `resultDocName` - the result name, for example, /SampleReports/resultdoc1.
    `versionNumber` - the version number.
  Returns:
    a `ResultVersionRecord` object, or null if the specific version cannot be gotten.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 6
  See Also:
    `ResultVersionRecord`

### setResultMaxVersionAmount

    void setResultMaxVersionAmount(java.lang.String userID,
                                   java.lang.String reportResource,
                                   int maxVersionAmount)
                                   throws java.rmi.RemoteException,
                                          NoPrivilegeException,
                                          UnknownResource

  Sets the maximum number of versions for the specific report's results.

  Parameters:
    `userID` - the user ID.
    `reportResource` - the report resource name, for example, /SampleReports/CustomerAnalysis.cls
    `maxVersionAmount` - the new maximum number of versions value. If it is 0 or a negative value, number of versions of the specific resource will be unlimited.
  Throws:
    `NoPrivilegException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `NoPrivilegeException`
  Since:
    version 6

### getResultMaxVersionAmount

    int getResultMaxVersionAmount(java.lang.String userID,
                                  java.lang.String reportResource)
                                  throws java.rmi.RemoteException,
                                         NoPrivilegeException,
                                         UnknownResource

  Gets the maximum number of versions for the specific report's results.

  Parameters:
    `userID` - the user ID.
    `reportResource` - the report resource name, for example, /SampleReports/CustomerAnalysis.cls
  Returns:
    the maximum number of versions value. If it is 0, the number of versions of the specific resource will be unlimited, if -1 is returned, some error occurred.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution
  Since:
    version 6

### removeNode

    void removeNode(java.lang.String userID,
                    java.lang.String path)
                    throws java.rmi.RemoteException,
                           NoPrivilegeException,
                           UnknownResource

  Removes the specific node which was indicated by path.

  Parameters:
    `userID` - the user ID.
    `path` - the path from which a resource will be removed.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### addResource

    VersionRecord addResource(java.lang.String userID,
                              java.lang.String folderPath,
                              java.util.Hashtable htResource)
                              throws java.rmi.RemoteException,
                                     NoPrivilegeException,
                                     NodeExistsException,
                                     UnknownResource

  Deprecated. since version 6.1, replaced by addResource(String userID, String folderPath, Hashtable htResource, Hashtable[] permissions)

  Adds a resource into the specific folder.

  Parameters:
    `userID` - the user ID.
    `folderPath` - the path to specify the folder in which the new resource will be added.
    `htResource` - a `Hashtable` that contains attributes of the new resource. These attributes can be indicated by some defined constants in APIConst, for example, TAG_NODE_NAME, TAG_RESOURCE_TYPE, TAG_DEFINE_PERMISSION, etc.
    `permissions` - a `Hashtable` array which contains two `Hashtable` objects.
  Returns:
    a `VersionRecord` object to represent a resource version that was just added, or null if failed to add the resource.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `NodeExistsException` - if a NodeExistsException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution .

### addResource

    VersionRecord addResource(java.lang.String userID,
                              java.lang.String folderPath,
                              java.util.Hashtable htResource,
                              java.util.Hashtable[] permissions)
                              throws java.rmi.RemoteException,
                                     NoPrivilegeException,
                                     NodeExistsException,
                                     UnknownResource

  Adds a resource into the specified folder. The resource name is specified by `APIConst.TAG_NODE_NAME`. If the node does not exist under the specified folder, a resource node will be added under the folder. The resource type is specified by the value of `APIConst.TAG_RESOURCE_TYPE` in the parameter htResource, and a version will be added into the new resource node. If there is an existing resource with the same type and name, just add a version to the resource node. If there is a node with the same name under the folder, but with different node type and resource type, `NodeExistsException` will be thrown.
  The `addResource(userID, folderPath, htResource, permissions)` has the same effect as:
  `addResource(userID, folderPath, false, htResource, permissions)`

  Parameters:
    `userID` - the user ID to add resource. The user should have write permission (cannot set permissions) or grant permission (can set permissions), otherwise `NoPrivilegeException` will be thrown.
    `folderPath` - the path to specify the folder, in which the new resource will be added.
    `htResource` - a `Hashtable` that contains attributes of the new resource. These attributes can be indicated by some defined constants in `APIConst`, for example, TAG_NODE_NAME, TAG_RESOURCE_TYPE, etc.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means no permission setting on the resource.
  Returns:
    a `VersionRecord` object to represent a resource version that was just added, or null if it failed to add the resource.
  Throws:
    `NoPrivilegeException` - if the user does not have write (cannot set permissions) or grant permission on the folder.
    `NodeExistsException` - if a same name node exists under the specified folder but it does not have the same node type and resource type.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### addResource

    VersionRecord addResource(java.lang.String userID,
                              java.lang.String folderPath,
                              boolean isAutoConvert,
                              java.util.Hashtable htResource,
                              java.util.Hashtable[] permissions)
                              throws java.rmi.RemoteException,
                                     NoPrivilegeException,
                                     NodeExistsException,
                                     UnknownResource

  Adds a resource into the specified folder. The resource name is specified by `APIConst.TAG_NODE_NAME`. If the node does not exist under the specified folder, a resource node will be added under the folder. The resource type is specified by the value of `APIConst.TAG_RESOURCE_TYPE` in the parameter htResource, and a version will be added into the new resource node.
  If there is an existing resource with the same type and the same name, just add a version to the resource node.
  If there is a node with the same name under the folder, but it does not have the same node type and resource type, `NodeExistsException` will be thrown.

  Parameters:
    `userID` - the user ID to add resource. The user should have write permission (cannot set permissions) or grant permission (can set permissions), otherwise `NoPrivilegeException` will be thrown.
    `folderPath` - the path to specify the folder, in which the new resource will be added.
    `isAutoConvert` - whether to convert the old version report to the latest version report. The old version report means the report that was created by using JReport version older than 8 (excluded).
    `htResource` - a `Hashtable` that contains attributes of the new resource. These attributes can be indicated by some defined constants in `APIConst`, for example, TAG_NODE_NAME, TAG_RESOURCE_TYPE, etc.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means no permission setting on the resource.
  Returns:
    a `VersionRecord` object to represent a resource version that was just added, or null if failed to add the resource.
  Throws:
    `NoPrivilegeException` - if the user does not have write (cannot set permissions) or grant permission on the folder.
    `NodeExistsException` - if a same name node exists under the specified folder but it does not have the same node type and resource type.
    `UnknownResource` - if no node can be found by the path
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### addResultInReport

    VersionRecord addResultInReport(java.lang.String userID,
                                    java.lang.String reportPath,
                                    java.util.Hashtable htResult)
                                    throws java.rmi.RemoteException,
                                           NoPrivilegeException,
                                           UnknownResource

  Adds a result into the specific report.

  Parameters:
    `userID` - the user ID.
    `reportPath` - the path to specify the report in which the new report will be added.
    `htResult` - a `Hashtable` that contains attributes of the new result. These attributes can be indicated by some defined constants in APIConst, for example, TAG_NODE_NAME, TAG_RESOURCE_TYPE, TAG_DEFINE_PERMISSION, etc.
  Returns:
    a `VersionRecord` object to represent a result version that was just added, or null if it failed to add the result.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### addFolder

    java.lang.String addFolder(java.lang.String userID,
                               java.lang.String parentPath,
                               java.util.Hashtable htFolder)
                               throws java.rmi.RemoteException,
                                      NoPrivilegeException,
                                      NodeExistsException,
                                      UnknownResource

  Deprecated. since version 6.1, replaced by createFolder(...) and addResourcesToFolder(...). the param "includesSubDir" of the method addResourcesToFolder(...) should be true in this case.

  Adds a sub-folder into the specific folder.

  Parameters:
    `userID` - the user ID.
    `parentPath` - the path to specify in which folder the new resource will be added.
    `htFolder` - a `Hashtable` that contains attributes of the new folder. These attributes can be indicated by some defined constants in APIConst, for example, TAG_NODE_NAME, TAG_DEFINE_PERMISSION, etc.
  Returns:
    the new folder's absolute path, or null if it failed add the sub-folder.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `NodeExistsException` - if a NodeExistsException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### createFolder

    java.lang.String createFolder(java.lang.String userID,
                                  java.lang.String parentPath,
                                  java.lang.String folderName,
                                  java.util.Hashtable htFolder,
                                  java.util.Hashtable[] permissions)
                                  throws java.rmi.RemoteException,
                                         NoPrivilegeException,
                                         NodeExistsException,
                                         UnknownResource

  Creates a sub-folder into the specified folder.

  Parameters:
    `userID` - the user ID to add resource. The user should have write permission (cannot set permissions) or grant permission (can set permissions), otherwise `NoPrivilegeException` will be thrown.
    `parentPath` - the path to specify in which folder the new folder will be added.
    `folderName` - the name of the new folder.
    `htFolder` - a `Hashtable` that contains attributes of the new folder, These attributes can be indicated by some defined constants in APIConst, for example, TAG_NODE_DESC, etc.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means no permission setting on the resource.
  Returns:
    the new folder's absolute path, or null if failed to add the sub-folder.
  Throws:
    `NoPrivilegeException` - if the user does not have write (cannot set permissions) or grant permission on the parent folder.
    `NodeExistsException` - if a same name node exists under the specified folder but it does not have the same node type and resource type.
    `UnknownResource` - if no node can be found by the path
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution

### addResourcesToFolder

    void addResourcesToFolder(java.lang.String userID,
                              java.lang.String folderPath,
                              java.lang.String fromRealDir,
                              boolean includesSubDir,
                              java.util.Hashtable htResource,
                              java.util.Hashtable[] permissions)
                              throws java.rmi.RemoteException,
                                     NoPrivilegeException,
                                     NodeExistsException,
                                     UnknownResource

  Adds resources and folders according to catalog/report files and sub-folders under the disk directory into the specified folder.
  Report and catalog files under the disk directory will be added to folder as corresponding resource nodes, and sub-dir is added as folder, if the value of `includesSubDir` is true, the contents in the sub-dir will be added as well.
  The `addResourcesToFolder(userID, folderPath, fromRealDir, includesSubDir, htResource, permissions)` has the same effect as:
  `addResourcesToFolder(userID, folderPath, fromRealDir, includesSubDir, false, htResource, permissions)`.

  Parameters:
    `userID` - the user ID. The user should have write permission (cannot set permissions) or grant permission (can set permissions), otherwise `NoPrivilegeException` will be thrown.
    `folderPath` - the path to specify in which folder the new resources will be added.
    `fromRealDir` - the disk directory which contains these files and sub-folders.
    `includesSubDir` - indicates whether to add files in sub-dir or not.
    `htResource` - a `Hashtable` that contains attributes of the new resources. These attributes can be indicated by some defined constants in APIConst.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means no permission setting on the resource.
  Throws:
    `NoPrivilegeException` - if the user does not have write (cannot set permissions) or grant permission on the parent folder.
    `NodeExistsException` - if a same name node exists under the specified folder but it does not have the same node type and resource type.
    `UnknownResource` - if no node can be found by the `folderPath`
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### addResourcesToFolder

    void addResourcesToFolder(java.lang.String userID,
                              java.lang.String folderPath,
                              java.lang.String fromRealDir,
                              boolean includesSubDir,
                              boolean isAutoConvert,
                              java.util.Hashtable htResource,
                              java.util.Hashtable[] permissions)
                              throws java.rmi.RemoteException,
                                     NoPrivilegeException,
                                     NodeExistsException,
                                     UnknownResource

  Adds resources and folders according to catalog/report files and sub-folders under the disk directory into the specified folder.
  Report and catalog files under the disk directory will be added to the folder as corresponding resource nodes, and sub-dir is added as folder, if the value of `includesSubDir` is true, the contents in the sub-dir will be added as well.

  Parameters:
    `userID` - the user ID. The user should have write permission (cannot set permissions) or grant permission (can set permissions), otherwise `NoPrivilegeException` will be thrown.
    `folderPath` - the path to specify in which folder new resources will be added.
    `fromRealDir` - the disk directory which contains these files and sub-folders.
    `includesSubDir` - indicates whether to add files in sub-dir or not.
    `isAutoConvert` - whether to convert the old version report to the latest version report. The old version report means the report that was created by using JReport version older than 8 (excluded).
    `htResource` - a `Hashtable` that contains attributes of the new resources. These attributes can be indicated by some defined constants in `APIConst`.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means no permission setting on the resource.
  Throws:
    `NoPrivilegeException` - if the user does not have write (cannot set permissions) or grant permission on the parent folder.
    `NodeExistsException` - if a same name node exists under the specified folder but it does not have the same node type and resource type.
    `UnknownResource` - if no node can be found by the `folderPath`
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### removeVersion

    void removeVersion(java.lang.String userID,
                       java.lang.String versionID)
                       throws java.rmi.RemoteException,
                              NoPrivilegeException

  Removes the specific version.

  Parameters:
    `userID` - the user ID.
    `versionID` - the version ID to be removed. It can be gotten from `VersionRecord`.
  Throws:
    `NoPrivilegeException` - if a NoPrivilegeException occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  See Also:
    `VersionRecord`

### getAllUsers

    java.util.Vector getAllUsers(java.lang.String submitter)
                                 throws java.rmi.RemoteException

  Gets all users.

  Parameters:
    `submitter` - the user id who sent this request.
  Returns:
    a `Vector` object containing all user names, or null if the submitter does not have permission to get all users.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getUsersByRole

    java.util.Vector getUsersByRole(java.lang.String submitter,
                                    java.lang.String roleID)
                                    throws java.rmi.RemoteException,
                                           NoSuchRoleException

  Gets the users who have the specific role.

  Parameters:
    `submitter` - the user id who sent this request.
    `roleID` - the role ID.
  Returns:
    a `Vector` object containing the user names who have the specific role, or null if the submitter does not have permission to get users by this role.
  Throws:
    `NoSuchRoleException` - if a NoPrivilegeException occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getAllRoles

    java.util.Vector getAllRoles(java.lang.String submitter)
                                 throws java.rmi.RemoteException

  Gets all roles.

  Parameters:
    `submitter` - the user id who sent this request.
  Returns:
    a `Vector` object containing all role names, or null if the submitter does not have permission to get all roles.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getRolesByUser

    java.util.Vector getRolesByUser(java.lang.String submitter,
                                    java.lang.String userID)
                                    throws java.rmi.RemoteException,
                                           NoSuchUserException

  Gets the roles which the specific user has.

  Parameters:
    `submitter` - the user id who sent this request.
    `userID` - the user ID.
  Returns:
    a `Vector` object containing the role names which the specific user has, or null if the submitter does not have permission to get roles by this user.
  Throws:
    `NoSuchUserException` - if a NoSuchUserException occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getReferRoles

    java.util.Vector getReferRoles(java.lang.String userID)
                                   throws java.rmi.RemoteException,
                                          NoSuchUserException

  Gets the roles which are defined for the specific user.

  Parameters:
    `userID` - the user ID.
  Returns:
    a `Vector` object containing the role names which the specific user is included in. These roles are owned by the specific user except administrator and everyone.
  Throws:
    `NoSuchUserException` - if a NoSuchUserException occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getReferGroups

    java.util.Vector getReferGroups(java.lang.String userID)
                                    throws java.rmi.RemoteException,
                                           NoSuchUserException

  Gets the groups which the specific user belongs to. These groups contain the specific user.

  Parameters:
    `userID` - the user ID.
  Returns:
    a `Vector` object containing the group names which the specific user belongs to.
  Throws:
    `NoSuchUserException` - if a NoSuchUserException occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getReferUsers

    java.util.Vector getReferUsers(java.lang.String userID)
                                   throws java.rmi.RemoteException,
                                          NoSuchUserException

  Gets the users which the specific user is referred. These users have same role except for administrator and everyone with the specific user.

  Parameters:
    `userID` - the user ID.
  Returns:
    a `Vector` object containing the user names which the specific user is referred.
  Throws:
    `NoSuchUserException` - if a NoSuchUserException occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getPermissions

    java.util.Hashtable[] getPermissions(java.lang.String userID,
                                         java.lang.String path,
                                         int versionNumber)
                                         throws java.rmi.RemoteException,
                                                NoPrivilegeException,
                                                UnknownResource

  Gets the permissions set to the specific path.

  Parameters:
    `userID` - the user ID who wants to get permissions. The user should have read permission on this node, otherwise `NoPrivilegeException` will be thrown.
    `path` - the path to set permissions to.
    `versionNumber` - the version number to specify the version of the path. If the parameter path points to a folder, this parameter will be ignored, or if path points to a catalog/report/result node and the version number is 0, the version number will be ignored as well.
  Returns:
    a `Hashtable` array, which contains three `Hashtable` objects to represent permissions set on the path. `null` means no permission set on the path.

    The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` which presents the permissions that the user has on the specific path.
    In the value string, character '1' and '0' respectively represents Allow and Deny, the position indicates which privilege it stand for (0 base):

    - 0 - visible
    - 1 - read
    - 2 - write
    - 3 - execute
    - 4 - schedule
    - 5 - delete
    - 6 - grant
    - 7 - update status
    - 8 - edit (JDashboard)
    For example, a entry ("user1" : "110000000") means user1 has permission visible and read.

    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.

    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.

  Throws:
    `NoPrivilegeException` - if the user does not have read permission on the path.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getInheritedPermissions

    java.util.Hashtable[] getInheritedPermissions(java.lang.String userID,
                                                  java.lang.String path,
                                                  int versionNumber)
                                                  throws java.rmi.RemoteException,
                                                         NoPrivilegeException,
                                                         UnknownResource

  Gets inherited permissions set to the specific path. Inherited permissions means the permissions set on the parent node. If the parent node does not have permission setting, will get them from the parent of the parent node, and so on.
  When checking permissions on a specified path for a user, if the path has set permissions on, JReport will check the user's permission in this permission setting, otherwise, will check user's permission in inherited permission settings. For example, inherited permissions will not take effect if the specified path has permission settings which override the inherited permissions.

  Parameters:
    `userID` - the user ID who wants to get permissions. The user should have read permission on this node, otherwise `NoPrivilegeException` will be thrown.
    `path` - the path which is used to get inherited permissions.
    `versionNumber` - the version number to specify the version of the path. If the parameter path points to a folder, this parameter will be ignored, or if path points to a catalog/report/result node and the version number is 0, the version number will be ignored as well.
  Returns:
    a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission set in inherited permissions.
    Return null which means no permission set on the path.
  Throws:
    `NoPrivilegeException` - if the user does not have read permission on the path.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getImagesByCatalog

    java.util.Vector getImagesByCatalog(java.lang.String userID,
                                        java.lang.String catalog)
                                        throws NoPrivilegeException,
                                               UnknownResource,
                                               java.rmi.RemoteException

  Gets inherited permissions of the users attached to the specific path.

  Parameters:
    `userID` - the user ID who wants to get permissions.
    `catalog` - the full catalog path, for example, /SunVMDemo/SunVMDemo.cat.
  Returns:
    the image files in the resource path. The Vector contains PathInfo objects.
  Throws:
    `NoPrivilegeException` - if the user does not have grant permission on the path.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### setPermissions

    void setPermissions(java.lang.String userID,
                        java.lang.String path,
                        int versionNumber,
                        java.util.Hashtable[] permissions)
                        throws java.rmi.RemoteException,
                               NoPrivilegeException,
                               UnknownResource

  Sets permissions for the specified path.

  Parameters:
    `userID` - the user ID who wants to set permissions. The user should have grant permission on this node, otherwise `NoPrivilegeException` will be thrown.
    `path` - the path which will be used to set permissions on.
    `versionNumber` - the version number to specify the version of the path. If the parameter path points to a folder, this parameter will be ignored, or if path points to a catalog/report/result node and the version number is 0, the version number will be ignored as well.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions set on the path.

    The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` which presents the permissions that the user has on the specific path.
    In the value string, character '1' and '0' respectively represents Allow and Deny, the position indicates which privilege it stand for (0 base):

    - 0 - visible
    - 1 - read
    - 2 - write
    - 3 - execute
    - 4 - schedule
    - 5 - delete
    - 6 - grant
    - 7 - update status
    - 8 - edit (JDashboard)
    For example, a entry ("user1" : "110000000") means user1 has permission visible and read.

    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.

    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.

  Throws:
    `NoPrivilegeException` - if the user does not have grant permission on the path.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### setNodeProperties

    void setNodeProperties(java.lang.String userID,
                           java.lang.String path,
                           java.util.Hashtable htProps,
                           java.util.Hashtable[] permissions)
                           throws java.rmi.RemoteException,
                                  NoPrivilegeException,
                                  NodeExistsException,
                                  UnknownResource

  Sets properties and permissions of users on the specific path.

  Parameters:
    `userID` - the user ID who wants to set properties. The user should have write permission (cannot set permission together), or grant permission (can set permission in this method) on this node, otherwise `NoPrivilegeException` will be thrown.
    `path` - the path which will be used to set properties and permissions on.
    `htProps` - the properties of the specific node. These properties are indicated by APIConst.TAG_MAXVERSION, APIConst.TAG_REPLACE_OLD_VERSION, APIConst.TAG_NODE_REAL_PATH, APIConst.TAG_TAG_ENABLE_DEFAULT_LINKED_CATALOG, APIConst.TAG_DEFAULT_LINKED_CATALOG APIConst.TAG_IS_USING_INHERITED, etc. all values are represented by a `String`.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means on permission setting on the path.
  Throws:
    `NoPrivilegeException` - if the user does not have write permission (cannot set permission together), or grant permission (can set permission in this method) on the path.
    `NodeExistsException` - if you rename a node to an existing node name.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### setNodeProperties

    void setNodeProperties(java.lang.String userID,
                           java.lang.String path,
                           int versionNumber,
                           java.util.Hashtable htProps,
                           java.util.Hashtable[] permissions)
                           throws java.rmi.RemoteException,
                                  NoPrivilegeException,
                                  UnknownResource

  Sets properties and permissions on the specific version of path or path.

  Parameters:
    `userID` - the user ID who wants to set properties. The user should have write permission (cannot set permission together), or grant permission (can set permission in this method) on this node, otherwise `NoPrivilegeException` will be thrown.
    `path` - the path which will be used to set properties and permissions on.
    `versionNumber` - the version number to specify the version of the path. If the parameter path points to a folder, this parameter will be ignored, or if path points to a catalog/report/result node and the version number is 0, the version number will be ignored as well.
    `htProps` - the properties of the specific node. These properties are indicated by APIConst.TAG_EXPIRED_TIME, etc. all values are represented by a `String`.
    `permissions` - a `Hashtable` array, which contains three `Hashtable` objects to represent permissions that the path inherits from the parent. The first `Hashtable` contains several user/permissions pairs to represent the defined permissions attached to the specific path. In this `Hashtable` object, the key is user name, the value is a `String` of 8 length which presents the permissions that the user has on the specific path.
    As the string of 8 length, 8 characters correspond to 8 permissions (the index starts from 0):
    char 0 - visible
    char 1 - read
    char 2 - write
    char 3 - execute
    char 4 - schedule
    char 5 - delete
    char 6 - grant
    char 7 - update status
    The available value of a character is string value of jet.cs.api.CSPermission.ALLOW (1) and jet.cs.api.CSPermission.DENY (0).
    For example, in the first element, a Hashtable entry ("guest" : "11000000") means user has permission visible and read.
    The second `Hashtable` object contains several role/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    The third `Hashtable` object contains several group/permissions pairs to represent the defined permissions on the specific path and its structure is similar to user/permissions.
    An array element which is null means user/role/group has no permission.
    null means no permission setting on the path.
  Throws:
    `NoPrivilegeException` - if the user does not have write permission (cannot set permission together), or grant permission (can set permission in this method) on the path.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### setResultVersionProperties

    void setResultVersionProperties(java.lang.String userID,
                                    java.lang.String report,
                                    int versionNumber,
                                    java.util.Hashtable htProps)
                                    throws java.rmi.RemoteException,
                                           NoPrivilegeException,
                                           UnknownResource

  Sets properties of users on the specific result version of a report.

  Parameters:
    `userID` - the user ID who wants to set properties.
    `report` - the report which will be used to set properties on attached result version of.
    `versionNumber` - the version number. If it is zero or an invalid version number, no action will be performed.
    `htProps` - the properties of the specific node. These properties are indicated by APIConst.TAG_EXPIRED_TIME, etc. all values are represented by a `String`.
  Throws:
    `NoPrivilegeException` - if the user does not have write permission (cannot set permission together), or grant permission (can set permission in this method) on the path.
    `UnknownResource` - if an UnknownResource occurs.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getRealPathOfNode

    java.lang.String getRealPathOfNode(java.lang.String userID,
                                       java.lang.String path)
                                       throws java.rmi.RemoteException,
                                              NoPrivilegeException,
                                              UnknownResource

  Gets real path property of a node, which is specified by path.

  Parameters:
    `userID` - the user id.
    `path` - the path to specify a node (a folder, catalog, or report).
  Returns:
    the real path of the specific node.
  Throws:
    `NoPrivilegeException` - if the user does not have permission to get the specific node's realPath.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### refreshFolders

    java.lang.String refreshFolders(java.lang.String userID)
                                    throws java.rmi.RemoteException

  Refreshes the folders representing in UI for the specific user. JReport Server creates an xml file for every user. All folders can be shown in UI for the users that are represented in this xml file. If a user wants to refresh his folder tree in UI, this method should be invoked.

  Parameters:
    `userID` - the user id.
  Returns:
    the xml file name.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getResourceTreeInputStream

    byte[] getResourceTreeInputStream(java.lang.String userID,
                                      java.lang.String... pathPrefix)
                                      throws java.rmi.RemoteException

  Gets the resource tree XML input stream.

  Parameters:
    `userID` - the user id.
    `pathPrefix` - the root path prefix, such as /(Public Reports), /USERFOLDERPATH, /COMPONENT_LIB etc.
  Throws:
    `java.rmi.RemoteException`

### getResourceTreeInputStream

    byte[] getResourceTreeInputStream(java.lang.String userID,
                                      int streamType,
                                      java.lang.String[] roots,
                                      java.lang.String[] suffixes,
                                      java.util.Locale locale)
                                      throws java.rmi.RemoteException

  Gets resource tree input stream.

  Parameters:
    `userID` - the user id.
    `streamType` - the type of return stream, XML_STREAM indicate return XML text stream, JSON_STREAM indicate return JSON text stream, other type return null.
    `root` - root paths , such as /(Public Reports), /USERFOLDERPATH, /COMPONENT_LIB etc.
    `roots` - root paths , such as /(Public Reports), /USERFOLDERPATH, /COMPONENT_LIB etc.
    `suffixes` - resource suffix, such as ".cls", ".dsh", etc.
  Returns:
    the input stream of resource tree text.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getResourceTreeInputStreamByType

    byte[] getResourceTreeInputStreamByType(java.lang.String userID,
                                            int streamType,
                                            java.lang.String... pathPrefix)
                                            throws java.rmi.RemoteException

  Gets the resource tree XML input stream.

  Parameters:
    `userID` - the user id.
    `streamType` - the type of return stream, XML_STREAM indicate return XML text stream, JSON_STREAM indicate return JSON text stream, other type return null.
    `pathPrefix` - the root path prefix, such as /(Public Reports), /USERFOLDERPATH, /COMPONENT_LIB etc.
  Throws:
    `java.rmi.RemoteException`

### getLatestVersionNumber

    int getLatestVersionNumber(java.lang.String resourcePath)
                               throws java.rmi.RemoteException,
                                      UnknownResource

  Gets the latest version number of the specific resource.

  Parameters:
    `resourcePath` - the resource path to specify the resource.
  Returns:
    the latest version number of the specific resource. If the specific resource does not exist or the input string does not specify a resource, return -1.
  Throws:
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getLatestVersionNumber

    int getLatestVersionNumber(java.lang.String resourcePath,
                               java.lang.String userID)
                               throws java.rmi.RemoteException,
                                      UnknownResource

  Gets the latest version number of the specific resource.

  Parameters:
    `resourcePath` - the resource path to specify the resource.
    `userID` - the user id.
  Returns:
    the latest version number of the specific resource. If the specific resource does not exist or the input string does not specify a resource, return -1.
  Throws:
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### isAdminUser

    boolean isAdminUser(java.lang.String userID)
                        throws java.rmi.RemoteException

  Checks if a user is an administrator.

  Parameters:
    `userID` - the user id.
  Returns:
    true if the user is an administrator, otherwise false.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### isOrganizationAdminUser

    boolean isOrganizationAdminUser(java.lang.String userID)
                                    throws java.rmi.RemoteException

  Checks if a user is an administrator of an organization.

  Parameters:
    `userID` - the user id.
  Returns:
    true if the user is an administrator of an organization, otherwise false.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### isNodeExist

    boolean isNodeExist(java.lang.String path,
                        java.lang.String userName)
                        throws java.rmi.RemoteException

  Checks whether or not the specified node exists. If it does, true is returned, otherwise false is returned.

  Parameters:
    `path` - the specific resource path.
    `userName` - the user name.
  Returns:
    true if the node exists, otherwise false.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getResultVersionByNodeID

    ResultVersionRecord getResultVersionByNodeID(java.lang.String recordID)
                                                 throws java.rmi.RemoteException,
                                                        NoPrivilegeException,
                                                        UnknownResource

  Gets a result version by node id.

  Parameters:
    `recordID` - the node id.
  Returns:
    ResultVersionRecord.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
    `NoPrivilegeException` - if the user does not have permission to get the specific result version.
    `UnknownResource` - if no node can be found by the path.
  Since:
    version 6
  See Also:
    `ResultVersionRecord`

### checkPermission

    boolean checkPermission(java.lang.String userID,
                            java.lang.String resourcePath,
                            java.security.acl.Permission permission)
                            throws NoSuchUserException,
                                   UnknownResource,
                                   java.rmi.RemoteException

  Checks whether the specific user has a permission on the specific resource path.

  Parameters:
    `userID` - the user id.
    `resourcePath` - the resource path.
    `permission` - a permission, which should be one of the permissions defined in jet.server.api.Permissions.
  Returns:
    true if the user has the specific permission on the resource, otherwise false.
  Throws:
    `NoSuchUserException` - if NoSuchUserException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### checkPermission

    boolean checkPermission(java.lang.String userID,
                            java.lang.String resourcePath,
                            int versionNumber,
                            java.security.acl.Permission permission)
                            throws NoSuchUserException,
                                   UnknownResource,
                                   java.rmi.RemoteException

  Checks whether the specific user has a permission on the specific version number of a resource path.

  Parameters:
    `userID` - the user id.
    `resourcePath` - the resource path.
    `versionNumber` - the version number of the resource path.
    `permission` - a permission, which should be one of the permissions defined in jet.server.api.Permissions.
  Returns:
    true if the user has the specific permission on the resource, otherwise false.
  Throws:
    `NoSuchUserException` - if NoSuchUserException occurs.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### loadUserResAliasToMem

    void loadUserResAliasToMem(java.lang.String userID)
                               throws java.rmi.RemoteException

  Loads the resource alias of a user and save them into memory.

  Parameters:
    `userID` - the user name.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### rmUserResAliasFromMem

    void rmUserResAliasFromMem(java.lang.String userID)
                               throws java.rmi.RemoteException

  Removes the resource alias of a user from memory.

  Parameters:
    `userID` - the user name.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.

### getInheritedLinkedCatalog

    java.lang.String getInheritedLinkedCatalog(java.lang.String userID,
                                               java.lang.String path)
                                               throws NoPrivilegeException,
                                                      UnknownResource,
                                                      java.rmi.RemoteException

  Gets inherited linked catalog.

  Parameters:
    `userID` - the user name.
    `path` - the resource path.
  Returns:
    the inherited linked catalog or null if the inheritance is broken.
  Throws:
    `NoPrivilegeException` - if the user does not have permission to get the specific linked catalog.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 8.1

### isCatalogLinked

    boolean isCatalogLinked(java.lang.String userID,
                            java.lang.String path)
                            throws NoPrivilegeException,
                                   UnknownResource,
                                   java.rmi.RemoteException

  Checks whether the catalog is linked.

  Parameters:
    `userID` - the user name.
    `path` - the catalog path.
  Returns:
    true if the catalog is linked.
  Throws:
    `NoPrivilegeException` - if the user does not have permission to get the specific node's properties.
    `UnknownResource` - if no node can be found by the path.
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 8.2

### getEnabledCustomFieldNames

    java.util.Vector getEnabledCustomFieldNames()
                                                throws java.rmi.RemoteException

  Gets all names of enabled custom fields.

  Returns:
    all names of enabled custom fields.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  Since:
    version 9.1

### getRootNodeDisplay

    java.lang.String getRootNodeDisplay(java.util.Locale locale)
                                        throws java.rmi.RemoteException

  Get "Root" node's display text on UI for specified locale. "Root" node is a virtual node, which does not really exist on resource tree, it has sub-folders: My Reports, My Components, Public Reports, Public Components, for organization user, also has sub-folders: Organization Reports and Organization Components.

  Parameters:
    `locale` - the locale
  Returns:
    "Root" node's display text, which should be defined by `ResourceNLSManager.updateRootNLSEntry(Locale, TextNLSEntry, String)`, return null if not defined.
  Throws:
    `java.rmi.RemoteException` - if communication-related error occurs during RMI call execution.
  See Also:
    `ResourceNLSManager`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD