/*
* This file or a portion of this file is licensed under the terms of
* the Globus Toolkit Public License, found in file GTPL, or at
* http://www.globus.org/toolkit/download/license.html. This notice must
* appear in redistributions of this file, with or without modification.
*
* Redistributions of this Software, with or without modification, must
* reproduce the GTPL in: (1) the Software, or (2) the Documentation or
* some other similar material which is provided with the Software (if
* any).
*
* Copyright 1999-2004 University of Chicago and The University of
* Southern California. All rights reserved.
*/
package org.griphyn.vdl.directive;
import org.griphyn.vdl.parser.*;
import org.griphyn.vdl.classes.*;
import org.griphyn.vdl.dbschema.*;
import org.griphyn.vdl.util.Logging;
import java.lang.reflect.*;
import java.io.IOException;
import java.util.MissingResourceException;
/**
* The class dynamically loads a databaseschema
*
* @see org.griphyn.vdl.dbschema.DatabaseSchema
*/
public class Connect extends Directive
{
/**
* Constructor
*/
public Connect()
throws IOException, MissingResourceException
{
super();
}
/**
* Connects the database backend. This is not done in the c'tor, because
* some apps don't need this heavyweight instructions.
*
* @param schemaName is the name of the schema class to load. This
* better be the fully-qualified name in-sync with properties.
*
* @return the schema class on success, null on non-exceptional failure.
* The result is to be cast to appropriate catalog classes.
*
* @see org.griphyn.vdl.util.ChimeraProperties#getVDCSchemaName()
* @see org.griphyn.vdl.util.ChimeraProperties#getPTCSchemaName()
*/
public DatabaseSchema connectDatabase( String schemaName )
throws ClassNotFoundException, IOException,
NoSuchMethodException, InstantiationException,
IllegalAccessException, InvocationTargetException
{
DatabaseSchema result = null;
m_logger.log( "connect", 0, "Connecting the database backend" );
Object[] arg = new Object[1];
arg[0] = new String();
return DatabaseSchema.loadSchema( schemaName, null, arg );
}
/**
* Connects the database backend. This is not done in the c'tor, because
* some apps don't need this heavyweight instructions.
*
* @param schemaName is the name of the schema class to load. This
* better be the fully-qualified name in-sync with properties.
* @param dbDriverName is the name of the database driver
*
* @return the schema class on success, null on non-exceptional failure.
* The result is to be cast to appropriate catalog classes.
*
* @see org.griphyn.vdl.util.ChimeraProperties#getVDCSchemaName()
* @see org.griphyn.vdl.util.ChimeraProperties#getPTCSchemaName()
*/
public DatabaseSchema connectDatabase( String schemaName, String dbDriverName )
throws ClassNotFoundException, IOException,
NoSuchMethodException, InstantiationException,
IllegalAccessException, InvocationTargetException
{
DatabaseSchema result = null;
m_logger.log( "connect", 0, "Connecting the database backend" );
Object[] arg = new Object[1];
arg[0] = (dbDriverName == null) ? new String() : dbDriverName;
return DatabaseSchema.loadSchema( schemaName, null, arg );
}
}