Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

IdAS Update Proposals Current Methodology

In order to make any modifications to a Digital Subject's attributes or metadata, one calls IContext.updateSubject. This takes a set of UpdateOperation objects. Each UpdateOperation specifies what is being updated (an attribute or metadata), How it is being updated (add, delete, replace), and the value(s) being updated.

  • Pros
    • It's very clear to the CP what is being asked by virtue of all updates being specified in the single call.
    • Rules of atomicity apply to all updates within the operation.
      • This allows for test/set types of functionality. One can specify a value to be removed and another to be added. If the value to be removed does not exist, the entire operation fails.
    • The CP doesn't have to track state as Attributes / Metadata are being manipulated.
  • Cons
    • In order to modify a part of a complex attribute, one must pass a delete (specifying the entire old complex value) and an add (specifying the entire new complex value)
      • This could be very problematic in situations where multiple people are editing different parts of the same complex value. There may be situations where the specified old value chronically causes the updateSubject call to fail due to a constantly changing complex value.
    • Users have to fetch and clone existing values in order to specify which value they are changing.

Back to the top