/*
 * Updater.java
 *
 * Created on 26 de Setembro de 2006, 11:49
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package siprp.update;

import siprp.update.updates.V10_0_To_V10_1;
import siprp.update.updates.V10_1_To_V10_2;
import siprp.update.updates.V10_2_To_V10_3;
import siprp.update.updates.V10_3_To_V10_4;
import siprp.update.updates.V10_4_To_V10_5;
import siprp.update.updates.V10_5_To_V10_6;
import siprp.update.updates.V10_6_To_V10_7;
import siprp.update.updates.V10_7_To_V10_8;
import siprp.update.updates.V10_8_To_V10_9;
import siprp.update.updates.V10_9_To_V11_0;
import siprp.update.updates.V11_0_To_V11_1;
import siprp.update.updates.V11_1_To_V11_2;
import siprp.update.updates.V11_2_To_V11_3;
import siprp.update.updates.V11_3_To_V11_4;
import siprp.update.updates.V11_4_To_V11_5;
import siprp.update.updates.V11_5_To_V11_6;
import siprp.update.updates.V11_6_To_V11_7;
import siprp.update.updates.V11_7_To_V11_8;
import siprp.update.updates.V11_8_To_V11_9;
import siprp.update.updates.V11_9_To_V12_0;
import siprp.update.updates.V12_0_To_V12_1;
import siprp.update.updates.V12_1_To_V12_2;
import siprp.update.updates.V12_2_To_V12_3;
import siprp.update.updates.V6_1_To_V7_0;
import siprp.update.updates.V7_0_To_V7_2;
import siprp.update.updates.V7_2_To_V7_4;
import siprp.update.updates.V7_4_To_V7_5;
import siprp.update.updates.V7_5_To_V7_6;
import siprp.update.updates.V7_6_To_V7_7;
import siprp.update.updates.V7_7_To_V7_8;
import siprp.update.updates.V7_8_To_V7_9;
import siprp.update.updates.V7_9_To_V8_0;
import siprp.update.updates.V8_0_To_V8_1;
import siprp.update.updates.V8_1_To_V8_2;
import siprp.update.updates.V8_2_To_V8_3;
import siprp.update.updates.V8_3_To_V8_4;
import siprp.update.updates.V8_4_To_V8_5;
import siprp.update.updates.V8_5_To_V8_6;
import siprp.update.updates.V8_6_To_V8_7;
import siprp.update.updates.V8_7_To_V8_8;
import siprp.update.updates.V8_8_To_V8_9;
import siprp.update.updates.V8_9_To_V9_0;
import siprp.update.updates.V9_0_To_V9_1;
import siprp.update.updates.V9_1_To_V9_2;
import siprp.update.updates.V9_2_To_V9_3;
import siprp.update.updates.V9_3_To_V9_4;
import siprp.update.updates.V9_4_To_V9_5;
import siprp.update.updates.V9_5_To_V9_6;
import siprp.update.updates.V9_6_To_V9_7;
import siprp.update.updates.V9_7_To_V9_8;
import siprp.update.updates.V9_8_To_V9_9;
import siprp.update.updates.V9_9_To_V10_0;

import com.evolute.module.updater.AbstractUpdate;


/**
 *
 * @author fpalma
 */
public class UpdateList
{
	public static final AbstractUpdate UPDATE_LIST[] = 
			new AbstractUpdate[]{ 
							new V6_1_To_V7_0(), new V7_0_To_V7_2(),
							new V7_2_To_V7_4(), new V7_4_To_V7_5(),
							new V7_5_To_V7_6(), new V7_6_To_V7_7(),
							new V7_7_To_V7_8(), new V7_8_To_V7_9(),
							new V7_9_To_V8_0(), new V8_0_To_V8_1(),
							new V8_1_To_V8_2(), new V8_2_To_V8_3(),
							new V8_3_To_V8_4(), new V8_4_To_V8_5(),
							new V8_5_To_V8_6(), new V8_6_To_V8_7(),
							new V8_7_To_V8_8(), new V8_8_To_V8_9(),
							new V8_9_To_V9_0(), new V9_0_To_V9_1(),
							new V9_1_To_V9_2(), new V9_2_To_V9_3(),
							new V9_3_To_V9_4(), new V9_4_To_V9_5(),
							new V9_5_To_V9_6(), new V9_6_To_V9_7(),
							new V9_7_To_V9_8(), new V9_8_To_V9_9(),
							new V9_9_To_V10_0(), new V10_0_To_V10_1(),
							new V10_1_To_V10_2(), new V10_2_To_V10_3(),
							new V10_3_To_V10_4(), new V10_4_To_V10_5(),
							new V10_5_To_V10_6(), new V10_6_To_V10_7(),
							new V10_7_To_V10_8(), new V10_8_To_V10_9(),
							new V10_9_To_V11_0(), new V11_0_To_V11_1(),
							new V11_1_To_V11_2(), new V11_2_To_V11_3(),
							new V11_3_To_V11_4(), new V11_4_To_V11_5(),
							new V11_5_To_V11_6(), new V11_6_To_V11_7(),
							new V11_7_To_V11_8(), new V11_8_To_V11_9(),
							new V11_9_To_V12_0(), new V12_0_To_V12_1(),
							new V12_1_To_V12_2(),new V12_2_To_V12_3() 
							};
//	
//	protected static Executer EXECUTER;
//	protected static double version = -1;
//	
//	private UpdateList()
//	{
//	}
//	
//	public static double getCurrentVersion()
//		throws Exception
//	{
//		if( version < 0 )
//		{
//			version = getVersion();
//		}
//		return version;
//	}
//	
//	public static Update [] getUpdates()
//		throws Exception
//	{
//		if( version < 0 )
//		{
//			version = getVersion();
//		}
//		Vector<Update> validUpdates = new Vector<Update>();
//		for( int n = 0; n < UPDATE_LIST.length; n++ )
//		{
//			if( version <= UPDATE_LIST[ n ].getStartVersion() )
//			{
//				validUpdates.add( UPDATE_LIST[ n ] );
//			}
//		}
//		return validUpdates.toArray( new Update[ validUpdates.size() ] );
//	}
//	
//	protected static double getVersion()
//		throws Exception
//	{
//		DBManager dbm = ( DBManager ) Singleton.getInstance( Singleton.DEFAULT_DBMANAGER );
//		EXECUTER = dbm.getSharedExecuter();
//		try
//		{
//			return readVersion();
//		}
//		catch( Exception ex )
//		{
//			createVersionTable();
//		}
//		return readVersion();
//	}
//	
//	protected static double readVersion()
//		throws Exception
//	{
//		Select select = 
//				new Select( new String[]{ "version" },
//							new String[]{ "MAX(current_version)" },
//							null );
//		Virtual2DArray array = EXECUTER.executeQuery( select );
//		return ( ( Number ) array.get( 0, 0 ) ).doubleValue();
//	}
//	
//	protected static void createVersionTable()
//		throws Exception
//	{
//		com.evolute.utils.sql.Update update = 
//				new com.evolute.utils.sql.Update( "CREATE TABLE version( current_version float );" );
//		EXECUTER.executeQuery( update );
//		Insert insert = 
//				new Insert( "version",
//							new Assignment[]{ 
//								new Assignment( new Field( "current_version" ), new Double( 0.1 ) ) } );
//		EXECUTER.executeQuery( insert );
//	}
}
