Package uk.ac.starlink.vo
Class AdqlValidator
- java.lang.Object
-
- uk.ac.starlink.vo.AdqlValidator
-
public class AdqlValidator extends java.lang.Object
Handles validation of ADQL queries. In the current implementation the heavy lifting is done by Gregory Mantelet's ADQL parser.- Since:
- 3 Oct 2011
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
AdqlValidator.ValidatorTable
Defines table metadata for tables known to the validator.
-
Constructor Summary
Constructors Constructor Description AdqlValidator(AdqlValidator.ValidatorTable[] vtables, adql.db.FunctionDef[] udfs, java.lang.String[] geoFuncs)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static AdqlValidator
createValidator(AdqlValidator.ValidatorTable[] vtables, TapLanguage lang)
Creates an instance given a set of table metadata and a TapLanguage description object.static void
main(java.lang.String[] args)
Tests parser.void
validate(java.lang.String query)
Validates an ADQL string.
-
-
-
Constructor Detail
-
AdqlValidator
public AdqlValidator(AdqlValidator.ValidatorTable[] vtables, adql.db.FunctionDef[] udfs, java.lang.String[] geoFuncs)
Constructor. Note empty arrays restrict possibilities (to none), but null values allow anything.- Parameters:
vtables
- table metadata for database to be checked againstudfs
- array of permitted user-defined-functions, or null to permit all (but ignored if vtables is null)geoFuncs
- array of permitted ADQL geometry function names, or null to permit all those defined by ADQL (sec 2.4) (but ignored if vtables is null)
-
-
Method Detail
-
validate
public void validate(java.lang.String query) throws java.lang.Throwable
Validates an ADQL string. Any throwable returned hopefully includes useful information about the location and nature of the parse error, but that depends on the implementation.- Parameters:
query
- ADQL query string- Throws:
java.lang.Throwable
- if the string is not valid ADQL
-
createValidator
public static AdqlValidator createValidator(AdqlValidator.ValidatorTable[] vtables, TapLanguage lang)
Creates an instance given a set of table metadata and a TapLanguage description object. The language object's TapLanguageFeature map is examined to determine what UDFs and ADQL geometry functions are supported. In the case of no description of UDFs and geom functions, no restrictions are imposed.- Parameters:
vtables
- table metadatalang
- language specifics
-
main
public static void main(java.lang.String[] args) throws java.lang.Throwable, java.io.IOException, org.xml.sax.SAXException
Tests parser. Use-h
for usage.- Throws:
java.lang.Throwable
java.io.IOException
org.xml.sax.SAXException
-
-