---
name: "Prophet::ChangeSet"
section: "3pm"
platform: "linux"
package: "libprophet-perl"
version: "0.743-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Prophet::ChangeSet"
---

# Prophet::ChangeSet(3pm)

## NAME

Prophet::ChangeSet

## DESCRIPTION

This class represents a single, atomic Prophet database update. It tracks some metadata about the changeset itself and contains a list of Prophet::Change entries which describe the actual records created, updated and deleted.

## METHODS

### new

Instantiate a new, empty Prophet::ChangeSet object.

### creator

A string representing who created this changeset.

### created

A string representing the ISO 8601 date and time when this changeset was created (UTC).

### sequence\_no

The changeset's sequence number (in subversion terms, revision #) on the replica sending us the changeset.

### source\_uuid

The uuid of the replica sending us the change.

### original\_source\_uuid

The uuid of the replica where the change was authored.

### original\_sequence\_no

The changeset's sequence number (in subversion terms, revision #) on the replica where the change was originally created.

### is\_nullification

A boolean value specifying whether this is a nullification changeset or not.

### is\_resolution

A boolean value specifying whether this is a conflict resolution changeset or not.

### changes

Returns an array of all the changes in the current changeset.

### has\_changes

Returns true if this changeset has any changes.

### add\_change { change =\> Prophet::Change }

Adds a new change to this changeset.

### as\_hash

Returns a reference to a representation of this changeset as a hash, containing all the properties in the package variable `@SERIALIZE_PROPS`, as well as a `"changes"` key containing hash representations of each change in the changeset, keyed on UUID.

### new\_from\_hashref HASHREF

Takes a reference to a hash representation of a changeset (such as is returned by "as\_hash" or serialized json) and returns a new Prophet::ChangeSet representation of it.

Should be invoked as a class method, not an object method.

For example: `"Prophet::ChangeSet->new_from_hashref($ref_to_changeset_hash)"`

### as\_string ARGS

Returns a single string representing the changes in this changeset.

If `$args{header_callback}` is defined, the string returned from passing `$self` to the callback is prepended to the changeset string before it is returned (instead of "description\_as\_string").

If `$args{skip_empty}` is defined, an empty string is returned if the changeset contains no changes.

The argument `"change_filter"` can be used to filter certain changes from the string representation; the function is passed a change and should return false if that change should be skipped.

The `"change_header"` argument, if present, is passed to `"$change->to_string"` when individual changes are converted to strings.

### description\_as\_string

Returns a string representing a description of this changeset.
