Package com.orchestranetworks.service

# Class AccessRule.NoWriteRule

java.lang.Object
com.orchestranetworks.service.AccessRule.NoWriteRule

All Implemented Interfaces:
  `AccessRule`

Enclosing interface:
  AccessRule

public static final class AccessRule.NoWriteRule extends Object implements AccessRule
Wraps another rule to return a maximum access level of read-only. That is, if the inner rule returns read-write, this rule will return read-only. Otherwise, it returns the same result as the inner rule.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface com.orchestranetworks.service.AccessRule

  `AccessRule.NoWriteRule`

- ## Field Summary

  ### Fields inherited from interface com.orchestranetworks.service.AccessRule

  `ALWAYS_HIDDEN, ALWAYS_READ_ONLY, ALWAYS_READ_WRITE`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AccessPermission`
  `getPermission(Adaptation anAdaptation, Session aSession, SchemaNode aNode)`
  Returns permissions for the specified arguments.
  `static AccessRule`
  `wrapRule(AccessRule aRule)`

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

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

- ## Method Details

  - ### wrapRule

    public static AccessRule wrapRule(AccessRule aRule)

  - ### getPermission

    public AccessPermission getPermission(Adaptation anAdaptation, Session aSession, SchemaNode aNode)
    Description copied from interface: `AccessRule`
    Returns permissions for the specified arguments.

    Warning: if this `AccessRule` is assigned to a `table record`, this method is called in multiple contexts:

    1. To evaluate table "column" permissions; in this case, `aDataSetOrRecord` is the current dataset.
    2. To evaluate the node permissions of a specific existing record; in this case, `aDataSetOrRecord` is the current record.
    3. To evaluate the node permissions in a record creation context (meaning that the record does not exist yet); in this case, `aDataSetOrRecord` is the current dataset.
    4. Furthermore, if table history is activated, this method will also be invoked in the context of the history view in the first two cases above. In the context of the history view, some fields may be absent and the expected permissions can be different from those in other contexts. Consequently, the implementation of this method may need to check if it is being invoked from the history view. For more information, see Permissions for table history.
    Specified by:
      `getPermission` in interface `AccessRule`
    Parameters:
      `anAdaptation` - current dataset or record (see warning above)
      `aSession` - current user session
      `aNode` - current data model node whose access must be computed; when the permission is requested for the dataset itself (not a particular node), this is the root node
    Returns:
      a permission, never `null`.
    See Also:
      - `SchemaExtensionsContext`
      - Performance and tuning