com.ibm.openpages.api.resource.util

## Class ResourceUtil

- java.lang.Object
- - com.ibm.openpages.api.resource.util.ResourceUtil

-     public final class ResourceUtil
      extends java.lang.Object

  Resource utility class. It provides utility methods to manage object paths and fields.

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static java.lang.String` | `addObjectNameToPath(java.lang.String relativePath)` Adds an object name to the path, for example: input: /Company ABC/AsiaPac output: /Company ABC/AsiaPac/AsiaPac See unit test for more details.
    `static java.lang.String` | `getBundleName(java.lang.String bundleFieldPath)` Gets the name of the Bundle from the bundleFieldPath.
    `static java.lang.String` | `getFieldName(java.lang.String bundleFieldPath)` Gets the name of the Field from the bundleFieldPath.
    `static java.lang.String` | `getFullPath(com.openpages.sdk.metadata.ContentType contentType, java.lang.String rawPath)`
    `static java.lang.String` | `getFullPath(java.lang.String relativePath, boolean isFolder, ITypeDefinition typeDefinition)` Returns full resource path provided relative path, boolean isFolder and the ITypeDefinition for the GRCObject.
    `static java.lang.String` | `getFullPath(java.lang.String path, boolean isFolder, java.util.List<ITypeDefinition> typeDefinitions)` Returns full resource path provided relative path, boolean isFolder, and list of all ITypeDefinitions.
    `static java.util.List<IField>` | `getModifiedFields(IGRCObject grcObject)` Gets a list of Fields that have been modified on the GRCObject before it is saved (committed).
    `static java.lang.Object` | `getOriginalValueForField(java.lang.String bundleFieldPath, IGRCObject object)` Gets the original value of an IField object by using bundleFieldPath.
    `static java.lang.String` | `getRelativePath(java.lang.String fullPath, ITypeDefinition typeDefinition)` Returns relative path of the IResource provided full path and ITypedefinition.
    `static java.lang.String` | `getRelativePath(java.lang.String fullPath, java.util.List<ITypeDefinition> typeDefinitions)` Returns relative path of the IResource provided full path and List of all ITypeDefinitions.
    `static java.lang.String` | `getRelativePath(java.lang.String fullPath, java.lang.String rootFolderPath)` Returns relative path of the IResource provided full path, and root folder path.
    `static java.lang.String` | `getRelativePath(java.lang.String fullPath, java.lang.String rootFolderPath, boolean excludeFolderName)` Returns relative path of the IResource provided full path, and root folder path.
    `static int` | `getResourceLevel(com.openpages.sdk.metadata.ContentType contentType, com.openpages.sdk.repository.Resource resource)` Global Financial Services / Corporate / HR --> 3 Global Financial Services / Corporate --> 2 -> 0 Note: this seems like a hack to calculate the level based on the path rather than doing a proper lookup.
    `static void` | `setFieldValue(IField field, java.lang.Object value)` Sets the value of the Field with the object specified.
    `static java.lang.String` | `trimPathWhitespace(java.lang.String path)` Trims whitespace around path delimiters, i.e.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### setFieldValue

          public static void setFieldValue(IField field,
                                           java.lang.Object value)

           Sets the value of the Field with the object specified.
           The Field should be of Type ICurrencyField, IBooleanField, IReferenceField,
           IIntegerField, IDateField, IEnumField, IFloatField, IMultiEnumField, or
           IStringField.

           CurrencyField
           The value object should be a String array.
           object[0] should have com.ibm.openpages.api.configuration.ICurrency Metadata.
           object[1] should have local amount.
           object[2] should have exchange rate (optional).

           BooleanField
           Value object should be of type Boolean.

           IntegerField
           Value object should be of type Integer.

           StringField
           Value object should be of type String.

           DateField
           Value object should of of type Date.

           FloatField
           Value object should be of type Float.

           EnumField
           Value object should be of type String.

           MultiEnumField
           Value object should be String array.

           IReferenceField
           Value object should be of type String, representing an Id.

      Parameters:
        `field` - (required) field whose value needs to be changed
        `value` - the value of the field

    - #### getRelativePath

          public static java.lang.String getRelativePath(java.lang.String fullPath,
                                                         java.util.List<ITypeDefinition> typeDefinitions)

      Returns relative path of the IResource provided full path and List of all ITypeDefinitions. If IGRCObject or IFolder, relative path will be returned; otherwise, full path is returned.

      Parameters:
        `fullPath` - the full path
        `typeDefinitions` - the List of ITypeDefinition
      Returns:
        path the relative path

    - #### getRelativePath

          public static java.lang.String getRelativePath(java.lang.String fullPath,
                                                         ITypeDefinition typeDefinition)

      Returns relative path of the IResource provided full path and ITypedefinition. If IGRCObject or IFolder, relative path will be returned; otherwise, full path is returned.

      Parameters:
        `fullPath` - the full path
        `typeDefinition` - the ITypeDefinition
      Returns:
        path the relative path

    - #### getRelativePath

          public static java.lang.String getRelativePath(java.lang.String fullPath,
                                                         java.lang.String rootFolderPath)

      Returns relative path of the IResource provided full path, and root folder path. If IGRCObject or IFolder, relative path will be returned; otherwise, full path is returned.

      Parameters:
        `fullPath` - the full path
        `rootFolderPath` - the root folder path
      Returns:
        path the relative path

    - #### getRelativePath

          public static java.lang.String getRelativePath(java.lang.String fullPath,
                                                         java.lang.String rootFolderPath,
                                                         boolean excludeFolderName)

      Returns relative path of the IResource provided full path, and root folder path. If IGRCObject or IFolder, relative path will be returned; otherwise, full path is returned.

      Parameters:
        `fullPath` - the full path
        `rootFolderPath` - the root folder path
        `excludeFolderName` - if 'true' will exclude the root Object Type folder name from the relative path.
      Returns:
        path the relative path

    - #### getFullPath

          public static java.lang.String getFullPath(java.lang.String path,
                                                     boolean isFolder,
                                                     java.util.List<ITypeDefinition> typeDefinitions)

      Returns full resource path provided relative path, boolean isFolder, and list of all ITypeDefinitions. Parameters are used to match the relative path against a particular type, which is used to construct the actual Full path for the resource. If the relative path belongs to a folder, then the isFolder value is true.

      Parameters:
        `path` - the relative path including the type's root folder without a leading folder separator '/'. e.g. "BusinessEntity/Company ABC/AsiaPac/AsiaPac"
        `isFolder` -
        `typeDefinitions` - the List of possible ITypeDefinition to try to match the relative path against
      Returns:
        path the full path
      See Also:
        `IMetaDataService#getTypes()}`

    - #### addObjectNameToPath

          public static java.lang.String addObjectNameToPath(java.lang.String relativePath)

      Adds an object name to the path, for example: input: /Company ABC/AsiaPac output: /Company ABC/AsiaPac/AsiaPac See unit test for more details. Also trims internal whitespace surrounding path delimiters.
      Parameters:
        `relativePath` - (required)
      Returns:

    - #### trimPathWhitespace

          public static java.lang.String trimPathWhitespace(java.lang.String path)

      Trims whitespace around path delimiters, i.e. 'level1 / level2' becomes 'level1/level2'
      Parameters:
        `path` - A path delimited by StringUtil.PATH_DELIMITER
      Returns:
        Same path with whitespace around delimiters trimmed

    - #### getFullPath

          public static java.lang.String getFullPath(com.openpages.sdk.metadata.ContentType contentType,
                                                     java.lang.String rawPath)

      Parameters:
        `contentType` - Usually the Business Entity content type
        `rawPath` - Example: "Global Financial Services / Corporate / HR"
      Returns:
        Example: "/_op_sox/Project/Default/BusinessEntity/Global Financial Services/Corporate/HR/HR.txt"

    - #### getResourceLevel

          public static int getResourceLevel(com.openpages.sdk.metadata.ContentType contentType,
                                             com.openpages.sdk.repository.Resource resource)

      Global Financial Services / Corporate / HR --> 3 Global Financial Services / Corporate --> 2 -> 0 Note: this seems like a hack to calculate the level based on the path rather than doing a proper lookup. I could not find any way to do a lookup unfortunately.
      Parameters:
        `contentTypeFullPath` -
        `resource` - A resource with a path like: "Global Financial Services / Corporate / HR"
      Returns:
        It would be 3 in the example above

    - #### getFullPath

          public static java.lang.String getFullPath(java.lang.String relativePath,
                                                     boolean isFolder,
                                                     ITypeDefinition typeDefinition)

      Returns full resource path provided relative path, boolean isFolder and the ITypeDefinition for the GRCObject. Parameters are used to construct the actual Full path for the resource. If the relative path belongs to a folder, then the isFolder value is true.

      This method does not validate whether the path is for an actual GRCObject.

      Parameters:
        `relativePath` - (required) the relative path including a leading folder separator '/'. e.g. "/Company ABC/AsiaPac/AsiaPac", Note, it does not include extensions for GRCObjects
        `isFolder` - (required) true if the path is for a folder and false if the path is for a GRCObject
        `typeDefinition` - (required) the TypeDefinition for the object being retrieved
      Returns:
        the full path for the object including the type's root folder path

    - #### getModifiedFields

          public static java.util.List<IField> getModifiedFields(IGRCObject grcObject)
                                                          throws java.lang.Exception

      Gets a list of Fields that have been modified on the GRCObject before it is saved (committed).
      Parameters:
        `grcObject` - the GRC Object
      Returns:
        get a list of modified fields from the GRC Object
      Throws:
        `java.lang.Exception`

    - #### getOriginalValueForField

          public static java.lang.Object getOriginalValueForField(java.lang.String bundleFieldPath,
                                                                  IGRCObject object)
                                                           throws java.lang.Exception

      Gets the original value of an IField object by using bundleFieldPath.
      Parameters:
        `bundleFieldPath` - (required) colon-separated path of bundle and field
        `object` - IGRCObject which has the bundle and field identified in bundleFieldPath
      Returns:
        Object value
      Throws:
        `java.lang.Exception`

    - #### getBundleName

          public static java.lang.String getBundleName(java.lang.String bundleFieldPath)

      Gets the name of the Bundle from the bundleFieldPath.
      Parameters:
        `bundleFieldPath` - (required) colon-separated bundle field path. i.e. Bundle:Field
      Returns:
        the Bundle name

    - #### getFieldName

          public static java.lang.String getFieldName(java.lang.String bundleFieldPath)

      Gets the name of the Field from the bundleFieldPath.
      Parameters:
        `bundleFieldPath` - (required) colon-separated bundle field path. i.e. Bundle:Field
      Returns:
        the Field name

Licensed Materials - Property of IBM
OpenPages with Watson (PID: 5725-D51)
© Copyright IBM Corporation 2013, 2020. All Rights Reserved.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.