/*
* 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.dbschema;
import java.sql.*;
import org.griphyn.vdl.classes.Definition;
/**
* This common schema interface defines advanced search interfaces for
* VDC. The advanced methods required permit wildcard searches, partial
* matches, and candidate list compilations that are not part of the
* simpler @{link VDC} interface.
*
* @author Jens-S. Vöckler
* @author Yong Zhao
* @version $Revision$
*
* @see org.griphyn.vdl.dbschema.DatabaseSchema
* @see org.griphyn.vdl.dbdriver
*/
public interface Advanced extends VDC
{
//
// higher level methods, allowing for partial matching
//
/**
* Delete one or more definitions from the backend database. The key
* triple parameters may be wildcards. Wildcards are expressed as
* <code>null</code> value, or have special characters '%' and '_'.
*
* @param namespace namespace
* @param name name
* @param version version
* @param type definition type (TR or DV)
* @return a list of definitions that were deleted.
*
* @see org.griphyn.vdl.classes.Definition#TRANSFORMATION
* @see org.griphyn.vdl.classes.Definition#DERIVATION
*/
public abstract java.util.List
deleteDefinitionEx( String namespace,
String name,
String version,
int type )
throws SQLException;
/**
* Searches the database for definitions by ns::name:version triple
* and by type (either Transformation or Derivation). This version of
* the search allows for jokers expressed as null value
*
* @param namespace namespace, null to match any namespace
* @param name name, null to match any name
* @param version version, null to match any version
* @param type type of definition, see below, or -1 as wildcard
* @return a list of Definition items, which may be empty
*
* @see org.griphyn.vdl.classes.Definition#TRANSFORMATION
* @see org.griphyn.vdl.classes.Definition#DERIVATION
* @see #loadDefinition( String, String, String, int )
*/
public abstract java.util.List
searchDefinitionEx( String namespace,
String name,
String version,
int type )
throws SQLException;
/**
* Searches the database for all LFNs that match a certain pattern.
* The linkage is an additional constraint. This method allows
* joker characters such as '%' and '_'.
*
* @param lfn the LFN name
* @param link the linkage type of the LFN
* @return a list of filenames that match the criterion.
*
* @see org.griphyn.vdl.classes.LFN#NONE
* @see org.griphyn.vdl.classes.LFN#INPUT
* @see org.griphyn.vdl.classes.LFN#OUTPUT
* @see org.griphyn.vdl.classes.LFN#INOUT
*/
public abstract java.util.List
searchLFN( String lfn, int link )
throws SQLException;
/**
* Searches the database for a list of namespaces of the definitions
* Sorted in ascending order.
*
* @param type type of definition, see below, or -1 for both
* @return a list of namespaces
*
* @see org.griphyn.vdl.classes.Definition#TRANSFORMATION
* @see org.griphyn.vdl.classes.Definition#DERIVATION
*/
public abstract java.util.List
getNamespaceList( int type )
throws SQLException;
/**
* Searches the database for a list of fully-qualified names of
* the definitions sorted in ascending order.
*
* @param type type of definition, see below, or -1 for both.
* @return a list of FQDNs
*
* @see org.griphyn.vdl.classes.Definition#TRANSFORMATION
* @see org.griphyn.vdl.classes.Definition#DERIVATION
*/
public abstract java.util.List
getFQDNList( int type )
throws SQLException;
}