/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.upgrade;
import com.enonic.cms.upgrade.log.UpgradeLog;
/**
* This interface defines the upgrade manager.
*/
public interface UpgradeService
{
/**
* Return true if it needs upgrade.
*/
public boolean needsUpgrade();
/**
* Return true if software is too old.
*/
public boolean needsSoftwareUpgrade();
/**
* Return true if it needs to upgrade with old upgrade model first. Only for upgrading versions before 4.1.
*/
public boolean needsOldUpgradeSystem();
/**
* Return the current model.
*/
public int getCurrentModelNumber();
/**
* Return the target model.
*/
public int getTargetModelNumber();
/**
* Upgrade all steps.
*/
public boolean upgrade( UpgradeLog log )
throws UpgradeException;
/**
* Upgrade single step.
*/
public boolean upgradeStep( UpgradeLog log )
throws UpgradeException;
/**
* Check if you can upgrade.
*/
public boolean canUpgrade( UpgradeLog log );
}