/*
* This software is subject to the terms of the Eclipse Public License v1.0
* Agreement, available at the following URL:
* http://www.eclipse.org/legal/epl-v10.html.
* You must accept the terms of that agreement to use this software.
*
* Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved.
*/
package mondrian.xmla;
import org.olap4j.metadata.XmlaConstants;
import java.util.Map;
/**
* XML/A request interface.
*
* @author Gang Chen
*/
public interface XmlaRequest {
/**
* Indicate DISCOVER or EXECUTE method.
*/
XmlaConstants.Method getMethod();
/**
* Properties of XML/A request.
*/
Map<String, String> getProperties();
/**
* Restrictions of DISCOVER method.
*
* <p>If the value is a list of strings, the restriction passes if the
* column has one of the values.
*/
Map<String, Object> getRestrictions();
/**
* Statement of EXECUTE method.
*/
String getStatement();
/**
* Role name binds with this XML/A request. Maybe null.
*/
String getRoleName();
/**
* Request type of DISCOVER method.
*/
String getRequestType();
/**
* Indicate whether statement is a drill through statement of
* EXECUTE method.
*/
boolean isDrillThrough();
/**
* The username to use to open the underlying olap4j connection.
* Can be null.
*/
String getUsername();
/**
* The password to use to open the underlying olap4j connection.
* Can be null.
*/
String getPassword();
/**
* Returns the id of the session this request belongs to.
*
* <p>Not necessarily the same as the HTTP session: the SOAP request
* contains its own session information.</p>
*
* <p>The session id is used to retrieve existing olap connections. And
* username / password only need to be passed on the first request in a
* session.</p>
*
* @return Id of the session
*/
String getSessionId();
}
// End XmlaRequest.java