The modifiers supported on an Act and the processing logic are listed in the
table below.
Act Reference Modifier |
Processing Logic |
Must Exist |
Verify the existence of the Act in HDR
- If it exists then process all references, eg. Act Relationships, to the
Act. However, this will not process any Act Relationships or Participations
from the Act. ie. This object is treated as a leaf node on the submitted
graph regardless of whether there are any unprocessed objects attached to
it.
- If it does not exist then throw an error.
This Reference Modifier does not change any attributes on the Act.
|
Create If |
Verify the existence of the Act in HDR
- If it exists then treat as a MUST EXIST reference
- If it does not exist then create it.
|
Overlay |
Verify the existence of the Act in HDR
- If it exists then overlay it.
- Create a new version of the act using only the attributes provided
- Reference to associations (Act Relationships and Participations) are not
brought forward but references to any new associations are included.
- If it does not exist then throw an error.
|
Create or Overlay |
Verify the existence of the Act in HDR
- If it exists then overlay it.
- References to associations (Act Relationships and Participations) are not
brought forward but references to any new associations are included.
- If it does not exist then create it.
|
Update |
Verify the existence of the Act in HDR
- If it exists then update it.
- Create a new version of the act and update attributes that are included
in the submission. Bring forward any attributes from the previous version of
the act that are not modified by the submission.
- References to existing associations are brought forward.
- If any new associations are found then references to new associations are
also included.
- If it does not exist then throw an error.
|
Create or Update |
Verify the existence of the Act in HDR
- If it exists then update it.
- References to existing associations are brought forward.
- If any new associations are found then references to new associations are
also included.
- If it does not exist then create it.
|
The table below lists the reference modifiers supported for Roles without
Entities and the processing logic
Role Reference Modifier |
Processing Logic |
Must Exist |
- If the Role exists then process all references, eg Participations, to the
Role.
- If the Role does not exist throw an error
|
Create If |
- If the Role exists treat as a Must Exist Reference, otherwise create a
new Role
- If the Role is created it has no Playing or Scoping Entity
|
Overlay |
Verify the existence of the Role in HDR
- If it does not exist then an error is thrown
- If the Role exists, overlay the Role and set the Playing and Scoping
Entity to null
|
Create or Overlay |
Verify the existence of the Role in HDR
- If it does not exist then the Role is created
- If the Role exists, overlay the Role and set the Playing and Scoping
Entity to null
|
Update |
Verify the existence of the Role in HDR
- If it does not exist then an error is thrown
- If the Role exists, update the Role and bring forward the Playing and
Scoping Entity from the previous version of the Role
|
Create or Update |
Verify the existence of the Role in HDR
- If it does not exist then the Role is created
- If the Role exists, update the Role and bring forward the Playing and
Scoping Entity from the previous version of the Role
|
The modifiers supported on the Role and its Entities, and also the processing
logic are listed in the table below
Role Reference Modifier |
Entity (Player or Scoper) Reference Modifier |
Processing Logic |
Must Exist |
Any Reference Modier |
- Process any relationship, eg. Participation, to the Role. Do not process
the relationship with the Player or Scoper, or any of the Player or Scoper
attributes regardless of the Player or Scoper Reference Modifier.
|
Create If |
Must Exist |
- If the Role exists then process as a MUST EXIST reference, and therefore
ignore the Player or Scoper, otherwise create a new Role object.
- If the Role is created then the Role has a reference to the existing
version of the Player or Scoper.
- If the Player or Scoper does not exist in HDR throw an error.
|
Create If |
Create If |
- If the Role exists then process as a MUST EXIST reference and therefore
ignore the Player or Scoper, otherwise create a new Role object.
- If the Role is created then create the Player or Scoper if it does not
already exist.
- If the Role is created then the Role has a reference to
- The existing version of the Player or Scoper if the Player or Scoper is
not created otherwise,
- The newly created Player or Scoper.
|
Create If |
Overlay |
- If the Role exists then process as a MUST EXIST reference and therefore
ignore the Player or Scoper, otherwise create a new Role object.
- If the Role is created, verify the existence of the Player or Scoper in
HDR.
- If it exists then overlay the Player or Scoper and associate the Role
with the new version of the Player or Scoper.
- If it does not exist then throw an error.
|
Create If |
Create or Overlay |
- If the Role exists then process as a MUST EXIST reference and therefore
ignore the Player or Scoper, otherwise create a new Role object.
- If the Role is created, verify the existence of the Player or Scoper in
HDR
- If it exists then overlay the Player or Scoper.
- If it does not exist then create the Player or Scoper.
- In either of the above cases the Role has a reference to the new version
of the Player or Scoper.
|
Create If |
Update |
- If the Role exists then process as a MUST EXIST reference and therefore
ignore the Player or Scoper, otherwise create a new Role object.
- If the Role is created verify the existence of the Player or Scoper in
HDR
- If it exists then update the Player or Scoper and associate the Role with
the new version of the Player or Scoper.
- If it does not exist then throw an error.
|
Create If |
Create or Update |
- If the Role exists then process as a MUST EXIST reference and therefore
ignore the Player or Scoper, otherwise create a new Role object.
- If the Role is created verify the existence of the Player or Scoper in
HDR
- If it exists then update the Player or Scoper.
- If it does not exist then create the Player or Scoper.
- In either of the above cases the Role has a reference to the new version
of the Player or Scoper.
|
Overlay |
Must Exist |
- Verify the existence of the Role in HDR
- If it does not exist then throw an error.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists the Role has a reference to the existing version of the
Player or Scoper.
- If it does not exist then thrown an error.
|
Overlay |
Create If |
- Verify the existence of the Role in HDR
- If it does not exist then throw an error.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists the Role has a reference to the existing version of the
Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role has a
reference to the version of the newly created Player or Scoper.
|
Overlay |
Overlay |
- Verify the existence of the Role in HDR
- If it does not exist then throw an error.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then overlay the Player or Scoper. The Role has a reference
to the version of the Player or Scoper newly created.
- If it does not exist then throw an error.
|
Overlay |
Create or Overlay |
- Verify the existence of the Role in HDR
- If it does not exist then throw an error.
- If it exists then overlay the Role
- Next verify the existence of the Player or Scoper in HDR
- If it exists then overlay the Player or Scoper. The Role has a reference
to the newly created version of the Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role will have
a reference to the newly created version of the Player or Scoper.
|
Overlay |
Update |
- Verify the existence of the Role in HDR
- If it does not exist then throw an error.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then update the Player or Scoper. The Role has a reference
to the newly created version of the Player or Scoper.
- If it does not exist then throw an error.
|
Overlay |
Create or Update |
- Verify the existence of the Role in HDR
- If it does not exist then throw an error.
- If it exists then overlay Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then update the Player or Scoper. The Role will have a
reference to the newly created version of the Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role will has
a reference to the newly created version of the Player or Scoper newly
created.
|
Create or Overlay |
Must Exist |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then overlay the Role
- Next verify the existence of the Player or Scoper in HDR
- If it exists the Role has a reference to the existing version of the
Player or Scoper.
- If does not exist then throw an error.
|
Create or Overlay |
Create If |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists the Role has a reference to the existing version of the
Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role will have
a reference to the newly created version of the Player or Scoper.
|
Create or Overlay |
Overlay |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists overlay the Player or Scoper. The Role has a reference to
the version of the newly created Player or Scoper.
- If it does not exist then throw an error.
|
Create or Overlay |
Create or Overlay |
- The existence of the Role in HDR is verified
- If it does not exist then the Role is created.
- If it exists then the Role is overlaid.
- Next the existence of the Player or Scoper in HDR is verified
- If it exists the Player or Scoper is overlaid and the Role will have a
reference to the version of the Player or Scoper newly created.
- If it does not exist then the Player or Scoper is created and the Role
will have a reference to the version of the Player or Scoper newly
created.
|
Create or Overlay |
Update |
- The existence of the Role in HDR is verified
- If it does not exist then the Role is created.
- If it exists then the Role is overlaid.
- Next the existence of the Player or Scoper in HDR is verified
- If it exists the Player or Scoper is updated and the Role will have a
reference to the version of the Player or Scoper newly created.
- If it does not exist then an error is thrown.
|
Create or Overlay |
Create or Update |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then overlay the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists update the Player or Scoper. The Role will have a reference
to the newly created version of the Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role will have
a reference to the newly created version of the Player or Scoper.
|
Create or Update |
Must Exist |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then update the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists the Role has a reference to the existing version of the
Player or Scoper.
- If it does not exist then throw an error.
|
Create or Update |
Create If |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then update the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then ignore the Player or Scoper. The Role has a reference
to the existing version of the Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role has a
reference to the newly created version of the Player or Scoper.
|
Create or Update |
Overlay |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then update the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then overlay the Player or Scoper. The Role will have a
reference to the newly created version of the Player or Scoper.
- If it does not exist then throw an error
|
Create or Update |
Create or Overlay |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then update the Role.
- Next verify the existence of the Player or Scoper
- If it exists then overlay the Player or Scoper. The Role will have a
reference to the newly created version of the Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role has a
reference to the version of the newly created Player or Scoper.
|
Create or Update |
Update |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then update the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then update the Player or Scoper. The Role has a reference
to the newly created version of the Player or Scoper
- If it does not exist then throw an error.
|
Create or Update |
Create or Update |
- Verify the existence of the Role in HDR
- If it does not exist then create the Role.
- If it exists then update the Role.
- Next verify the existence of the Player or Scoper in HDR
- If it exists then update the Player or Scoper.The Role has a reference to
the newly created version of the Player or Scoper.
- If it does not exist then create the Player or Scoper. The Role has a
reference to the newly created version of the Player or Scoper
|
It is not possible to create a reference to an owned role as Owned Role Ids
are not guaranteed to be unique
Behaviour of persistence of owned-roles depends on the Reference Modifier of
their owning entity.
The processing logic for an owned roles non-owning entity is as for a regular
non-owned Role