Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TransformFactory Class Reference

#include <TransformFactory.h>

Inheritance diagram for TransformFactory:

Inheritance graph
[legend]
Collaboration diagram for TransformFactory:

Collaboration graph
[legend]
List of all members.

Detailed Description

The singleton Factory class for creating objects whose class is derived from TransformBase.

Author:
Paul F. Kunz <Paul_Kunz@slac.stanford.edu>

Oded Wurman <owurman@stanford.edu>

Definition at line 26 of file TransformFactory.h.

Public Member Functions

void add (TransformBase *)
 Adds a prototype object to the list of prototypes.
TransformBasecreate (const std::string &name)
 Creates a new object from a prototype named name.
TransformBasecreateTransform (const std::string &name)
 Creates a returns a new TransformBase object with given name.
TransformBasecreateXYZ (const std::string &x_trans, const std::string &y_trans, const std::string &z_trans)
 Creates an XYZTransform object from independent X, Y and Z transforms designated by the name.
bool exists (const std::string &name) const
 Returns true if prototype with name name exists in the factory, otherwise returns false.
const std::vector< std::string > & names ()
 Returns the list of available prototype names.
TransformBaseprototype (const std::string &name) const
 Returns a pointer to a prototype with name name.

Static Public Member Functions

static TransformFactoryinstance ()
 Returns a pointer to the singleton instance.

Protected Member Functions

 Factory ()
 The default constructor.

Protected Attributes

std::vector< std::stringm_names
 The list of available types by names.
std::map< std::string, TransformBase * > m_types
 A list of available types.

Private Member Functions

TransformBasecreateXY (const std::string &x_trans, const std::string &y_trans, const std::string &z_trans)
 Creates an XYTransform object from independent X, Y and Z transforms designated by the names.
void initialize ()
 Initialize the factory with a set of default Transforms.
 TransformFactory ()
 A default constructor for prevent creation except by itself.
 TransformFactory (const TransformFactory &)
 A private copy constructor to prevent copying.

Static Private Attributes

static TransformFactorys_instance = 0
 A pointer to the singleton object.


Constructor & Destructor Documentation

TransformFactory::TransformFactory const TransformFactory  )  [private]
 

A private copy constructor to prevent copying.

TransformFactory::TransformFactory  )  [private]
 

A default constructor for prevent creation except by itself.

Definition at line 42 of file TransformFactory.cxx.

Referenced by instance().


Member Function Documentation

void Factory< TransformBase >::add TransformBase  )  [inherited]
 

Adds a prototype object to the list of prototypes.

Referenced by initialize().

TransformBase * Factory< TransformBase >::create const std::string name  )  [inherited]
 

Creates a new object from a prototype named name.

If found, returns a new object by invoking the clone() member function of the prototype. If not found, throws a FactoryException object with the name not found.

TransformBase * TransformFactory::createTransform const std::string name  ) 
 

Creates a returns a new TransformBase object with given name.

If the name contains a non-alphanumeric character, then an XYTransform is cnstructed by parsing the two alphanumeric parts of the name as names of UnaryTransform names.

Note that this functions name differs from the other Factory function nams becasue I (pfkeb) couldn't figure out how to override the function and yet be able to call the base class function.

Attention:
Do not try to use the given name first and if it fails catch the exception and parse the name for space. Doing so will break the Java version based on jdk-1.3.1 because of apparent incompatiblities in exception handling between the version of gcc used to compile the Java VM and gcc 2.95.3.

Definition at line 70 of file TransformFactory.cxx.

References TransformBase::clone(), createXY(), and Factory< TransformBase >::prototype().

Referenced by CompositePlotter::CompositePlotter(), TransformXML::createObject(), DisplayController::setLog(), and DisplayController::setTransform().

TransformBase * TransformFactory::createXY const std::string x_trans,
const std::string y_trans,
const std::string z_trans
[private]
 

Creates an XYTransform object from independent X, Y and Z transforms designated by the names.

Definition at line 100 of file TransformFactory.cxx.

References UnaryTransform::clone(), and Factory< TransformBase >::prototype().

Referenced by createTransform().

TransformBase * TransformFactory::createXYZ const std::string x_trans,
const std::string y_trans,
const std::string z_trans
 

Creates an XYZTransform object from independent X, Y and Z transforms designated by the name.

Definition at line 134 of file TransformFactory.cxx.

References UnaryTransform::clone(), and Factory< TransformBase >::prototype().

bool Factory< TransformBase >::exists const std::string name  )  const [inherited]
 

Returns true if prototype with name name exists in the factory, otherwise returns false.

Factory< TransformBase >::Factory  )  [protected, inherited]
 

The default constructor.

Since this constructor is protected, only derived classes of Factory can be created.

void TransformFactory::initialize  )  [private]
 

Initialize the factory with a set of default Transforms.

Definition at line 55 of file TransformFactory.cxx.

References Factory< TransformBase >::add().

Referenced by instance().

TransformFactory * TransformFactory::instance  )  [static]
 

Returns a pointer to the singleton instance.

Definition at line 46 of file TransformFactory.cxx.

References initialize(), s_instance, and TransformFactory().

Referenced by CompositePlotter::CompositePlotter(), TransformXML::createObject(), DisplayController::setLog(), and DisplayController::setTransform().

const std::vector< std::string >& Factory< TransformBase >::names  )  [inherited]
 

Returns the list of available prototype names.

TransformBase * Factory< TransformBase >::prototype const std::string name  )  const [inherited]
 

Returns a pointer to a prototype with name name.

If a prototype with name doesn't exit, throws a FactoryException object with the name not found.

Referenced by createTransform(), createXY(), and createXYZ().


Member Data Documentation

std::vector< std::string > Factory< TransformBase >::m_names [protected, inherited]
 

The list of available types by names.

This list should be identical to the list of m_types keys. It is updated when the member function names is called.

Definition at line 56 of file Factory.h.

std::map< std::string, TransformBase * > Factory< TransformBase >::m_types [protected, inherited]
 

A list of available types.

Definition at line 51 of file Factory.h.

TransformFactory * TransformFactory::s_instance = 0 [static, private]
 

A pointer to the singleton object.

Definition at line 40 of file TransformFactory.cxx.

Referenced by instance().


The documentation for this class was generated from the following files:
Generated for HippoDraw-1.14.8.5 by doxygen 1.4.3