KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mondrian > olap > ConnectionBase


1 /*
2 // $Id: //open/mondrian/src/main/mondrian/olap/ConnectionBase.java#19 $
3 // This software is subject to the terms of the Common Public License
4 // Agreement, available at the following URL:
5 // http://www.opensource.org/licenses/cpl.html.
6 // Copyright (C) 2001-2002 Kana Software, Inc.
7 // Copyright (C) 2001-2007 Julian Hyde and others
8 // All Rights Reserved.
9 // You must accept the terms of that agreement to use this software.
10 //
11 // jhyde, 6 August, 2001
12 */

13
14 package mondrian.olap;
15
16 import mondrian.resource.MondrianResource;
17
18 import org.apache.log4j.Logger;
19
20 /**
21  * <code>ConnectionBase</code> implements some of the methods in
22  * {@link Connection}.
23  *
24  * @author jhyde
25  * @since 6 August, 2001
26  * @version $Id: //open/mondrian/src/main/mondrian/olap/ConnectionBase.java#19 $
27  */

28 public abstract class ConnectionBase implements Connection {
29
30     public static void memoryUsageNotification(Query query, String JavaDoc msg) {
31         query.setOutOfMemory(msg);
32     }
33
34     protected ConnectionBase() {
35     }
36
37     protected abstract Logger getLogger();
38
39
40     public String JavaDoc getFullConnectString() {
41         String JavaDoc s = getConnectString();
42         String JavaDoc catalogName = getCatalogName();
43         if (catalogName != null) {
44             int len = s.length() + catalogName.length() + 32;
45             StringBuilder JavaDoc buf = new StringBuilder JavaDoc(len);
46             buf.append(s);
47             if (!s.endsWith(";")) {
48                 buf.append(';');
49             }
50             buf.append("Initial Catalog=");
51             buf.append(catalogName);
52             buf.append(';');
53             s = buf.toString();
54         }
55         return s;
56     }
57
58     public Query parseQuery(String JavaDoc s) {
59         return parseQuery(s, false);
60     }
61
62     public Query parseQuery(String JavaDoc s, boolean load) {
63         boolean debug = false;
64         if (getLogger().isDebugEnabled()) {
65             //debug = true;
66
StringBuilder JavaDoc buf = new StringBuilder JavaDoc(256);
67             buf.append(Util.nl);
68             buf.append(s);
69             getLogger().debug(buf.toString());
70         }
71         try {
72             Parser parser = new Parser();
73             final FunTable funTable = getSchema().getFunTable();
74             Query q = parser.parseInternal(this, s, debug, funTable, load);
75             return q;
76         } catch (Throwable JavaDoc e) {
77             throw MondrianResource.instance().FailedToParseQuery.ex(s, e);
78         }
79     }
80
81     public Exp parseExpression(String JavaDoc s) {
82         boolean debug = false;
83         if (getLogger().isDebugEnabled()) {
84             //debug = true;
85
StringBuilder JavaDoc buf = new StringBuilder JavaDoc(256);
86             buf.append(Util.nl);
87             buf.append(s);
88             getLogger().debug(buf.toString());
89         }
90         try {
91             Parser parser = new Parser();
92             final FunTable funTable = getSchema().getFunTable();
93             Exp q = parser.parseExpression(this, s, debug, funTable);
94             return q;
95         } catch (Throwable JavaDoc e) {
96             throw MondrianResource.instance().FailedToParseQuery.ex(s, e);
97         }
98     }
99 }
100
101 // End ConnectionBase.java
102
Popular Tags