Package mondrian.tui
Class CmdRunner
java.lang.Object
mondrian.tui.CmdRunner
Command line utility which reads and executes MDX commands.
TODO: describe how to use this class.
- Author:
- Richard Emberson
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected static void
appendCube
(StringBuilder buf) protected static void
appendEcho
(StringBuilder buf) protected static void
appendError
(StringBuilder buf) protected static void
appendExit
(StringBuilder buf) protected static void
appendExpr
(StringBuilder buf) protected static void
appendFile
(StringBuilder buf) protected static void
appendFunc
(StringBuilder buf) protected static void
appendIndent
(StringBuilder buf, int i) protected static void
appendList
(StringBuilder buf) protected static void
appendLog
(StringBuilder buf) protected static void
appendParam
(StringBuilder buf) protected static void
appendSet
(StringBuilder buf) protected void
commandLoop
(boolean interactive) protected void
commandLoop
(File file) protected void
commandLoop
(Reader in, boolean interactive) The Command Loop where lines are read from the InputStream and interpreted.protected void
commandLoop
(String mdxCmd, boolean interactive) protected void
Executes a query and returns the result as a string.protected String
executeCube
(String mdxCmd) void
executeCubeCommand
(String cubename, String command, StringBuilder buf) protected String
executeEcho
(String mdxCmd) protected String
executeError
(String mdxCmd) protected String
executeExpr
(String mdxCmd) protected String
executeFile
(String mdxCmd) protected String
executeFunc
(String mdxCmd) protected static String
executeHelp
(String mdxCmd) protected String
executeList
(String mdxCmd) protected String
executeLog
(String mdxCmd) protected String
executeMdxCmd
(String mdxCmd) protected String
executeParam
(String mdxCmd) protected String
executeSet
(String mdxCmd) protected static String
Gets a connection to Mondrian.getConnection
(boolean fresh) Gets a Mondrian connection, creating a new one if fresh is true.getConnectString
(boolean fresh) protected static String
Cube[]
getCubes()
protected static String
protected static String
protected static String
protected static String
protected static int
getLine
(Reader reader, StringBuilder line) Read the next line of input.org.olap4j.OlapConnection
Gets an olap4j connection, creating a new one if fresh is true.long
boolean
long
highCardToString
(Result result) Converts aResult
object to a string printing to standard output directly, without buffering.static boolean
static boolean
isProperty
(String propertyName) void
listCubeAttribues
(String name, StringBuilder buf) void
static void
listParam
(String name, StringBuilder buf) static void
static void
static void
listProperty
(String propertyName, StringBuilder buf) static void
void
loadParameter
(Query query, Parameter param) void
loadParameters
(Query query) protected static void
loadPropertiesFromFile
(String propFile) static void
void
void
mondrian.tui.CmdRunner.Expr
parseParameter
(String value) protected void
protected void
printResults
(String resultString) protected void
processSoapXmla
(File file, int validateXmlaResponse) This is called to process a file containing XMLA as the contents of SOAP xml.protected void
processXmla
(File file, int validateXmlaResponce) This is called to process a file containing XMLA xml.protected static int
readBlock
(Reader reader, StringBuilder line, int offset, String startDelim, String endDelim, boolean allowEscape, boolean addToBuf, StringBuilder buf, int i) Start of a delimted block, read all of it even if it spans more than one line adding each line'sto the buffer. protected static String
Gather up a line ending in '\n' or EOF.protected static int
readString
(Reader reader, StringBuilder line, int offset, StringBuilder buf, int i) Start of a string, read all of it even if it spans more than one line adding each line'sto the buffer. protected String
Executes a query and returns the result.<T> T
runQuery
(String queryString, Util.Functor1<T, org.olap4j.CellSet> f) Executes a query and processes the result using a callback.void
setCubeAttribute
(String cubename, String name, String value, StringBuilder buf) static void
setParameter
(String name, String value) static boolean
setProperty
(String name, String value) void
setTimeQueries
(boolean timeQueries) Converts aResult
object to a stringprotected static void
usage
(String msg, PrintStream out) Prints a usage message.
-
Constructor Details
-
CmdRunner
Creates aCmdRunner
.- Parameters:
options
- Option set, or null to use default optionsout
- Output writer, or null to useSystem.out
.
-
-
Method Details
-
setTimeQueries
public void setTimeQueries(boolean timeQueries) -
getTimeQueries
public boolean getTimeQueries() -
getQueryTime
public long getQueryTime() -
getTotalQueryTime
public long getTotalQueryTime() -
noCubeCaching
public void noCubeCaching() -
listPropertyNames
-
listPropertiesAll
-
listProperty
-
isProperty
-
setProperty
-
loadParameters
-
loadParameter
-
parseParameter
-
listParameterNameValues
-
listParam
-
isParam
-
setParameter
-
getCubes
-
getCube
-
listCubeName
-
listCubeAttribues
-
executeCubeCommand
-
setCubeAttribute
-
execute
Executes a query and returns the result as a string.- Parameters:
queryString
- MDX query text- Returns:
- result String
-
runQuery
Executes a query and returns the result.- Parameters:
queryString
- MDX query text- Returns:
- a
Result
object
-
runQuery
Executes a query and processes the result using a callback.- Parameters:
queryString
- MDX query text
-
toString
Converts aResult
object to a string- Returns:
- String version of mondrian Result object.
-
highCardToString
Converts aResult
object to a string printing to standard output directly, without buffering.- Returns:
- null String since output is dump directly to stdout.
-
makeConnectString
public void makeConnectString() -
getConnection
Gets a connection to Mondrian.- Returns:
- Mondrian
Connection
-
getConnection
Gets a Mondrian connection, creating a new one if fresh is true.- Returns:
- mondrian Connection.
-
getOlapConnection
Gets an olap4j connection, creating a new one if fresh is true.- Returns:
- mondrian Connection.
- Throws:
SQLException
-
getConnectString
-
getConnectString
-
debug
-
getConnectStringProperty
-
getJdbcURLProperty
-
getJdbcUserProperty
-
getJdbcPasswordProperty
-
getCatalogURLProperty
-
getJdbcDriversProperty
-
commandLoop
- Throws:
IOException
-
commandLoop
- Throws:
IOException
-
commandLoop
- Throws:
IOException
-
commandLoop
The Command Loop where lines are read from the InputStream and interpreted. If interactive then prompts are printed.- Parameters:
in
- Input reader (preferably buffered)interactive
- Whether the session is interactive
-
printResults
-
printQueryTime
protected void printQueryTime() -
readLine
Gather up a line ending in '\n' or EOF. Returns null if at EOF. Strip out comments. If a comment character appears within a string then its not a comment. Strings are defined with "\"" or "'" characters. Also, a string can span more than one line (a nice little complication). So, if we read a string, then we consume the whole string as part of the "line" returned, including EOL characters. If an escape character is seen '\\', then it and the next character is added to the line regardless of what the next character is.- Throws:
IOException
-
getLine
Read the next line of input. Return the terminating character, -1 for end of file, or \n or \r. Add \n and \r to the end of the buffer to be included in strings and comment blocks.- Throws:
IOException
-
readString
protected static int readString(Reader reader, StringBuilder line, int offset, StringBuilder buf, int i) throws IOException Start of a string, read all of it even if it spans more than one line adding each line'sto the buffer. - Throws:
IOException
-
readBlock
protected static int readBlock(Reader reader, StringBuilder line, int offset, String startDelim, String endDelim, boolean allowEscape, boolean addToBuf, StringBuilder buf, int i) throws IOException Start of a delimted block, read all of it even if it spans more than one line adding each line'sto the buffer. A delimited block is a delimited comment (/\* ... *\/), or a string. - Throws:
IOException
-
processSoapXmla
This is called to process a file containing XMLA as the contents of SOAP xml.- Throws:
Exception
-
processXmla
This is called to process a file containing XMLA xml.- Throws:
Exception
-
executeHelp
-
appendIndent
-
appendSet
-
executeSet
-
appendLog
-
executeLog
-
appendFile
-
executeFile
-
appendList
-
executeList
-
appendFunc
-
executeFunc
-
appendParam
-
executeParam
-
appendCube
-
executeCube
-
appendError
-
executeError
-
appendEcho
-
executeEcho
-
appendExpr
-
executeExpr
-
appendExit
-
reExecuteMdxCmd
-
executeMdxCmd
-
loadPropertiesFromFile
- Throws:
IOException
-
usage
Prints a usage message.- Parameters:
msg
- Prefix to the messageout
- Output stream
-
main
- Throws:
Exception
-