Open Source Repository

Home /hibernate/hibernate-3.2.4.ga | Repository Home


org/hibernate/hql/ast/HqlToken.java
// $Id: HqlToken.java 4335 2004-08-15 17:03:43Z pgmjsd $
package org.hibernate.hql.ast;

/**
 * A custom token class for the HQL grammar.
 <p><i>NOTE:<i> This class must be public becuase it is instantiated by the ANTLR library.  Ignore any suggestions
 * by various code 'analyzers' about this class being package local.</p>
 */
public class HqlToken extends antlr.CommonToken {
  /**
   * True if this token could be an identifier. *
   */
  private boolean possibleID = false;
  /**
   * The previous token type. *
   */
  private int tokenType;

  /**
   * Returns true if the token could be an identifier.
   *
   @return True if the token could be interpreted as in identifier,
   *         false if not.
   */
  public boolean isPossibleID() {
    return possibleID;
  }

  /**
   * Sets the type of the token, remembering the previous type.
   *
   @param t The new token type.
   */
  public void setType(int t) {
    this.tokenType = getType();
    super.setType);
  }

  /**
   * Returns the previous token type.
   *
   @return int - The old token type.
   */
  private int getPreviousType() {
    return tokenType;
  }

  /**
   * Set to true if this token can be interpreted as an identifier,
   * false if not.
   *
   @param possibleID True if this is a keyword/identifier, false if not.
   */
  public void setPossibleID(boolean possibleID) {
    this.possibleID = possibleID;
  }

  /**
   * Returns a string representation of the object.
   *
   @return String - The debug string.
   */
  public String toString() {
    return "[\""
        + getText()
        "\",<" + getType() "> previously: <" + getPreviousType() ">,line="
        + line + ",col="
        + col + ",possibleID=" + possibleID + "]";
  }

}