public class UndoRelationshipUpdate extends UndoInstanceUpdate
Transaction function for updating InstanceProperties on a metadata instance.
  • Field Details

    • FUNCTION_NAME

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

    • UndoRelationshipUpdate

      public UndoRelationshipUpdate(Long txId, xtdb.api.ICursor<clojure.lang.IPersistentMap> cursor, String userId, String relationshipGUID, String metadataCollectionId) throws Exception
      Constructor used to execute the transaction function.
      Parameters:
      txId - the transaction ID of this function invocation
      cursor - lazily-evaluated history of the relationship
      userId - doing the update
      relationshipGUID - of the relationship to update
      metadataCollectionId - of the metadata collection in which the transaction is running
      Throws:
      Exception - on any error
  • Method Details

    • transact

      Undo the last update to 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 undo the last update
      Returns:
      Relationship after being rolled-back
      Throws:
      RelationshipNotKnownException - if the relationship cannot be found
      InvalidParameterException - if the relationship exists but cannot be rolled-back (deleted, reference copy, etc)
      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
    • rollbackRelationship

      public static clojure.lang.IPersistentMap rollbackRelationship(String userId, clojure.lang.IPersistentMap current, clojure.lang.IPersistentMap previous)
      Rolls back the provided metadata instance to its previous form.
      Parameters:
      userId - doing the rollback
      current - the current (latest) representation of the metadata instance
      previous - the previous form of the metadata instance
      Returns:
      IPersistentMap giving the previous instance representation