blob: 0cc940d6662030e8bcb7c213f00b530cf59fe3f6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.internal.jpa.parsing.jpql;
import org.eclipse.persistence.internal.libraries.antlr.runtime.ANTLRStringStream;
/**
* This Stream is used when tokenizing JPQL queries
* It overrides the look ahead operator to return the lower case version of the string
* This is required because starting in ANTLR v3, case insensitivity is not provided
* as an option in ANTLR and JPQL requires case insensitivity
* @author tware
*
*/
public class CaseInsensitiveANTLRStringStream extends ANTLRStringStream {
/** Copy data in string to a local char array */
public CaseInsensitiveANTLRStringStream(String input) {
super(input);
}
/** This is the preferred constructor as no data is copied */
public CaseInsensitiveANTLRStringStream(char[] data, int numberOfActualCharsInArray) {
super(data, numberOfActualCharsInArray);
}
public int LA(int i) {
int la = super.LA(i);
return Character.toLowerCase(la);
}
}