net.sf.farrago.namespace.mdr
Class MedMdrNameDirectory

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.MedAbstractNameDirectory
              extended by net.sf.farrago.namespace.mdr.MedMdrNameDirectory
All Implemented Interfaces:
FarragoMedNameDirectory

 class MedMdrNameDirectory
extends MedAbstractNameDirectory

MedMdrNameDirectory implements the FarragoMedNameDirectory interface by mapping the package structure of an MDR repository.

Version:
$Id: //open/dev/farrago/src/net/sf/farrago/namespace/mdr/MedMdrNameDirectory.java#22 $
Author:
John V. Sichi

Field Summary
(package private)  RefPackage rootPackage
           
(package private)  MedMdrDataServer server
           
 
Fields inherited from class net.sf.farrago.plugin.FarragoAbstractPluginBase
BOOLEAN_CHOICES_DEFAULT_FALSE, BOOLEAN_CHOICES_DEFAULT_TRUE, EMPTY_DRIVER_PROPERTIES
 
Constructor Summary
MedMdrNameDirectory(MedMdrDataServer server, RefPackage rootPackage)
          Instantiates a MedMdrNameDirectory.
 
Method Summary
private  RelDataType computeRowType(FarragoTypeFactory typeFactory, RefClass refClass)
           
 FarragoMedColumnSet lookupColumnSet(FarragoTypeFactory typeFactory, String foreignName, String[] localName)
          Looks up a FarragoMedColumnSet by name.
(package private)  FarragoMedColumnSet lookupColumnSetAndImposeType(FarragoTypeFactory typeFactory, String[] foreignName, String[] localName, RelDataType rowType)
           
(package private)  RefBaseObject lookupRefBaseObject(String[] foreignName)
           
(package private)  RefClass lookupRefClass(String[] foreignName)
          Looks up a RefClass from its qualified name.
(package private)  RefPackage lookupRefPackage(String[] names, int prefix)
           
 FarragoMedNameDirectory lookupSubdirectory(String foreignName)
          Looks up an immediate subdirectory by name.
 
Methods inherited from class net.sf.farrago.namespace.impl.MedAbstractNameDirectory
newImportedColumnSet, queryMetadata
 
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

server

final MedMdrDataServer server

rootPackage

final RefPackage rootPackage
Constructor Detail

MedMdrNameDirectory

MedMdrNameDirectory(MedMdrDataServer server,
                    RefPackage rootPackage)
Instantiates a MedMdrNameDirectory.

Parameters:
server - MedMdrDataServer from which this directory was opened
rootPackage - root package from which to map names in repository; so, when a table name like x.y.z is looked up, rootPackage will be searched for subpackage x, which will be searched for subpackage y, which will be searched for class z
Method Detail

lookupRefPackage

RefPackage lookupRefPackage(String[] names,
                            int prefix)

lookupRefClass

RefClass lookupRefClass(String[] foreignName)
Looks up a RefClass from its qualified name.

Parameters:
foreignName - name of this class relative to this directory's root package

lookupRefBaseObject

RefBaseObject lookupRefBaseObject(String[] foreignName)

lookupColumnSet

public FarragoMedColumnSet lookupColumnSet(FarragoTypeFactory typeFactory,
                                           String foreignName,
                                           String[] localName)
                                    throws SQLException
Description copied from interface: FarragoMedNameDirectory
Looks up a FarragoMedColumnSet by name. This method supports Farrago's capability to reference a foreign table directly without having to create local metadata about it.

Parameters:
typeFactory - FarragoTypeFactory to use for defining types
foreignName - simple name of foreign ColumnSet to lookup as a direct child of this directory
localName - compound identifier by which FarragoMedColumnSet will be referenced locally
Returns:
FarragoMedColumnSet, or null if none found
Throws:
SQLException - if metadata access is unsuccessful

lookupColumnSetAndImposeType

FarragoMedColumnSet lookupColumnSetAndImposeType(FarragoTypeFactory typeFactory,
                                                 String[] foreignName,
                                                 String[] localName,
                                                 RelDataType rowType)
                                           throws SQLException
Throws:
SQLException

computeRowType

private RelDataType computeRowType(FarragoTypeFactory typeFactory,
                                   RefClass refClass)

lookupSubdirectory

public FarragoMedNameDirectory lookupSubdirectory(String foreignName)
                                           throws SQLException
Description copied from interface: FarragoMedNameDirectory
Looks up an immediate subdirectory by name.

Specified by:
lookupSubdirectory in interface FarragoMedNameDirectory
Overrides:
lookupSubdirectory in class MedAbstractNameDirectory
Parameters:
foreignName - identifier for subdirectory
Returns:
subdirectory, or null if none found
Throws:
SQLException - if metadata access is unsuccessful