org.z3950.zing.cql
Class CQLNode

java.lang.Object
  extended by org.z3950.zing.cql.CQLNode
Direct Known Subclasses:
CQLBooleanNode, CQLPrefixNode, CQLRelation, CQLSortNode, CQLTermNode

public abstract class CQLNode
extends Object

Represents a node in a CQL parse-tree.


Field Summary
protected static int APPLICATION
           
static byte BITSTRING
           
static byte BOOLEAN
           
protected static int CONSTRUCTED
           
protected static int CONTEXT
           
static byte ENUMERATED
           
static byte EXTERNAL
           
static byte GENERALSTRING
           
static byte INTEGER
           
static byte NULL
           
static byte OBJECTDESCRIPTOR
           
static byte OBJECTIDENTIFIER
           
static byte OCTETSTRING
           
protected static int PRIMITIVE
           
protected static int PRIVATE
           
static byte SEQUENCE
           
static byte SET
           
protected static int UNIVERSAL
           
static byte VISIBLESTRING
           
 
Constructor Summary
CQLNode()
           
 
Method Summary
 String getResultSetName()
          Returns the name of the result-set to which this query is a reference, if and only if the entire query consists only of a result-set reference.
protected static int lenLen(int length)
          Get the length needed to represent the given length.
protected static byte[] makeOID(String oid)
           
static byte[] makeQuery(CQLNode root, Properties properties)
           
protected static int numLen(long num)
          Get the length needed to represent the given number.
protected static int putNum(long num, byte[] record, int offset)
          Put a number into a given buffer
protected static int putTag(int asn1class, int fldid, int form, byte[] record, int offset)
           
abstract  String toCQL()
          Decompiles a parse-tree into a CQL query.
abstract  String toPQF(Properties config)
          Renders a parse-tree into a Yaz-style PQF string.
 String toString()
           
abstract  byte[] toType1BER(Properties config)
          Renders a parser-tree into a BER-endoded packet representing an equivalent Z39.50 Type-1 query.
 String toXCQL()
          Translates a parse-tree into an XCQL document.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNIVERSAL

protected static final int UNIVERSAL
See Also:
Constant Field Values

APPLICATION

protected static final int APPLICATION
See Also:
Constant Field Values

CONTEXT

protected static final int CONTEXT
See Also:
Constant Field Values

PRIVATE

protected static final int PRIVATE
See Also:
Constant Field Values

PRIMITIVE

protected static final int PRIMITIVE
See Also:
Constant Field Values

CONSTRUCTED

protected static final int CONSTRUCTED
See Also:
Constant Field Values

BOOLEAN

public static final byte BOOLEAN
See Also:
Constant Field Values

INTEGER

public static final byte INTEGER
See Also:
Constant Field Values

BITSTRING

public static final byte BITSTRING
See Also:
Constant Field Values

OCTETSTRING

public static final byte OCTETSTRING
See Also:
Constant Field Values

NULL

public static final byte NULL
See Also:
Constant Field Values

OBJECTIDENTIFIER

public static final byte OBJECTIDENTIFIER
See Also:
Constant Field Values

OBJECTDESCRIPTOR

public static final byte OBJECTDESCRIPTOR
See Also:
Constant Field Values

EXTERNAL

public static final byte EXTERNAL
See Also:
Constant Field Values

ENUMERATED

public static final byte ENUMERATED
See Also:
Constant Field Values

SEQUENCE

public static final byte SEQUENCE
See Also:
Constant Field Values

SET

public static final byte SET
See Also:
Constant Field Values

VISIBLESTRING

public static final byte VISIBLESTRING
See Also:
Constant Field Values

GENERALSTRING

public static final byte GENERALSTRING
See Also:
Constant Field Values
Constructor Detail

CQLNode

public CQLNode()
Method Detail

getResultSetName

public String getResultSetName()
Returns the name of the result-set to which this query is a reference, if and only if the entire query consists only of a result-set reference. If it's anything else, including a boolean combination of a result-set reference with something else, then null is returned instead.

Returns:
the name of the referenced result-set

toXCQL

public String toXCQL()
Translates a parse-tree into an XCQL document.

Returns:
A String containing an XCQL document equivalent to the parse-tree whose root is this node.

toCQL

public abstract String toCQL()
Decompiles a parse-tree into a CQL query.

Returns:
A String containing a CQL query equivalent to the parse-tree whose root is this node, so that compiling that query will yield an identical tree.

toPQF

public abstract String toPQF(Properties config)
                      throws PQFTranslationException
Renders a parse-tree into a Yaz-style PQF string. PQF, or Prefix Query Format, is a cryptic but powerful notation that can be trivially mapped, one-to-one, int Z39.50 Type-1 and Type-101 queries. A specification for the format can be found in Chapter 7 (Supporting Tools) of the YAZ manual.

Parameters:
config - A Properties object containing configuration information that specifies the mapping from CQL indexes, relations, etc. to Type-1 attributes. The mapping specification is described in the CQL-Java distribution's sample PQF-mapping configuration file, etc/pqf.properties, which see.
Returns:
A String containing a PQF query equivalent to the parse-tree whose root is this node.
Throws:
PQFTranslationException

toType1BER

public abstract byte[] toType1BER(Properties config)
                           throws PQFTranslationException
Renders a parser-tree into a BER-endoded packet representing an equivalent Z39.50 Type-1 query. If you don't know what that means, then you don't need this method :-) This is useful primarily for SRW-to-Z39.50 gateways.

Parameters:
config - A Properties object containing configuration information that specifies the mapping from CQL indexes, relations, etc. to Type-1 attributes. The mapping specification is described in the CQL-Java distribution's sample PQF-mapping configuration file, etc/pqf.properties, which see.
Returns:
A byte array containing the BER packet.
Throws:
PQFTranslationException
See Also:
ftp://ftp.rsasecurity.com/pub/pkcs/ascii/layman.asc

putTag

protected static final int putTag(int asn1class,
                                  int fldid,
                                  int form,
                                  byte[] record,
                                  int offset)

lenLen

protected static final int lenLen(int length)
Get the length needed to represent the given length.

Parameters:
length - determine length needed to encode this
Returns:
length needed to encode given length

numLen

protected static final int numLen(long num)
Get the length needed to represent the given number.

Parameters:
num - determine length needed to encode this
Returns:
length needed to encode given number

putNum

protected static final int putNum(long num,
                                  byte[] record,
                                  int offset)
Put a number into a given buffer

Parameters:
num - number to put into buffer
record - buffer to use
offset - offset into buffer
Returns:
the new, incremented value of the offset parameter.

makeOID

protected static final byte[] makeOID(String oid)

makeQuery

public static final byte[] makeQuery(CQLNode root,
                                     Properties properties)
                              throws PQFTranslationException
Throws:
PQFTranslationException

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2008-2014 Index Data. All Rights Reserved.