net.sf.farrago.namespace.mdr
Class MedMdrDataServer
java.lang.Object
net.sf.farrago.plugin.FarragoAbstractPluginBase
net.sf.farrago.namespace.impl.MedAbstractBase
net.sf.farrago.namespace.impl.MedAbstractDataServer
net.sf.farrago.namespace.mdr.MedMdrDataServer
- All Implemented Interfaces:
- FarragoMedDataServer, FarragoAllocation, ClosableAllocation
public class MedMdrDataServer
- extends MedAbstractDataServer
MedMdrDataServer implements the FarragoMedDataServer
interface for
MDR data.
- Version:
- $Id: //open/dev/farrago/src/net/sf/farrago/namespace/mdr/MedMdrDataServer.java#18 $
- Author:
- John V. Sichi
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PROP_STORAGE_FACTORY_CLASS
public static final String PROP_STORAGE_FACTORY_CLASS
- See Also:
- Constant Field Values
PROP_EXTENT_NAME
public static final String PROP_EXTENT_NAME
- See Also:
- Constant Field Values
PROP_CLASS_NAME
public static final String PROP_CLASS_NAME
- See Also:
- Constant Field Values
PROP_ROOT_PACKAGE_NAME
public static final String PROP_ROOT_PACKAGE_NAME
- See Also:
- Constant Field Values
PROP_SCHEMA_NAME
public static final String PROP_SCHEMA_NAME
- See Also:
- Constant Field Values
repos
FarragoRepos repos
repository
MDRepository repository
extentPackage
RefPackage extentPackage
rootPackage
RefPackage rootPackage
foreignRepository
boolean foreignRepository
schemaName
String schemaName
MedMdrDataServer
MedMdrDataServer(String serverMofId,
Properties props,
FarragoRepos repos)
getRootPackage
public RefPackage getRootPackage()
- Returns:
- the root package
getExtentPackage
public RefPackage getExtentPackage()
- Returns:
- the extent package
getMdrRepository
public EnkiMDRepository getMdrRepository()
- Returns:
- the MDR repository instance
initialize
void initialize()
setRootPackage
private void setRootPackage(String rootPackageName)
initAsForeignServer
private void initAsForeignServer(String storageFactoryClassName,
String extentName,
Properties storageProps)
initAsCatalogServer
private void initAsCatalogServer()
getNonStorageProperty
private String getNonStorageProperty(Properties props,
String propName)
getMdrNameDirectory
private MedMdrNameDirectory getMdrNameDirectory()
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)
getExtentNameDirectory
MedMdrNameDirectory getExtentNameDirectory()
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 debuggingtableProps
- properties to use for data location and accesstypeFactory
- FarragoTypeFactory to use for defining typesrowType
- 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
FarragoMedColumnSetcolumnPropMap
- 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
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
generateRuntimeSupportCall
Expression generateRuntimeSupportCall(Expression arg)