package ameba.db.migration; import ameba.db.migration.models.ScriptInfo; import org.glassfish.jersey.spi.Contract; import javax.ws.rs.ConstrainedTo; import javax.ws.rs.RuntimeType; import java.util.List; /** * <p>Migration interface.</p> * * @author icode * */ @Contract @ConstrainedTo(RuntimeType.SERVER) public interface Migration { /** * <p>hasChanged.</p> * * @return a boolean. */ boolean hasChanged(); /** * <p>generate.</p> * * @return a {@link ameba.db.migration.models.ScriptInfo} object. */ ScriptInfo generate(); /** * <p>allScript.</p> * * @return a {@link java.util.List} object. */ List<ScriptInfo> allScript(); /** * <p>getScript.</p> * * @param revision a {@link java.lang.String} object. * @return a {@link ameba.db.migration.models.ScriptInfo} object. */ ScriptInfo getScript(String revision); /** * <p>persist.</p> */ void persist(); /** * <p>reset.</p> */ void reset(); }