forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							107 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
	
	
							107 lines
						
					
					
						
							2.4 KiB
						
					
					
				/*
 | 
						|
 * 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 java.util.*;
 | 
						|
 | 
						|
import com.evolute.utils.*;
 | 
						|
import com.evolute.utils.arrays.*;
 | 
						|
import com.evolute.utils.db.*;
 | 
						|
import com.evolute.utils.sql.*;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author fpalma
 | 
						|
 */
 | 
						|
public class UpdateList
 | 
						|
{
 | 
						|
	protected static final Update UPDATE_LIST[] = 
 | 
						|
			new Update[]{ new siprp.update.updates.V6_1_To_V7_0(), new siprp.update.updates.V7_0_To_V7_2(),
 | 
						|
							new siprp.update.updates.V7_2_To_V7_4(), new siprp.update.updates.V7_4_To_V7_5(),
 | 
						|
							new siprp.update.updates.V7_5_To_V7_6(), new siprp.update.updates.V7_6_To_V7_7() };
 | 
						|
	
 | 
						|
	protected static Executer EXECUTER;
 | 
						|
	protected static double version = -1;
 | 
						|
	
 | 
						|
	/** Creates a new instance of Updater */
 | 
						|
	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 validUpdates = new Vector();
 | 
						|
		for( int n = 0; n < UPDATE_LIST.length; n++ )
 | 
						|
		{
 | 
						|
			if( version <= UPDATE_LIST[ n ].getStartVersion() )
 | 
						|
			{
 | 
						|
				validUpdates.add( UPDATE_LIST[ n ] );
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return ( Update [] ) 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 );
 | 
						|
	}
 | 
						|
}
 |