abstract class Rowset extends Object implements XmlaConstants
populateImpl(mondrian.xmla.XmlaResponse, org.olap4j.OlapConnection, java.util.List<mondrian.xmla.Rowset.Row>), calling addRow(mondrian.xmla.Rowset.Row, java.util.List<mondrian.xmla.Rowset.Row>) for each row.RowsetDefinition| Modifier and Type | Class and Description | 
|---|---|
protected static class  | 
Rowset.Row
A set of name/value pairs, which can be output using
  
addRow(mondrian.xmla.Rowset.Row, java.util.List<mondrian.xmla.Rowset.Row>). | 
protected static class  | 
Rowset.XmlElement
Holder for non-scalar column values of a
  
Rowset.Row. | 
| Modifier and Type | Field and Description | 
|---|---|
protected boolean | 
deep  | 
protected Map<String,String> | 
extraProperties  | 
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  | 
CHH_AUTHORIZATION_CODE, CHH_AUTHORIZATION_FAULT_FS, CHH_CODE, CHH_FAULT_FS, CLIENT_FAULT_FC, CONTEXT_MIME_TYPE, CONTEXT_ROLE_NAME, CONTEXT_XMLA_PASSWORD, CONTEXT_XMLA_SESSION_ID, CONTEXT_XMLA_SESSION_STATE, CONTEXT_XMLA_SESSION_STATE_BEGIN, CONTEXT_XMLA_SESSION_STATE_END, CONTEXT_XMLA_SESSION_STATE_WITHIN, CONTEXT_XMLA_USERNAME, 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_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_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, 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, 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_SOAP_SECEXT, 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_SECURITY, XMLA_SESSION, XMLA_SESSION_ID| Constructor and Description | 
|---|
Rowset(RowsetDefinition definition,
      XmlaRequest request,
      XmlaHandler handler)
Creates a Rowset. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
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 Util.Functor1<Boolean,Catalog> | 
catNameCond()  | 
protected void | 
emit(Rowset.Row row,
    XmlaResponse response)
Emits a row for this rowset, reading fields from a
  
Rowset.Row object. | 
(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. 
 | 
(package private) <E> Util.Functor1<Boolean,E> | 
makeCondition(RowsetDefinition.Column column)
Creates a condition functor based on the restrictions on a given metadata
 column specified in an XMLA request. 
 | 
(package private) <E,V> Util.Functor1<Boolean,E> | 
makeCondition(Util.Functor1<V,? super E> getter,
             RowsetDefinition.Column column)
Creates a condition functor using an accessor. 
 | 
protected boolean | 
needConnection()  | 
protected <E> void | 
populate(Class<E> clazz,
        List<Rowset.Row> rows,
        Comparator<E> comparator)
Populates all of the values in an enumeration into a list of rows. 
 | 
void | 
populate(XmlaResponse response,
        OlapConnection connection,
        List<Rowset.Row> rows)
Gathers the set of rows which match a given set of the criteria. 
 | 
protected abstract void | 
populateImpl(XmlaResponse response,
            OlapConnection connection,
            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. 
 | 
protected static final org.apache.log4j.Logger LOGGER
protected final RowsetDefinition rowsetDefinition
protected final XmlaRequest request
protected final XmlaHandler handler
protected final boolean deep
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).
protected ArrayList<RowsetDefinition.Column> pruneRestrictions(ArrayList<RowsetDefinition.Column> list)
protected void setProperty(PropertyDefinition propertyDef, String value)
public final void unparse(XmlaResponse response) throws XmlaException, SQLException
XmlaExceptionSQLExceptionpublic final void populate(XmlaResponse response, OlapConnection connection, List<Rowset.Row> rows) throws XmlaException
XmlaExceptionprotected boolean needConnection()
protected abstract void populateImpl(XmlaResponse response, OlapConnection connection, List<Rowset.Row> rows) throws XmlaException, SQLException
XmlaExceptionSQLExceptionprotected final boolean addRow(Rowset.Row row, List<Rowset.Row> rows) throws XmlaException
Rowset.Row to a result, provided that it meets the necessary
 criteria. Returns whether the row was added.row - Rowrows - List of result rowsXmlaExceptionprotected void emit(Rowset.Row row, XmlaResponse response) throws XmlaException, SQLException
Rowset.Row object.row - Rowresponse - XMLA response writerXmlaExceptionSQLExceptionprotected <E> void populate(Class<E> clazz, List<Rowset.Row> rows, Comparator<E> comparator) throws XmlaException
XmlaException<E> Util.Functor1<Boolean,E> makeCondition(RowsetDefinition.Column column)
A condition is a Util.Functor1 whose return
 type is boolean.
 Restrictions are used in each Rowset's discovery request. If there is no
 restriction then the passes method always returns true.
 
It is known at the beginning of a
 populate(XmlaResponse, org.olap4j.OlapConnection, java.util.List)
 method whether the restriction is not specified (null), a single value
 (String) or an array of values (String[]). So, creating the conditions
 just once at the beginning is faster than having to determine the
 restriction status each time it is needed.
<E,V> Util.Functor1<Boolean,E> makeCondition(Util.Functor1<V,? super E> getter, RowsetDefinition.Column column)
The accessor gets a particular property of the element in question for the column restrictions to act upon.
String getRestrictionValueAsString(RowsetDefinition.Column column)
int getRestrictionValueAsInt(RowsetDefinition.Column column)
int if it
 exists, -1 otherwise.protected boolean isRestricted(RowsetDefinition.Column column)
protected Util.Functor1<Boolean,Catalog> catNameCond()