Package org.apache.sis.metadata.iso.constraint

## Class DefaultSecurityConstraints

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - DefaultConstraints
        - - DefaultSecurityConstraints

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`, `Constraints`, `SecurityConstraints`

      public class DefaultSecurityConstraints
      extends DefaultConstraints
      implements SecurityConstraints

  Handling restrictions imposed on the resource for national security or similar security concerns. The following property is mandatory in a well-formed metadata according ISO 19115:
  `MD_SecurityConstraints` `└─classification…………` Name of the handling restrictions on the resource.

  Limitations:

  - Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
  - Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases. Serialization support is appropriate for short term storage or RMI between applications running the same version of Apache SIS. For long term storage, use `XML` instead.
  Since:
    0.3
  See Also:
    Serialized Form

  Defined in the `sis-metadata` module

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class ModifiableMetadata

      `ModifiableMetadata​.State`

  - ### Field Summary

    - ### Fields inherited from class ISOMetadata

      `identifiers`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DefaultSecurityConstraints()` | Creates an initially empty security constraints.
    `DefaultSecurityConstraints​(CharSequence useLimitation)` | Constructs a new constraints with the given use limitation.
    `DefaultSecurityConstraints​(Classification classification)` | Creates a security constraints initialized with the specified classification.
    `DefaultSecurityConstraints​(SecurityConstraints object)` | Constructs a new instance initialized with the values from the specified metadata object.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultSecurityConstraints` | `castOrCopy​(SecurityConstraints object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Classification` | `getClassification()` | Returns the name of the handling restrictions on the resource.
    `InternationalString` | `getClassificationSystem()` | Returns the name of the classification system.
    `InternationalString` | `getHandlingDescription()` | Returns the additional information about the restrictions on handling the resource.
    `InternationalString` | `getUserNote()` | Returns the explanation of the application of the legal constraints or other restrictions and legal prerequisites for obtaining and using the resource.
    `void` | `setClassification​(Classification newValue)` | Sets the name of the handling restrictions on the resource.
    `void` | `setClassificationSystem​(InternationalString newValue)` | Sets the name of the classification system.
    `void` | `setHandlingDescription​(InternationalString newValue)` | Sets the additional information about the restrictions on handling the resource.
    `void` | `setUserNote​(InternationalString newValue)` | Sets the explanation of the application of the legal constraints or other restrictions and legal prerequisites for obtaining and using the resource.

    - ### Methods inherited from class DefaultConstraints

      `castOrCopy, getConstraintApplicationScope, getGraphics, getReferences, getReleasability, getResponsibleParties, getUseLimitations, setConstraintApplicationScope, setGraphics, setReferences, setReleasability, setResponsibleParties, setUseLimitations`

    - ### Methods inherited from class ISOMetadata

      `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier, transitionTo`

    - ### Methods inherited from class ModifiableMetadata

      `checkWritePermission, checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, freeze, isModifiable, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, unmodifiable, writeCollection, writeList, writeMap, writeSet`

    - ### Methods inherited from class AbstractMetadata

      `asMap, asTreeTable, equals, equals, getInterface, hashCode, isEmpty, prune, toString`

    - ### Methods inherited from class Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface Constraints

      `getUseLimitations`

- - ### Constructor Detail

    - #### DefaultSecurityConstraints

          public DefaultSecurityConstraints()

      Creates an initially empty security constraints.

    - #### DefaultSecurityConstraints

          public DefaultSecurityConstraints​(CharSequence useLimitation)

      Constructs a new constraints with the given use limitation.
      Parameters:
        `useLimitation` - the use limitation, or `null` if none.

    - #### DefaultSecurityConstraints

          public DefaultSecurityConstraints​(Classification classification)

      Creates a security constraints initialized with the specified classification.
      Parameters:
        `classification` - the name of the handling restrictions on the resource, or `null`.

    - #### DefaultSecurityConstraints

          public DefaultSecurityConstraints​(SecurityConstraints object)

      Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, since the other metadata contained in the given object are not recursively copied.
      Parameters:
        `object` - the metadata to copy values from, or `null` if none.
      See Also:
        `castOrCopy(SecurityConstraints)`

  - ### Method Detail

    - #### castOrCopy

          public static DefaultSecurityConstraints castOrCopy​(SecurityConstraints object)

      Returns a SIS metadata implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices:
      - If the given object is `null`, then this method returns `null`.
      - Otherwise if the given object is already an instance of `DefaultSecurityConstraints`, then it is returned unchanged.
      - Otherwise a new `DefaultSecurityConstraints` instance is created using the copy constructor and returned. Note that this is a shallow copy operation, since the other metadata contained in the given object are not recursively copied.
      Parameters:
        `object` - the object to get as a SIS implementation, or `null` if none.
      Returns:
        a SIS implementation containing the values of the given object (may be the given object itself), or `null` if the argument was null.

    - #### getClassification

          public Classification getClassification()

      Returns the name of the handling restrictions on the resource.
      Specified by:
        `getClassification` in interface `SecurityConstraints`
      Returns:
        name of the handling restrictions on the resource, or `null`.

    - #### setClassification

          public void setClassification​(Classification newValue)

      Sets the name of the handling restrictions on the resource.
      Parameters:
        `newValue` - the new classification.

    - #### getUserNote

          public InternationalString getUserNote()

      Returns the explanation of the application of the legal constraints or other restrictions and legal prerequisites for obtaining and using the resource.
      Specified by:
        `getUserNote` in interface `SecurityConstraints`
      Returns:
        explanation of the application of the legal constraints, or `null`.

    - #### setUserNote

          public void setUserNote​(InternationalString newValue)

      Sets the explanation of the application of the legal constraints or other restrictions and legal prerequisites for obtaining and using the resource.
      Parameters:
        `newValue` - the new user note.

    - #### getClassificationSystem

          public InternationalString getClassificationSystem()

      Returns the name of the classification system.
      Specified by:
        `getClassificationSystem` in interface `SecurityConstraints`
      Returns:
        name of the classification system, or `null`.

    - #### setClassificationSystem

          public void setClassificationSystem​(InternationalString newValue)

      Sets the name of the classification system.
      Parameters:
        `newValue` - the new classification system.

    - #### getHandlingDescription

          public InternationalString getHandlingDescription()

      Returns the additional information about the restrictions on handling the resource.
      Specified by:
        `getHandlingDescription` in interface `SecurityConstraints`
      Returns:
        additional information about the restrictions, or `null`.

    - #### setHandlingDescription

          public void setHandlingDescription​(InternationalString newValue)

      Sets the additional information about the restrictions on handling the resource.
      Parameters:
        `newValue` - the new handling description.