mondrian.xmla
Class Rowset

java.lang.Object
  extended by mondrian.xmla.Rowset
All Implemented Interfaces:
XmlaConstants
Direct Known Subclasses:
RowsetDefinition.DbschemaCatalogsRowset, RowsetDefinition.DbschemaColumnsRowset, RowsetDefinition.DbschemaProviderTypesRowset, RowsetDefinition.DbschemaSchemataRowset, RowsetDefinition.DbschemaTablesInfoRowset, RowsetDefinition.DbschemaTablesRowset, RowsetDefinition.DiscoverDatasourcesRowset, RowsetDefinition.DiscoverEnumeratorsRowset, RowsetDefinition.DiscoverKeywordsRowset, RowsetDefinition.DiscoverLiteralsRowset, RowsetDefinition.DiscoverPropertiesRowset, RowsetDefinition.DiscoverSchemaRowsetsRowset, RowsetDefinition.MdschemaActionsRowset, RowsetDefinition.MdschemaCubesRowset, RowsetDefinition.MdschemaDimensionsRowset, RowsetDefinition.MdschemaFunctionsRowset, RowsetDefinition.MdschemaHierarchiesRowset, RowsetDefinition.MdschemaLevelsRowset, RowsetDefinition.MdschemaMeasuresRowset, RowsetDefinition.MdschemaMembersRowset, RowsetDefinition.MdschemaPropertiesRowset, RowsetDefinition.MdschemaSetsRowset

abstract class Rowset
extends Object
implements XmlaConstants

Base class for an XML for Analysis schema rowset. A concrete derived class should implement populate(mondrian.xmla.XmlaResponse, java.util.List), calling addRow(mondrian.xmla.Rowset.Row, java.util.List) for each row.

Since:
May 2, 2003
Author:
jhyde
See Also:
RowsetDefinition
 

Nested Class Summary
(package private) static class Rowset.RestrictionTest
          Extensions to this abstract class implement a restriction test for each Rowset's discovery request.
protected static class Rowset.Row
          A set of name/value pairs, which can be output using addRow(mondrian.xmla.Rowset.Row, java.util.List).
protected static class Rowset.XmlElement
          Holder for non-scalar column values of a Rowset.Row.
 
Field Summary
protected  XmlaHandler handler
           
protected static org.apache.log4j.Logger LOGGER
           
protected  Map<String,String> properties
           
protected  XmlaRequest request
           
protected  Map<String,Object> restrictions
           
protected  RowsetDefinition rowsetDefinition
           
 
Fields inherited from interface mondrian.xmla.XmlaConstants
CHH_AUTHORIZATION_CODE, CHH_AUTHORIZATION_FAULT_FS, CHH_CODE, CHH_FAULT_FS, CLIENT_FAULT_FC, CONTENT_DEFAULT, CONTEXT_ROLE, CONTEXT_ROLE_NAME, CONTEXT_XMLA_SESSION_ID, CONTEXT_XMLA_SESSION_STATE, CONTEXT_XMLA_SESSION_STATE_BEGIN, CONTEXT_XMLA_SESSION_STATE_END, CONTEXT_XMLA_SESSION_STATE_WITHIN, CPOSTA_CODE, CPOSTA_FAULT_FS, CPREA_CODE, CPREA_FAULT_FS, FAULT_ACTOR, FAULT_FC_PREFIX, FAULT_FS_PREFIX, FAULT_NS_PREFIX, HSB_ACCESS_DENIED_CODE, HSB_ACCESS_DENIED_FAULT_FS, HSB_BAD_COMMAND_CODE, HSB_BAD_COMMAND_FAULT_FS, HSB_BAD_METHOD_CODE, HSB_BAD_METHOD_FAULT_FS, HSB_BAD_METHOD_NS_CODE, HSB_BAD_METHOD_NS_FAULT_FS, HSB_BAD_NON_NULLABLE_COLUMN_CODE, HSB_BAD_NON_NULLABLE_COLUMN_FAULT_FS, HSB_BAD_PROPERTIES_CODE, HSB_BAD_PROPERTIES_FAULT_FS, HSB_BAD_PROPERTIES_LIST_CODE, HSB_BAD_PROPERTIES_LIST_FAULT_FS, HSB_BAD_REQUEST_TYPE_CODE, HSB_BAD_REQUEST_TYPE_FAULT_FS, HSB_BAD_RESTRICTION_LIST_CODE, HSB_BAD_RESTRICTION_LIST_FAULT_FS, HSB_BAD_RESTRICTION_TYPE_CODE, HSB_BAD_RESTRICTION_TYPE_FAULT_FS, HSB_BAD_RESTRICTION_VALUE_CODE, HSB_BAD_RESTRICTION_VALUE_FAULT_FS, HSB_BAD_RESTRICTIONS_CODE, HSB_BAD_RESTRICTIONS_FAULT_FS, HSB_BAD_SOAP_BODY_CODE, HSB_BAD_SOAP_BODY_FAULT_FS, HSB_BAD_STATEMENT_CODE, HSB_BAD_STATEMENT_FAULT_FS, HSB_CONNECTION_DATA_SOURCE_CODE, HSB_CONNECTION_DATA_SOURCE_FAULT_FS, HSB_DISCOVER_FORMAT_CODE, HSB_DISCOVER_FORMAT_FAULT_FS, HSB_DISCOVER_UNPARSE_CODE, HSB_DISCOVER_UNPARSE_FAULT_FS, HSB_DRILL_THROUGH_FORMAT_CODE, HSB_DRILL_THROUGH_FORMAT_FAULT_FS, HSB_DRILL_THROUGH_NOT_ALLOWED_CODE, HSB_DRILL_THROUGH_NOT_ALLOWED_FAULT_FS, HSB_DRILL_THROUGH_SQL_CODE, HSB_DRILL_THROUGH_SQL_FAULT_FS, HSB_DRILLDOWN_BAD_FIRST_ROWSET_CODE, HSB_DRILLDOWN_BAD_FIRST_ROWSET_FAULT_FS, HSB_DRILLDOWN_BAD_MAXROWS_CODE, HSB_DRILLDOWN_BAD_MAXROWS_FAULT_FS, HSB_DRILLDOWN_ERROR_CODE, HSB_DRILLDOWN_ERROR_FAULT_FS, HSB_EXECUTE_QUERY_CODE, HSB_EXECUTE_QUERY_FAULT_FS, HSB_EXECUTE_UNPARSE_CODE, HSB_EXECUTE_UNPARSE_FAULT_FS, HSB_PARSE_QUERY_CODE, HSB_PARSE_QUERY_FAULT_FS, HSB_PROCESS_CODE, HSB_PROCESS_FAULT_FS, HSB_UNKNOWN_CODE, HSB_UNKNOWN_FAULT_FS, HSB_UNSUPPORTED_OPERATION_CODE, HSB_UNSUPPORTED_OPERATION_FAULT_FS, HSH_BAD_SESSION_ID_CODE, HSH_BAD_SESSION_ID_FAULT_FS, HSH_MUST_UNDERSTAND_CODE, HSH_MUST_UNDERSTAND_FAULT_FS, HSH_UNKNOWN_CODE, HSH_UNKNOWN_FAULT_FS, METHOD_DISCOVER, METHOD_EXECUTE, MONDRIAN_NAMESPACE, MSM_UNKNOWN_CODE, MSM_UNKNOWN_FAULT_FS, MUST_UNDERSTAND_FAULT_FC, NS_SOAP_ENC_1_1, NS_SOAP_ENC_1_2, NS_SOAP_ENV_1_1, NS_SOAP_ENV_1_2, NS_SQL, NS_XMLA, NS_XMLA_EMPTY, NS_XMLA_EX, NS_XMLA_MDDATASET, NS_XMLA_ROWSET, NS_XSD, NS_XSI, SERVER_FAULT_FC, SOAP_MUST_UNDERSTAND_ATTR, SOAP_PREFIX, UNKNOWN_ERROR_CODE, UNKNOWN_ERROR_FAULT_FS, USM_DOM_FACTORY_CODE, USM_DOM_FACTORY_FAULT_FS, USM_DOM_PARSE_CODE, USM_DOM_PARSE_FAULT_FS, USM_DOM_PARSE_IO_CODE, USM_DOM_PARSE_IO_FAULT_FS, USM_REQUEST_INPUT_CODE, USM_REQUEST_INPUT_FAULT_FS, USM_REQUEST_STATE_CODE, USM_REQUEST_STATE_FAULT_FS, USM_UNKNOWN_CODE, USM_UNKNOWN_FAULT_FS, VERSION_MISSMATCH_FAULT_FC, XMLA_BEGIN_SESSION, XMLA_END_SESSION, XMLA_SESSION, XMLA_SESSION_ID
 
Constructor Summary
Rowset(RowsetDefinition definition, XmlaRequest request, XmlaHandler handler)
          The exceptions thrown in this constructor are not produced during the execution of an XMLA request and so can be ordinary exceptions and not XmlaException (which are specifically for generating SOAP Fault xml).
 
Method Summary
protected  boolean addRow(Rowset.Row row, List<Rowset.Row> rows)
          Adds a Rowset.Row to a result, provided that it meets the necessary criteria.
protected  void emit(Rowset.Row row, XmlaResponse response)
          Emits a row for this rowset, reading fields from a Rowset.Row object.
(package private)  Rowset.RestrictionTest getRestrictionTest(RowsetDefinition.Column column)
           
(package private)  int getRestrictionValueAsInt(RowsetDefinition.Column column)
          Returns a column's restriction as an int if it exists, -1 otherwise.
(package private)  String getRestrictionValueAsString(RowsetDefinition.Column column)
          Returns the restriction if it is a String, or null otherwise.
protected  boolean isRestricted(RowsetDefinition.Column column)
          Returns true if there is a restriction for the given column definition.
protected
<E extends Enum<E>>
void
populate(Class<E> clazz, List<Rowset.Row> rows)
          Populates all of the values in an enumeration into a list of rows.
abstract  void populate(XmlaResponse response, List<Rowset.Row> rows)
          Gathers the set of rows which match a given set of the criteria.
protected  ArrayList<RowsetDefinition.Column> pruneRestrictions(ArrayList<RowsetDefinition.Column> list)
           
protected  void setProperty(PropertyDefinition propertyDef, String value)
          Sets a property for this rowset.
 void unparse(XmlaResponse response)
          Writes the contents of this rowset as a series of SAX events.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

protected static final org.apache.log4j.Logger LOGGER

rowsetDefinition

protected final RowsetDefinition rowsetDefinition

restrictions

protected final Map<String,Object> restrictions

properties

protected final Map<String,String> properties

request

protected final XmlaRequest request

handler

protected final XmlaHandler handler
Constructor Detail

Rowset

Rowset(RowsetDefinition definition,
       XmlaRequest request,
       XmlaHandler handler)
The exceptions thrown in this constructor are not produced during the execution of an XMLA request and so can be ordinary exceptions and not XmlaException (which are specifically for generating SOAP Fault xml).

Method Detail

pruneRestrictions

protected ArrayList<RowsetDefinition.Column> pruneRestrictions(ArrayList<RowsetDefinition.Column> list)

setProperty

protected void setProperty(PropertyDefinition propertyDef,
                           String value)
Sets a property for this rowset. Called by the constructor for each supplied property.

A derived class should override this method and intercept each property it supports. Any property it does not support, it should forward to the base class method, which will probably throw an error.


unparse

public final void unparse(XmlaResponse response)
                   throws XmlaException
Writes the contents of this rowset as a series of SAX events.

Throws:
XmlaException

populate

public abstract void populate(XmlaResponse response,
                              List<Rowset.Row> rows)
                       throws XmlaException
Gathers the set of rows which match a given set of the criteria.

Throws:
XmlaException

addRow

protected final boolean addRow(Rowset.Row row,
                               List<Rowset.Row> rows)
                        throws XmlaException
Adds a Rowset.Row to a result, provided that it meets the necessary criteria. Returns whether the row was added.

Throws:
XmlaException
Parameters:
row - Row
rows - List of result rows

emit

protected void emit(Rowset.Row row,
                    XmlaResponse response)
             throws XmlaException
Emits a row for this rowset, reading fields from a Rowset.Row object.

Throws:
XmlaException
Parameters:
row - Row
response - XMLA response writer

populate

protected <E extends Enum<E>> void populate(Class<E> clazz,
                                            List<Rowset.Row> rows)
                 throws XmlaException
Populates all of the values in an enumeration into a list of rows.

Throws:
XmlaException

getRestrictionTest

Rowset.RestrictionTest getRestrictionTest(RowsetDefinition.Column column)

getRestrictionValueAsString

String getRestrictionValueAsString(RowsetDefinition.Column column)
Returns the restriction if it is a String, or null otherwise. Does not attempt two determine if the restriction is an array of Strings if all members of the array have the same value (in which case one could return, again, simply a single String).


getRestrictionValueAsInt

int getRestrictionValueAsInt(RowsetDefinition.Column column)
Returns a column's restriction as an int if it exists, -1 otherwise.


isRestricted

protected boolean isRestricted(RowsetDefinition.Column column)
Returns true if there is a restriction for the given column definition.


SourceForge.net_Logo