Package net.sf.jasperreports.olap.xmla
Class JRXmlaQueryExecuter
- java.lang.Object
-
- net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
-
- net.sf.jasperreports.olap.xmla.JRXmlaQueryExecuter
-
- All Implemented Interfaces:
JRQueryExecuter
public class JRXmlaQueryExecuter extends JRAbstractQueryExecuter
- Author:
- Michael Gunther (m.guenther at users.sourceforge.net), Lucian Chirita (lucianc@users.sourceforge.net), swood
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
JRAbstractQueryExecuter.QueryParameter, JRAbstractQueryExecuter.QueryParameterEntry, JRAbstractQueryExecuter.QueryParameterVisitor, JRAbstractQueryExecuter.ValuedQueryParameter, JRAbstractQueryExecuter.VisitExceptionWrapper
-
-
Field Summary
Fields Modifier and Type Field Description static String
EXCEPTION_MESSAGE_KEY_MESSAGE_CALL_FAILED
static String
EXCEPTION_MESSAGE_KEY_XMLA_CANNOT_RETRIEVE_ELEMENT
static String
EXCEPTION_MESSAGE_KEY_XMLA_NO_LEVEL_NAME
static String
EXCEPTION_MESSAGE_KEY_XMLA_NULL_ELEMENT
-
Fields inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
clauseFunctions, dataset, EXCEPTION_MESSAGE_KEY_NUMERIC_TYPE_REQUIRED, EXCEPTION_MESSAGE_KEY_PARAMETER_NOT_FOUND, EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_CIRCULARLY_NESTED_PARAMETER, EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_ID_FIRST_TOKEN_MISSING, EXCEPTION_MESSAGE_KEY_QUERY_CLAUSE_NOT_FOUND, EXCEPTION_MESSAGE_KEY_UNSUPPORTED_PARAMETER_TYPE, GET_COLLECTED
-
-
Constructor Summary
Constructors Constructor Description JRXmlaQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String,? extends JRValueParameter> parametersMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addParameterList(SOAPEnvelope envelope, SOAPElement eParent, String typeName, String listName, Map<String,String> params)
boolean
cancelQuery()
Cancels the query if it's currently running.void
close()
Closes resources kept open during the data source iteration.JRDataSource
createDatasource()
Executes the query and creates aJRDataSource
out of the result.protected SOAPMessage
createQueryMessage()
protected SOAPConnection
createSOAPConnection()
protected SOAPMessage
executeQuery(SOAPMessage message, URL url)
Sends the SOAP Message over the connection and returns the Result-SOAP-Messageprotected String
getCanonicalQueryLanguage()
Returns a canonical query language for this query executer implementation.protected String
getParameterReplacement(String parameterName)
Returns the replacement text for a query parameter.JROlapResult
getResult()
protected String
getSoapUrl()
protected void
handleCellErrors(Iterator<?> errorElems)
protected void
handleHierInfo(JRXmlaResultAxis axis, SOAPElement hierInfoElement)
protected void
handleResultFault(SOAPFault fault)
protected void
handleTupleElement(JRXmlaResultAxis axis, SOAPElement tupleElement)
protected void
handleTuplesElement(JRXmlaResultAxis axis, SOAPElement tuplesElement)
protected void
parseAxesElement(SOAPElement axesElement)
protected void
parseAxesInfoElement(SOAPElement axesInfoElement)
protected void
parseCellDataElement(SOAPElement cellDataElement)
protected void
parseOLAPInfoElement(SOAPElement olapInfoElement)
protected void
parseResult(SOAPMessage reply)
Parses the result-Message into this class's structureprotected String
prettyPrintSOAP(SOAPElement element)
-
Methods inherited from class net.sf.jasperreports.engine.query.JRAbstractQueryExecuter
addQueryMultiParameters, addQueryMultiParameters, addQueryParameter, addQueryParameter, appendClauseChunk, appendParameterChunk, appendParameterClauseChunk, appendQueryChunk, appendTextChunk, applyClause, checkParameter, findExtensionQueryFunction, getBooleanParameter, getBooleanParameter, getBooleanParameterOrProperty, getBooleanParameterOrProperty, getCollectedParameterNames, getCollectedParameters, getIntegerParameter, getIntegerParameter, getIntegerParameterOrProperty, getIntegerParameterOrProperty, getJasperReportsContext, getParameterValue, getParameterValue, getPropertiesUtil, getQueryExecutionContext, getQueryString, getRepositoryContext, getStringParameter, getStringParameterOrProperty, getValueParameter, getValueParameter, parameterHasValue, parseQuery, registerClauseFunction, resolveFunction, unregisterClauseFunction, visitQueryParameters
-
-
-
-
Field Detail
-
EXCEPTION_MESSAGE_KEY_XMLA_CANNOT_RETRIEVE_ELEMENT
public static final String EXCEPTION_MESSAGE_KEY_XMLA_CANNOT_RETRIEVE_ELEMENT
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_MESSAGE_CALL_FAILED
public static final String EXCEPTION_MESSAGE_KEY_MESSAGE_CALL_FAILED
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_XMLA_NO_LEVEL_NAME
public static final String EXCEPTION_MESSAGE_KEY_XMLA_NO_LEVEL_NAME
- See Also:
- Constant Field Values
-
EXCEPTION_MESSAGE_KEY_XMLA_NULL_ELEMENT
public static final String EXCEPTION_MESSAGE_KEY_XMLA_NULL_ELEMENT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
JRXmlaQueryExecuter
public JRXmlaQueryExecuter(JasperReportsContext jasperReportsContext, JRDataset dataset, Map<String,? extends JRValueParameter> parametersMap)
-
-
Method Detail
-
getCanonicalQueryLanguage
protected String getCanonicalQueryLanguage()
Description copied from class:JRAbstractQueryExecuter
Returns a canonical query language for this query executer implementation.The canonical language is used to retrieve extensions for the query executer.
The default implementation returns the runtime query language used in the dataset, but query executer implementations should override this method and return a fixed language.
- Overrides:
getCanonicalQueryLanguage
in classJRAbstractQueryExecuter
- Returns:
- a canonical query language
-
getParameterReplacement
protected String getParameterReplacement(String parameterName)
Description copied from class:JRAbstractQueryExecuter
Returns the replacement text for a query parameter.- Specified by:
getParameterReplacement
in classJRAbstractQueryExecuter
- Parameters:
parameterName
- the parameter name- Returns:
- the replacement text
- See Also:
JRQueryChunk.TYPE_PARAMETER
-
getResult
public JROlapResult getResult()
-
createDatasource
public JRDataSource createDatasource() throws JRException
Description copied from interface:JRQueryExecuter
Executes the query and creates aJRDataSource
out of the result.- Returns:
- a
JRDataSource
wrapping the query execution result. - Throws:
JRException
-
getSoapUrl
protected String getSoapUrl() throws MalformedURLException
- Throws:
MalformedURLException
-
cancelQuery
public boolean cancelQuery() throws JRException
Description copied from interface:JRQueryExecuter
Cancels the query if it's currently running. This method will be called from a different thread if the client decides to cancel the filling process.- Returns:
true
if and only if the query was running and it has been canceled- Throws:
JRException
-
close
public void close()
Description copied from interface:JRQueryExecuter
Closes resources kept open during the data source iteration. This method is called after the report is filled or the dataset is iterated. If a resource is not needed after the data source has been created, it should be released at the end ofcreateDatasource
.
-
createSOAPConnection
protected SOAPConnection createSOAPConnection()
-
createQueryMessage
protected SOAPMessage createQueryMessage()
-
addParameterList
protected void addParameterList(SOAPEnvelope envelope, SOAPElement eParent, String typeName, String listName, Map<String,String> params) throws SOAPException
- Throws:
SOAPException
-
executeQuery
protected SOAPMessage executeQuery(SOAPMessage message, URL url)
Sends the SOAP Message over the connection and returns the Result-SOAP-Message- Returns:
- Reply-Message
-
parseResult
protected void parseResult(SOAPMessage reply) throws SOAPException
Parses the result-Message into this class's structure- Parameters:
reply
- The reply-Message from the Server- Throws:
SOAPException
-
handleResultFault
protected void handleResultFault(SOAPFault fault)
-
parseOLAPInfoElement
protected void parseOLAPInfoElement(SOAPElement olapInfoElement) throws SOAPException
- Throws:
SOAPException
-
parseAxesInfoElement
protected void parseAxesInfoElement(SOAPElement axesInfoElement) throws SOAPException
- Throws:
SOAPException
-
parseAxesElement
protected void parseAxesElement(SOAPElement axesElement) throws SOAPException
- Throws:
SOAPException
-
parseCellDataElement
protected void parseCellDataElement(SOAPElement cellDataElement) throws SOAPException
- Throws:
SOAPException
-
handleCellErrors
protected void handleCellErrors(Iterator<?> errorElems) throws SOAPException
- Throws:
SOAPException
-
handleHierInfo
protected void handleHierInfo(JRXmlaResultAxis axis, SOAPElement hierInfoElement) throws SOAPException
- Throws:
SOAPException
-
handleTuplesElement
protected void handleTuplesElement(JRXmlaResultAxis axis, SOAPElement tuplesElement) throws SOAPException
- Throws:
SOAPException
-
handleTupleElement
protected void handleTupleElement(JRXmlaResultAxis axis, SOAPElement tupleElement) throws SOAPException
- Throws:
SOAPException
-
prettyPrintSOAP
protected String prettyPrintSOAP(SOAPElement element)
-
-