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.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 Map<String,Object> restrictions
protected final Map<String,String> properties
protected final Map<String,String> extraProperties
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
XmlaException
SQLException
public final void populate(XmlaResponse response, OlapConnection connection, List<Rowset.Row> rows) throws XmlaException
XmlaException
protected boolean needConnection()
protected abstract void populateImpl(XmlaResponse response, OlapConnection connection, List<Rowset.Row> rows) throws XmlaException, SQLException
XmlaException
SQLException
protected 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.XmlaException
row
- Rowrows
- List of result rowsprotected void emit(Rowset.Row row, XmlaResponse response) throws XmlaException, SQLException
Rowset.Row
object.XmlaException
SQLException
row
- Rowresponse
- XMLA response writerprotected <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()