Package com.sleepycat.persist.evolve

## Class Mutations

- java.lang.Object
- - com.sleepycat.persist.evolve.Mutations

All Implemented Interfaces:
  `java.io.Serializable`

    public class Mutations
    extends java.lang.Object
    implements java.io.Serializable

A collection of mutations for configuring class evolution.

Mutations are configured when a store is opened via `StoreConfig.setMutations`. For example:

      Mutations mutations = new Mutations();
      // Add mutations...
      StoreConfig config = new StoreConfig();
      config.setMutations(mutations);
      EntityStore store = new EntityStore(env, "myStore", config);

Mutations cause data conversion to occur lazily as instances are read from the store. The `EntityStore.evolve` method may also be used to perform eager conversion.

Not all incompatible class changes can be handled via mutations. For example, complex refactoring may require a transformation that manipulates multiple entity instances at once. Such changes are not possible with mutations but can made by performing a store conversion.

See Also:
  `Class Evolution`, Serialized Form

### Constructor Summary

Constructors
`Mutations()` Creates an empty set of mutations.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addConverter​(Converter converter)` Adds a converter mutation.
`void` `addDeleter​(Deleter deleter)` Adds a deleter mutation.
`void` `addRenamer​(Renamer renamer)` Adds a renamer mutation.
`boolean` `equals​(java.lang.Object other)` Returns true if this collection has the same set of mutations as the given collection and all mutations are equal.
`Converter` `getConverter​(java.lang.String className, int classVersion, java.lang.String fieldName)` Returns the converter mutation for the given class, version and field, or null if none exists.
`java.util.Collection<Converter>` `getConverters()` Returns an unmodifiable collection of all converter mutations.
`Deleter` `getDeleter​(java.lang.String className, int classVersion, java.lang.String fieldName)` Returns the deleter mutation for the given class, version and field, or null if none exists.
`java.util.Collection<Deleter>` `getDeleters()` Returns an unmodifiable collection of all deleter mutations.
`Renamer` `getRenamer​(java.lang.String className, int classVersion, java.lang.String fieldName)` Returns the renamer mutation for the given class, version and field, or null if none exists.
`java.util.Collection<Renamer>` `getRenamers()` Returns an unmodifiable collection of all renamer mutations.
`int` `hashCode()`
`boolean` `isEmpty()` Returns true if no mutations are present.
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### Mutations

    public Mutations()

Creates an empty set of mutations.

### Method Detail

#### isEmpty

    public boolean isEmpty()

Returns true if no mutations are present.

Returns:
  true if no mutations are present.

#### addRenamer

    public void addRenamer​(Renamer renamer)

Adds a renamer mutation.

Parameters:
  `renamer` - the Renamer.

#### getRenamer

    public Renamer getRenamer​(java.lang.String className,
                              int classVersion,
                              java.lang.String fieldName)

Returns the renamer mutation for the given class, version and field, or null if none exists. A null field name should be specified to get a class renamer.

Parameters:
  `className` - the class name.
  `classVersion` - the class version.
  `fieldName` - the field name in the given class version.
Returns:
  the Renamer, or null.

#### getRenamers

    public java.util.Collection<Renamer> getRenamers()

Returns an unmodifiable collection of all renamer mutations.

Returns:
  the renamers.

#### addDeleter

    public void addDeleter​(Deleter deleter)

Adds a deleter mutation.

Parameters:
  `deleter` - the Deleter.

#### getDeleter

    public Deleter getDeleter​(java.lang.String className,
                              int classVersion,
                              java.lang.String fieldName)

Returns the deleter mutation for the given class, version and field, or null if none exists. A null field name should be specified to get a class deleter.

Parameters:
  `className` - the class name.
  `classVersion` - the class version.
  `fieldName` - the field name.
Returns:
  the Deleter, or null.

#### getDeleters

    public java.util.Collection<Deleter> getDeleters()

Returns an unmodifiable collection of all deleter mutations.

Returns:
  the deleters.

#### addConverter

    public void addConverter​(Converter converter)

Adds a converter mutation.

Parameters:
  `converter` - the Converter.

#### getConverter

    public Converter getConverter​(java.lang.String className,
                                  int classVersion,
                                  java.lang.String fieldName)

Returns the converter mutation for the given class, version and field, or null if none exists. A null field name should be specified to get a class converter.

Parameters:
  `className` - the class name.
  `classVersion` - the class version.
  `fieldName` - the field name.
Returns:
  the Converter, or null.

#### getConverters

    public java.util.Collection<Converter> getConverters()

Returns an unmodifiable collection of all converter mutations.

Returns:
  the converters.

#### equals

    public boolean equals​(java.lang.Object other)

Returns true if this collection has the same set of mutations as the given collection and all mutations are equal.

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`