MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ANTLRNoCaseFileStream.java
1 /*
2  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
3  *
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.
7  *
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.
12  *
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
16  */
17 
18 /* Please see the following wiki for details of this functionality:
19  * http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782
20  */
21 
22 package com.mysql.clusterj.jdbc.antlr;
23 
24 import java.io.IOException;
25 import java.io.File;
26 import java.io.InputStreamReader;
27 import java.io.FileInputStream;
28 
37  transient private String fileName;
38 
39  public ANTLRNoCaseFileStream(final String fileName) throws IOException {
40  this(fileName, null);
41  }
42 
43  public ANTLRNoCaseFileStream(final String fileName, final String encoding) throws IOException {
44  this.fileName = fileName;
45  load(fileName, encoding);
46  }
47 
48  private void load(final String fileName, final String encoding)
49  throws IOException
50  {
51  if ( fileName==null ) {
52  return;
53  }
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);
60  }
61  else {
62  isr = new InputStreamReader(fis);
63  }
64  try {
65  data = new char[size];
66  super.n = isr.read(data);
67  }
68  finally {
69  isr.close();
70  }
71  }
72 
73  public String getSourceName() {
74  return fileName;
75  }
76 }