net.xoetrope.xui.registry
Class XRegistrationFactory

java.lang.Object
  extended by net.xoetrope.xui.registry.XRegistrationFactory
Direct Known Subclasses:
XTransferHandlerFactory

public abstract class XRegistrationFactory
extends java.lang.Object

A factory for transfer handlers

Copyright (c) Xoetrope Ltd., 1998-2006. See license.txt for more details


Field Summary
protected static int changeCounter
          A counter for changes to the registry.
static int CLASS_MATCH
          Match transfer handlers based on the target component class name
protected static java.util.Hashtable configFiles
          The config files used to build the set of component adapters.
protected  java.util.ArrayList[] handlerRegisters
          The register of transfer handler adapters for each component type
static int INSPECTOR_MATCH
          Match transfer handlers based on the results of a user defined comparison
static int INSTANCE_MATCH
          Match transfer handlers based on inheritance from a particular class
static int INTERFACE_MATCH
          Match transfer handlers based on implementation of a particular interface
protected  int localChangeCounter
          Used for tracking changes to the registry spec.
 
Constructor Summary
protected XRegistrationFactory(XProject project, java.lang.String factoryName, java.lang.String basicConfigFile, java.lang.String startupKey, java.lang.String defaultProjectConfigFile)
           
 
Method Summary
static void addConfigFile(java.lang.String key, java.lang.Object resource, boolean overwrite)
          Add a configuration file.
protected  void addRegistrationTypes(XmlElement regRoot, int mode)
          Read the component registry.
 void checkRegistration()
          Check that all the registered components are loaded
protected  void doRead(java.lang.String key, java.lang.Object configFile)
          Read the component registry.
protected  void doRead(java.lang.String key, java.lang.String configFile)
          Read the component registry.
protected  void doRead(java.lang.String key, java.net.URL configFileURL)
          Read the component registry.
abstract  java.lang.String getFactoryName()
          Get the name of this factory
 java.lang.Object getObject(java.lang.Object comp, java.util.Hashtable instanceConfig)
          Creates a new instance of TransferHandler for a particular type
protected  void read()
          Read the component registry.
 void read(java.lang.String key, java.io.Reader reader)
          Read the component registry.
protected  void read(java.lang.String key, java.lang.String configFile)
          Read the component registry.
 void updateConfig()
          Signal that the configuration has been updated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_MATCH

public static final int CLASS_MATCH
Match transfer handlers based on the target component class name

See Also:
Constant Field Values

INTERFACE_MATCH

public static final int INTERFACE_MATCH
Match transfer handlers based on implementation of a particular interface

See Also:
Constant Field Values

INSTANCE_MATCH

public static final int INSTANCE_MATCH
Match transfer handlers based on inheritance from a particular class

See Also:
Constant Field Values

INSPECTOR_MATCH

public static final int INSPECTOR_MATCH
Match transfer handlers based on the results of a user defined comparison

See Also:
Constant Field Values

handlerRegisters

protected java.util.ArrayList[] handlerRegisters
The register of transfer handler adapters for each component type


configFiles

protected static java.util.Hashtable configFiles
The config files used to build the set of component adapters. Stores the file names


changeCounter

protected static int changeCounter
A counter for changes to the registry. Used to indicate if the registry needs to be rebuilt


localChangeCounter

protected int localChangeCounter
Used for tracking changes to the registry spec.

Constructor Detail

XRegistrationFactory

protected XRegistrationFactory(XProject project,
                               java.lang.String factoryName,
                               java.lang.String basicConfigFile,
                               java.lang.String startupKey,
                               java.lang.String defaultProjectConfigFile)
Method Detail

getFactoryName

public abstract java.lang.String getFactoryName()
Get the name of this factory

Returns:
the factory name e.g. XRegisteredDataBindingFactory

getObject

public java.lang.Object getObject(java.lang.Object comp,
                                  java.util.Hashtable instanceConfig)
Creates a new instance of TransferHandler for a particular type

Parameters:
comp - the source component
instanceConfig - the attributes of the instance
Returns:
the new transfer handler

addConfigFile

public static void addConfigFile(java.lang.String key,
                                 java.lang.Object resource,
                                 boolean overwrite)
Add a configuration file. If the files have already been loaded then the new file will be loaded

Parameters:
key - the name by which the configuration file is referenced
resource - the name/path of the configuration file or the URL for the file
overwrite - true to overwrite and existing entry matching the specified key

updateConfig

public void updateConfig()
Signal that the configuration has been updated.


read

protected void read()
Read the component registry. The format is described in the components.xsd schema.


read

protected void read(java.lang.String key,
                    java.lang.String configFile)
Read the component registry. The format is described in the components.xsd schema. The config file is also registered.

Parameters:
configFile - the name of the configuration file
key - the name by which the configuration file is referenced

doRead

protected void doRead(java.lang.String key,
                      java.lang.Object configFile)
Read the component registry. The format is described in the components.xsd schema.

Parameters:
configFile - the name of the configuration file
key - the name by which the configuration file is referenced

doRead

protected void doRead(java.lang.String key,
                      java.lang.String configFile)
Read the component registry. The format is described in the components.xsd schema.

Parameters:
configFile - the name of the configuration file
key - the name by which the configuration file is referenced

doRead

protected void doRead(java.lang.String key,
                      java.net.URL configFileURL)
Read the component registry. The format is described in the components.xsd schema.

Parameters:
configFileURL - the URL of the configuration file
key - the name by which the configuration file is referenced

read

public void read(java.lang.String key,
                 java.io.Reader reader)
Read the component registry. The format is described in the components.xsd schema.

Parameters:
key - the name by which the configuration file is referenced
reader - the reader from which to read the file

addRegistrationTypes

protected void addRegistrationTypes(XmlElement regRoot,
                                    int mode)
Read the component registry. The format is described in the components.xsd schema.

Parameters:
regRoot - the name by which the configuration file is referenced
mode - the match mode for the new transfer handler types

checkRegistration

public void checkRegistration()
Check that all the registered components are loaded