java.lang.Object
java.lang.Enum<CreatePolicy>
org.gcube.informationsystem.resourceregistry.publisher.CreatePolicy
All Implemented Interfaces:
Serializable, Comparable<CreatePolicy>, Constable

public enum CreatePolicy extends Enum<CreatePolicy>
Selects which server-side Create contract a ResourceRegistryPublisher creation call uses.
Author:
Luca Frosini (ISTI - CNR)
  • Enum Constant Details

    • IDEMPOTENT

      public static final CreatePolicy IDEMPOTENT
      Uses PUT. Idempotent: repeating the exact same call converges on the same graph state. The server requires every id in the payload, of the root instance and of every nested instance alike, and rejects a missing one.

      The creation methods that take an object generate the missing ids before sending it: of the root instance; of each ConsistsOf of a Resource and of its target Facet; of the target Facet of a ConsistsOf; of the target Resource of an IsRelatedTo that has no id, together with its own ConsistsOf and Facets. A target Resource that has an id references an existing instance and is not touched. The ids are set on the object passed by the caller, so a retry with the same object is idempotent.

      The creation methods that take a JSON string generate only the id of the root instance when it is missing; everything else is sent as the caller wrote it, so the id of every nested instance must be there.

    • NON_IDEMPOTENT

      public static final CreatePolicy NON_IDEMPOTENT
      Uses POST. Not idempotent: two identical calls always create two distinct instances. Every id in the payload is optional; supplied, it is honored and validated against the usual UUID-reuse rules; omitted, the server always generates a fresh one.
  • Method Details

    • values

      public static CreatePolicy[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static CreatePolicy valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null