public class ReHomeRelationship extends ReHomeInstance
Transaction function for updating a relationship's home repository.
  • Field Details

    • FUNCTION_NAME

      public static final clojure.lang.Keyword FUNCTION_NAME
  • Constructor Details

    • ReHomeRelationship

      public ReHomeRelationship(Long txId, clojure.lang.PersistentHashMap existing, String userId, String relationshipGUID, String metadataCollectionId, String newMetadataCollectionId, String newMetadataCollectionName) throws Exception
      Constructor used to execute the transaction function.
      Parameters:
      txId - the transaction ID of this function invocation
      existing - XTDB document to re-home
      userId - doing the update
      relationshipGUID - of the relationship to re-home
      metadataCollectionId - of the metadata collection in which the transaction is running
      newMetadataCollectionId - in which to re-home to the relationship
      newMetadataCollectionName - in which to re-home the relationship
      Throws:
      Exception - on any error
  • Method Details

    • transact

      public static Relationship transact(XTDBOMRSRepositoryConnector xtdb, String userId, String relationshipGUID, String newMetadataCollectionId, String newMetadataCollectionName) throws RelationshipNotKnownException, InvalidParameterException, RepositoryErrorException
      Change the home repository of the provided relationship instance in the XTDB repository by pushing the transaction down into the repository itself.
      Parameters:
      xtdb - connectivity
      userId - doing the update
      relationshipGUID - of the relationship on which to change the home repository
      newMetadataCollectionId - in which to re-home to the relationship
      newMetadataCollectionName - in which to re-home the relationship
      Returns:
      Relationship the relationship with the new home repository applied
      Throws:
      RelationshipNotKnownException - if the relationship cannot be found
      InvalidParameterException - if the relationship exists but cannot be re-homed (i.e. not a reference copy)
      RepositoryErrorException - on any other error
    • doc

      public clojure.lang.IPersistentMap doc()
      Interface that returns the updated document to write-back from the transaction.
      Returns:
      IPersistentMap giving the updated document in its entirety
    • create

      public static void create(xtdb.api.tx.Transaction.Builder tx)
      Create the transaction function within XTDB.
      Parameters:
      tx - transaction through which to create the function