net.sf.farrago.namespace.mock
Class MedMockDataServer

java.lang.Object
  extended by net.sf.farrago.plugin.FarragoAbstractPluginBase
      extended by net.sf.farrago.namespace.impl.MedAbstractBase
          extended by net.sf.farrago.namespace.impl.MedAbstractDataServer
              extended by net.sf.farrago.namespace.mock.MedMockDataServer
All Implemented Interfaces:
FarragoMedDataServer, FarragoAllocation, ClosableAllocation
Direct Known Subclasses:
MedMockLocalDataServer

 class MedMockDataServer
extends MedAbstractDataServer

MedMockDataServer provides a mock implementation of the FarragoMedDataServer interface.

Version:
$Id: //open/dev/farrago/src/net/sf/farrago/namespace/mock/MedMockDataServer.java#20 $
Author:
John V. Sichi

Field Summary
static boolean DEFAULT_EXTRACT_COLUMNS
           
protected  boolean extractColumns
           
static String PROP_EXECUTOR_IMPL
           
static String PROP_EXTRACT_COLUMNS
           
static String PROP_ROW_COUNT
           
static String PROP_ROW_COUNT_SQL
           
static String PROP_SCHEMA_NAME
           
static String PROP_SIMULATE_BAD
           
static String PROP_TABLE_NAME
           
static String PROP_UDX_SPECIFIC_NAME
           
static String PROPVAL_FENNEL
           
static String PROPVAL_JAVA
           
private  MedAbstractDataWrapper wrapper
           
 
Fields inherited from class net.sf.farrago.plugin.FarragoAbstractPluginBase
BOOLEAN_CHOICES_DEFAULT_FALSE, BOOLEAN_CHOICES_DEFAULT_TRUE, EMPTY_DRIVER_PROPERTIES
 
Fields inherited from interface net.sf.farrago.namespace.FarragoMedDataServer
PROP_SERVER_NAME, PROP_SERVER_TYPE, PROP_SERVER_VERSION
 
Constructor Summary
MedMockDataServer(MedAbstractDataWrapper wrapper, String serverMofId, Properties props)
           
 
Method Summary
private  void checkNameMatch(String expectedName, String actualName)
           
 void closeAllocation()
          Closes this object.
(package private)  RelDataType createMockColumnType(FarragoTypeFactory typeFactory)
           
(package private)  RelDataType createMockRowType(FarragoTypeFactory typeFactory)
           
(package private)  String getForeignSchemaName()
           
(package private)  String getForeignTableName()
           
 FarragoMedNameDirectory getNameDirectory()
          Gets a FarragoMedNameDirectory corresponding to this server.
 Object getRuntimeSupport(Object param)
          Gets an object needed for runtime support.
(package private)  MedAbstractDataWrapper getWrapper()
           
(package private)  void initialize()
           
 FarragoMedColumnSet newColumnSet(String[] localName, Properties tableProps, FarragoTypeFactory typeFactory, RelDataType rowType, Map<String,Properties> columnPropMap)
          Creates an instance of a FarragoMedColumnSet corresponding to row data identified by properties rather than container name.
 void registerRules(RelOptPlanner planner)
          Gives this wrapper a chance to register any special optimization rules.
 
Methods inherited from class net.sf.farrago.namespace.impl.MedAbstractDataServer
getLoopbackDataSource, getProperties, getServerMofId, registerRelMetadataProviders, releaseResources, setLoopbackDataSource
 
Methods inherited from class net.sf.farrago.plugin.FarragoAbstractPluginBase
getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getLongProperty, getShortProperty, requireProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_SIMULATE_BAD

public static final String PROP_SIMULATE_BAD
See Also:
Constant Field Values

PROP_SCHEMA_NAME

public static final String PROP_SCHEMA_NAME
See Also:
Constant Field Values

PROP_TABLE_NAME

public static final String PROP_TABLE_NAME
See Also:
Constant Field Values

PROP_ROW_COUNT

public static final String PROP_ROW_COUNT
See Also:
Constant Field Values

PROP_ROW_COUNT_SQL

public static final String PROP_ROW_COUNT_SQL
See Also:
Constant Field Values

PROP_UDX_SPECIFIC_NAME

public static final String PROP_UDX_SPECIFIC_NAME
See Also:
Constant Field Values

PROP_EXECUTOR_IMPL

public static final String PROP_EXECUTOR_IMPL
See Also:
Constant Field Values

PROPVAL_JAVA

public static final String PROPVAL_JAVA
See Also:
Constant Field Values

PROPVAL_FENNEL

public static final String PROPVAL_FENNEL
See Also:
Constant Field Values

PROP_EXTRACT_COLUMNS

public static final String PROP_EXTRACT_COLUMNS
See Also:
Constant Field Values

DEFAULT_EXTRACT_COLUMNS

public static final boolean DEFAULT_EXTRACT_COLUMNS
See Also:
Constant Field Values

wrapper

private MedAbstractDataWrapper wrapper

extractColumns

protected boolean extractColumns
Constructor Detail

MedMockDataServer

MedMockDataServer(MedAbstractDataWrapper wrapper,
                  String serverMofId,
                  Properties props)
Method Detail

initialize

void initialize()
          throws SQLException
Throws:
SQLException

getNameDirectory

public FarragoMedNameDirectory getNameDirectory()
                                         throws SQLException
Description copied from interface: FarragoMedDataServer
Gets a FarragoMedNameDirectory corresponding to this server.

Specified by:
getNameDirectory in interface FarragoMedDataServer
Overrides:
getNameDirectory in class MedAbstractDataServer
Returns:
directory, or null if this server does not have the required metadata capability
Throws:
SQLException - if directory access is unsuccessful (but not if directory access is unsupported)

newColumnSet

public FarragoMedColumnSet newColumnSet(String[] localName,
                                        Properties tableProps,
                                        FarragoTypeFactory typeFactory,
                                        RelDataType rowType,
                                        Map<String,Properties> columnPropMap)
                                 throws SQLException
Description copied from interface: FarragoMedDataServer
Creates an instance of a FarragoMedColumnSet corresponding to row data identified by properties rather than container name. This supports the SQL/MED CREATE FOREIGN TABLE statement. As much validation as possible should be performed, including accessing representative data.

Parameters:
localName - the qualified name to assign to the column set within Farrago; this should NOT be used for finding the actual data, since it can be set arbitrarily by the caller; instead, it should be used to implement the RelOptTable.getQualifiedName() method, and can be useful for correlation during debugging
tableProps - properties to use for data location and access
typeFactory - FarragoTypeFactory to use for defining types
rowType - type to impose on the rows of this column set (including column names and types), or null to infer row type; if this is non-null, it must be saved for use by the getRowType() returned from FarragoMedColumnSet
columnPropMap - map from column name to column-specific Properties; this is optional and may only be specified when rowType is also specified (the field names in rowType are used as the keys for columnPropMap)
Returns:
new FarragoMedColumnSet
Throws:
SQLException - if data access is unsuccessful

checkNameMatch

private void checkNameMatch(String expectedName,
                            String actualName)

getRuntimeSupport

public Object getRuntimeSupport(Object param)
                         throws SQLException
Description copied from interface: FarragoMedDataServer
Gets an object needed for runtime support. Typically, this will be called from code generated by this server. The meaning of this is entirely dependent on the server implementation. If the returned object implements FarragoAllocation, its closeAllocation() method will be called automatically as soon as it is no longer needed.

Specified by:
getRuntimeSupport in interface FarragoMedDataServer
Overrides:
getRuntimeSupport in class MedAbstractDataServer
Parameters:
param - parameter supplied at runtime
Returns:
support object
Throws:
SQLException

registerRules

public void registerRules(RelOptPlanner planner)
Description copied from interface: FarragoMedDataServer
Gives this wrapper a chance to register any special optimization rules. This method may be called more than once, each time with a different planner instance.

Specified by:
registerRules in interface FarragoMedDataServer
Overrides:
registerRules in class MedAbstractDataServer
Parameters:
planner - the planner in which the rules should be registered

closeAllocation

public void closeAllocation()
Description copied from interface: ClosableAllocation
Closes this object.

Specified by:
closeAllocation in interface ClosableAllocation
Overrides:
closeAllocation in class MedAbstractDataServer

getForeignSchemaName

String getForeignSchemaName()

getForeignTableName

String getForeignTableName()

getWrapper

MedAbstractDataWrapper getWrapper()

createMockRowType

RelDataType createMockRowType(FarragoTypeFactory typeFactory)

createMockColumnType

RelDataType createMockColumnType(FarragoTypeFactory typeFactory)