package com.github.mongobee.changeset;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Set of changes to be added to the DB. Many changesets are included in one changelog.
* @author lstolowski
* @since 27/07/2014
* @see ChangeLog
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ChangeSet {
/**
* Author of the changeset.
* Obligatory
* @return author
*/
public String author(); // must be set
/**
* Unique ID of the changeset.
* Obligatory
* @return unique id
*/
public String id(); // must be set
/**
* Sequence that provide correct order for changesets. Sorted alphabetically, ascending.
* Obligatory.
* @return ordering
*/
public String order(); // must be set
/**
* Executes the change set on every mongobee's execution, even if it has been run before.
* Optional (default is false)
* @return should run always?
*/
public boolean runAlways() default false;
//
// /**
// * Executes the change the first time it is seen and each time the change set has been changed. <br/>
// * Optional (default is false)
// */
// public boolean runOnChange() default false;
}