/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.upgrade.task; import com.enonic.cms.upgrade.UpgradeContext; public abstract class AbstractUpgradeTask implements UpgradeTask { private final static int START_MODEL_NUMBER = 122; private final int modelNumber; public AbstractUpgradeTask( int modelNumber ) { this.modelNumber = modelNumber; } public final int getModelNumber() { return this.modelNumber; } protected boolean canModelUpgrade( UpgradeContext context ) { return true; } public final boolean canUpgrade( UpgradeContext context ) { if ( context.getStartModelNumber() < START_MODEL_NUMBER ) { context.logError( "Cannot upgrade from database version " + context.getStartModelNumber() + ". Version " + START_MODEL_NUMBER + " required. Please upgrade to latest version of 4.5 (4.5.7 or greater) and try again." ); return false; } return canModelUpgrade( context ); } public boolean isRunTransactional() { return true; } public int compareTo( UpgradeTask upgradeTask ) { int modelArg0 = getModelNumber(); int modelArg1 = upgradeTask.getModelNumber(); return modelArg0 - modelArg1; } }