2 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 /* Please see the following wiki for details of this functionality:
19 * http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782
22 package com.mysql.clusterj.jdbc.antlr;
24 import java.io.IOException;
26 import java.io.InputStreamReader;
27 import java.io.FileInputStream;
29 /** This is a char buffer stream that is loaded from a file
30 * all at once when you construct the object. This looks very
31 * much like an ANTLReader or ANTLRInputStream, but it's a special case
32 * since we know the exact size of the object to load. We can avoid lots
34 * The only difference to ANTLRFileStream is that it extends ANTLRNoCaseStringStream.
36 public class ANTLRNoCaseFileStream extends ANTLRNoCaseStringStream {
37 transient private String fileName;
39 public ANTLRNoCaseFileStream(final String fileName) throws IOException {
43 public ANTLRNoCaseFileStream(final String fileName, final String encoding) throws IOException {
44 this.fileName = fileName;
45 load(fileName, encoding);
48 private void load(final String fileName, final String encoding)
51 if ( fileName==null ) {
54 final File f = new File(fileName);
55 final int size = (int)f.length();
56 InputStreamReader isr;
57 final FileInputStream fis = new FileInputStream(fileName);
58 if ( encoding!=null ) {
59 isr = new InputStreamReader(fis, encoding);
62 isr = new InputStreamReader(fis);
65 data = new char[size];
66 super.n = isr.read(data);
73 public String getSourceName() {