org.exolab.castor.jdo.oql
Class Lexer

java.lang.Object
  extended by org.exolab.castor.jdo.oql.Lexer
All Implemented Interfaces:
TokenTypes

public class Lexer
extends java.lang.Object
implements TokenTypes

Seperates an input string of OQL into a stream of Tokens.

Version:
$Revision: 1.3 $ $Date: 2004/08/13 10:05:49 $
Author:
Nissim Karpenstein

Field Summary
(package private)  int _pos
           
(package private)  java.lang.String _queryString
           
(package private)  boolean endOfQueryPassed
           
(package private)  java.util.Hashtable keywords
           
 
Fields inherited from interface org.exolab.castor.jdo.oql.TokenTypes
ARROW, BOOLEAN_LITERAL, CHAR_LITERAL, COLON, COMMA, CONCAT, DATE_LITERAL, DIVIDE, DOLLAR, DOT, DOUBLE_LITERAL, END_OF_QUERY, EQUAL, GT, GTE, IDENTIFIER, KEYWORD_ABS, KEYWORD_AND, KEYWORD_AS, KEYWORD_ASC, KEYWORD_AVG, KEYWORD_BETWEEN, KEYWORD_BY, KEYWORD_COUNT, KEYWORD_DESC, KEYWORD_DISTINCT, KEYWORD_FROM, KEYWORD_IN, KEYWORD_IS_DEFINED, KEYWORD_IS_UNDEFINED, KEYWORD_LIKE, KEYWORD_LIMIT, KEYWORD_LIST, KEYWORD_MAX, KEYWORD_MIN, KEYWORD_MOD, KEYWORD_NIL, KEYWORD_NOT, KEYWORD_OFFSET, KEYWORD_OR, KEYWORD_ORDER, KEYWORD_SELECT, KEYWORD_SUM, KEYWORD_UNDEFINED, KEYWORD_WHERE, LONG_LITERAL, LPAREN, LT, LTE, MINUS, NOT_EQUAL, PLUS, RPAREN, STRING_LITERAL, TIME_LITERAL, TIMES, TIMESTAMP_LITERAL
 
Constructor Summary
Lexer(java.lang.String oqlQueryString)
          Creates a lexer which will seperate a string query into a series of tokens.
 
Method Summary
 boolean hasMoreTokens()
          Checks whether the query strin has been fully consumed.
 Token nextToken()
          Returns the next Token from the stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_queryString

java.lang.String _queryString

_pos

int _pos

keywords

java.util.Hashtable keywords

endOfQueryPassed

boolean endOfQueryPassed
Constructor Detail

Lexer

public Lexer(java.lang.String oqlQueryString)
Creates a lexer which will seperate a string query into a series of tokens.

Parameters:
oqlQueryString - The string representation of the OQL Query
Method Detail

hasMoreTokens

public boolean hasMoreTokens()
Checks whether the query strin has been fully consumed.

Returns:
True if there is text in the query which hasn't been tokenized, otherwise false.

nextToken

public Token nextToken()
                throws NoMoreTokensException,
                       InvalidCharException
Returns the next Token from the stream.

Returns:
The next token in the stream.
Throws:
NoMoreTokensException - if the last character was already consumed.
InvalidCharException - if an invalid character is found while generating the next Token.


Intalio Inc. (C) 1999-2004. All rights reserved http://www.intalio.com