@NotThreadSafe public class

Checksummer

extends Object
java.lang.Object
   ↳ com.atlassian.jira.functest.config.Checksummer<T>

Class Overview

Keeps the checksums of a group of objects of type T.

Summary

Nested Classes
interface Checksummer.Helper<T> Helps with the conversion of T into and from its different forms needed for the operation of the checksummer. 
Public Constructors
Checksummer(Helper<T> helper)
Create a checksummer that uses the passed helper to covert T to and from a form that allows it to be serialized.
Checksummer(Helper<T> helper, String defaultSum)
Create a checksummer that uses the passed helper to convert T to and from a form that allows it to be serialized.
Public Methods
static Checksummer<File> fileChecksummer(String hash)
Static factory method that will create a checksum that stores File objects by hashing their contents.
String getDefaultSum()
Return the hash algorithm used when adding new objects to the checkum.
boolean hasChanged(T object)
Tells the caller if the passed object has a hash the same as the one already stored in the checksum.
boolean isModified()
Return true if the checksummer was modified since write(org.dom4j.Element) was called, false otherwise.
void read(Element element)
Read the checksummer state as was previously saved using write(org.dom4j.Element).
boolean remove(T object)
Remove the passed object and its hash from checksummer.
void setDefaultSum(String defaultSum)
Set the default hash algorithm used when adding new objects.
boolean update(T object)
Update the current state of the passed object with its current hash.
void write(Element checkElement)
Write the current state of the checksummer to the passed element.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public Checksummer (Helper<T> helper)

Create a checksummer that uses the passed helper to covert T to and from a form that allows it to be serialized.

Parameters
helper the helper this checksum will use to process instances of T.

public Checksummer (Helper<T> helper, String defaultSum)

Create a checksummer that uses the passed helper to convert T to and from a form that allows it to be serialized. The checksum will use the passed hashing algorithm for any new objects added to the checksum.

Parameters
helper the helper this checksum will use to process instance of T.
defaultSum the checksum used to add any new objects.

Public Methods

public static Checksummer<File> fileChecksummer (String hash)

Static factory method that will create a checksum that stores File objects by hashing their contents. This can be used to find out quickly from a set of files which have changed.

Parameters
hash the checksum oused to add any new objects.
Returns
  • a checkum of the contents of File objects.

public String getDefaultSum ()

Return the hash algorithm used when adding new objects to the checkum.

Returns
  • the hash algorithm used when added new objects to the checksum.

public boolean hasChanged (T object)

Tells the caller if the passed object has a hash the same as the one already stored in the checksum. This gives a good indication whether the passed object has changed since it was added to the checksum. The method will return true if the passed object has not already been added to the checksum.

Parameters
object the object to test.
Returns
  • if the object has the same hash as when it was added to the checksum.

public boolean isModified ()

Return true if the checksummer was modified since write(org.dom4j.Element) was called, false otherwise.

Returns

public void read (Element element)

Read the checksummer state as was previously saved using write(org.dom4j.Element).

Parameters
element the element where the configuration is stored.

public boolean remove (T object)

Remove the passed object and its hash from checksummer.

Parameters
object the object to remove from the checksummer.
Returns
  • true if the object is removed, false otherwise

public void setDefaultSum (String defaultSum)

Set the default hash algorithm used when adding new objects.

Parameters
defaultSum the default hash algorithm used when adding new objects.

public boolean update (T object)

Update the current state of the passed object with its current hash. This will add the passed object to the checksum if it has not already been added.

Parameters
object the object to update or add.
Returns
  • true if the object's hash was changed, false otherwise. Note that true will always be returned when adding new objects.

public void write (Element checkElement)

Write the current state of the checksummer to the passed element. The checksummer can later be reconstructed by calling read(org.dom4j.Element).

Parameters
checkElement the element to write the state to.