planet.generic.commonapi.factory
Class GenericFactory

java.lang.Object
  extended byplanet.generic.commonapi.factory.GenericFactory

public class GenericFactory
extends java.lang.Object

It is an abstraction class that follows the Factory Method pattern. It offers different static methods to obtain differents instances of factories and their related objects.

From anywhere of this simulator one can use these methods to obtain the required instance, using the current configuration attributes (using loaded properties from planet.util.Properties).

Author:
Jordi Pujol 07-jul-2005

Constructor Summary
GenericFactory()
           
 
Method Summary
static Application buildApplication()
           
static Application buildApplication(java.lang.String app)
           
static ApplicationFactory buildApplicationFactory()
          Builds a new instance of ApplicationFactory following the current configuration.
static Application buildApplicationWithName(java.lang.String name)
           
static Application buildApplicationWithName(java.lang.String app, java.lang.String name)
           
static BehavioursFactory buildBehavioursFactory()
          Builds an instance of the current BehavioursFactory implementation.
static BehavioursFilter buildBehavioursFilter()
           
static BehavioursInvoker buildBehavioursInvoker()
           
static BehavioursPattern buildBehavioursPattern()
           
static BehavioursPool buildBehavioursPool()
           
static BehavioursRoleSelector buildBehavioursRoleSelector()
           
static ResultsConstraint buildConstraint(java.lang.String resultsName)
           
static java.util.Iterator buildDistributedIds(int desiredNetworkSize)
           
static ResultsEdge buildEdge(java.lang.String resultsName, Id source, Id target, boolean directed, java.lang.String fill)
           
static EndPoint buildEndPoint(Application app, Node node)
           
static EndPointFactory buildEndPointFactory()
          Builds a new instance of EndPointFactory following the current configuration.
static ResultsGenerator buildGenerator(java.lang.String resultsName)
           
static Id buildId()
           
static Id buildId(java.math.BigInteger bigNumber)
           
static Id buildId(byte[] material)
           
static Id buildId(double material)
           
static Id buildId(int material)
           
static Id buildId(int[] material)
           
static Id buildId(java.lang.String string)
           
static Id buildId(java.lang.String material, java.lang.String algorithm)
           
static IdFactory buildIdFactory()
          Builds a new instance of IdFactory.
static Id buildKey(java.lang.String string)
           
static Network buildNetwork()
           
static Network buildNetwork(int size)
           
static Network buildNetwork(int size, NodeFactory nodeFactory)
           
static Network buildNetwork(int size, NodeFactory nodeFactory, java.lang.String topology)
           
static Network buildNetwork(int size, java.lang.String topology)
           
static NetworkFactory buildNetworkFactory()
          Builds a new instance of NetworkFactory.
static Node buildNode()
           
static Node buildNode(Id id)
           
static NodeFactory buildNodeFactory()
          Builds a new instance of NodeFactory following the current configuration.
static NodeHandle buildNodeHandle(Id nodeId, boolean alive)
           
static NodeHandleFactory buildNodeHandleFactory()
          Builds a new instance of NodeHandleFactory following the current configuration.
static Id buildRandomId()
           
static ResultsFactory buildResultsFactory(java.lang.String resultName)
          Builds an instance of the current BehavioursFactory implementation.
static RouteMessagePool buildRouteMessagePool()
          Builds an instance of the current RouteMessagePool implementation.
static void freeMessage(RouteMessage msg)
           
static java.lang.String generateKey()
          Generate a unique key, based on a simple int.
static void generateResults(java.lang.String resultsName, Network network, java.lang.String out, ResultsConstraint constraint, boolean wholeNetworkLayout)
           
static int getBuiltRouteMessages()
           
static ApplicationFactory getDefaultApplicationFactory()
          Returns the ApplicationFactory that is used internally to invoke the application factory methods.
static BehavioursFactory getDefaultBehavioursFactory()
          Return the BehavioursFactory that is used internally to invoke the behaviours factory methods.
static BehavioursPool getDefaultBehavioursPool()
          Return the BehavioursPool that is used internally to invoke the behaviours pool methods.
static EndPointFactory getDefaultEndPointFactory()
          Return the EndPointFactory that is used internally to invoke the endpoint factory methods.
static IdFactory getDefaultIdFactory()
          Returns the IdFactory that is used internally to invoke the IdFactory methods.
static NetworkFactory getDefaultNetworkFactory()
          Returns the NetworkFactory that is used internally to invoke the NetworkFactory methods.
static NodeFactory getDefaultNodeFactory()
          Returns the NodeFactory that is used internally to invoke the node factory methods.
static NodeHandleFactory getDefaultNodeHandleFactory()
          Returns the NodeHandleFactory that is used internally to invoke the nodehandle factory methods.
static RouteMessagePool getDefaultRouteMessagePool()
          Returns the RouteMessagePool that is used internally to invoke the pool methods.
static int getFreeRouteMessages()
           
static RouteMessage getMessage(java.lang.String key, NodeHandle from, NodeHandle to, int type, int mode)
           
static RouteMessage getMessage(java.lang.String key, NodeHandle from, NodeHandle to, NodeHandle nextHop, Message msg, int type, int mode, java.lang.String appId)
           
static int getReusedRouteMessages()
           
static void init()
          Initialize the GenericFactory to load the default properties file.
static java.lang.Object newInstance(java.lang.Class classReference)
          Builds an instance of the specified class.
 void onMessage(RouteMessage msg, Node node)
           
static void postinit()
          Make the post initializations to leave the GenericFactory complete.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GenericFactory

public GenericFactory()
Method Detail

newInstance

public static java.lang.Object newInstance(java.lang.Class classReference)
                                    throws InitializationException
Builds an instance of the specified class. Its internal behaviour is the following:
    return classReference.newInstance();
 

Parameters:
classReference - The class reference to use to build the new instance.
Returns:
A new instance of the specified class.
Throws:
InitializationException - if any error occurs during the initialization process, or when the classReference has a null value.

init

public static void init()
                 throws InitializationException
Initialize the GenericFactory to load the default properties file. This way permits return the different factories with the same base properties: the factories obtained with the methods withot parameters returns the same class of instances.

Throws:
InitializationException - if occurs any problem during initialization.

postinit

public static void postinit()
                     throws InitializationException
Make the post initializations to leave the GenericFactory complete.

Throws:
InitializationException - if some error occurs during the initialization.

buildNetworkFactory

public static NetworkFactory buildNetworkFactory()
                                          throws InitializationException
Builds a new instance of NetworkFactory.

Returns:
A new instance of the NetworkFactory default implementation.
Throws:
InitializationException - if occurs some problem with the factory initialization.

buildNetwork

public static Network buildNetwork()
                            throws InitializationException
Throws:
InitializationException
See Also:
NetworkFactory.buildNetwork()

buildNetwork

public static Network buildNetwork(int size)
                            throws InitializationException
Throws:
InitializationException
See Also:
NetworkFactory.buildNetwork(int)

buildNetwork

public static Network buildNetwork(int size,
                                   NodeFactory nodeFactory)
                            throws InitializationException
Throws:
InitializationException
See Also:
NetworkFactory.buildNetwork(int, planet.commonapi.factory.NodeFactory)

buildNetwork

public static Network buildNetwork(int size,
                                   java.lang.String topology)
                            throws InitializationException
Throws:
InitializationException
See Also:
NetworkFactory.buildNetwork(int, java.lang.String)

buildNetwork

public static Network buildNetwork(int size,
                                   NodeFactory nodeFactory,
                                   java.lang.String topology)
                            throws InitializationException
Throws:
InitializationException
See Also:
NetworkFactory.buildNetwork(int, planet.commonapi.factory.NodeFactory, java.lang.String)

buildIdFactory

public static IdFactory buildIdFactory()
                                throws InitializationException
Builds a new instance of IdFactory.

Returns:
A new instance of the default IdFactory implementation.
Throws:
InitializationException - if occurs some problem with the factory initialization.

buildId

public static Id buildId()
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId()

buildId

public static Id buildId(int material)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(int)

buildId

public static Id buildId(double material)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(double)

buildId

public static Id buildId(byte[] material)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(byte[])

buildId

public static Id buildId(int[] material)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(int[])

buildKey

public static Id buildKey(java.lang.String string)
                   throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildKey(java.lang.String)

buildId

public static Id buildId(java.lang.String string)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(java.lang.String)

buildId

public static Id buildId(java.math.BigInteger bigNumber)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(java.math.BigInteger)

buildId

public static Id buildId(java.lang.String material,
                         java.lang.String algorithm)
                  throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildId(java.lang.String,java.lang.String), Java Cryptography Architecture API Specification & Reference

buildRandomId

public static Id buildRandomId()
                        throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildRandomId()

buildDistributedIds

public static java.util.Iterator buildDistributedIds(int desiredNetworkSize)
                                              throws InitializationException
Throws:
InitializationException
See Also:
IdFactory.buildDistributedIds(int)

buildNodeHandleFactory

public static NodeHandleFactory buildNodeHandleFactory()
                                                throws InitializationException
Builds a new instance of NodeHandleFactory following the current configuration.

Returns:
A new instance of NodeHandleFactory
Throws:
InitializationException - if some error occurs during the initialization process.

buildNodeHandle

public static NodeHandle buildNodeHandle(Id nodeId,
                                         boolean alive)
                                  throws InitializationException
Throws:
InitializationException
See Also:
NodeHandleFactory.buildNodeHandle(planet.commonapi.Id,boolean)

buildNodeFactory

public static NodeFactory buildNodeFactory()
                                    throws InitializationException
Builds a new instance of NodeFactory following the current configuration.

Returns:
A new instance of NodeFactory.
Throws:
InitializationException - if some error occurs during the initialization process.

buildNode

public static Node buildNode()
                      throws InitializationException
Throws:
InitializationException
See Also:
NodeFactory.buildNode()

buildNode

public static Node buildNode(Id id)
                      throws InitializationException
Throws:
InitializationException
See Also:
NodeFactory.buildNode(planet.commonapi.Id)

buildRouteMessagePool

public static RouteMessagePool buildRouteMessagePool()
                                              throws InitializationException
Builds an instance of the current RouteMessagePool implementation.

Returns:
An instance of the current RouteMessagePool implementation.
Throws:
InitializationException - if any errors occurs during the initialization process.

freeMessage

public static void freeMessage(RouteMessage msg)
See Also:
RouteMessagePool.freeMessage(planet.commonapi.RouteMessage)

getMessage

public static RouteMessage getMessage(java.lang.String key,
                                      NodeHandle from,
                                      NodeHandle to,
                                      int type,
                                      int mode)
                               throws InitializationException
Throws:
InitializationException
See Also:
RouteMessagePool.getMessage(java.lang.String, planet.commonapi.NodeHandle, planet.commonapi.NodeHandle, int, int)

getMessage

public static RouteMessage getMessage(java.lang.String key,
                                      NodeHandle from,
                                      NodeHandle to,
                                      NodeHandle nextHop,
                                      Message msg,
                                      int type,
                                      int mode,
                                      java.lang.String appId)
                               throws InitializationException
Throws:
InitializationException
See Also:
RouteMessagePool.getMessage(String, NodeHandle, NodeHandle, NodeHandle, int, int, Message, String)

getBuiltRouteMessages

public static int getBuiltRouteMessages()
See Also:
RouteMessagePool.getBuiltRouteMessages()

getFreeRouteMessages

public static int getFreeRouteMessages()
See Also:
RouteMessagePool.getFreeRouteMessages()

getReusedRouteMessages

public static int getReusedRouteMessages()
See Also:
RouteMessagePool.getReusedRouteMessages()

buildApplicationFactory

public static ApplicationFactory buildApplicationFactory()
                                                  throws InitializationException
Builds a new instance of ApplicationFactory following the current configuration.

Returns:
A new instance of ApplicationFactory.
Throws:
InitializationException - if some error occurs during the initialization process.

buildApplication

public static Application buildApplication()
                                    throws InitializationException
Throws:
InitializationException
See Also:
ApplicationFactory.buildApplication()

buildApplication

public static Application buildApplication(java.lang.String app)
                                    throws InitializationException
Throws:
InitializationException
See Also:
ApplicationFactory.buildApplication(java.lang.String)

buildApplicationWithName

public static Application buildApplicationWithName(java.lang.String name)
                                            throws InitializationException
Throws:
InitializationException
See Also:
ApplicationFactory.buildApplicationWithName(java.lang.String)

buildApplicationWithName

public static Application buildApplicationWithName(java.lang.String app,
                                                   java.lang.String name)
                                            throws InitializationException
Throws:
InitializationException
See Also:
ApplicationFactory.buildApplicationWithName(java.lang.String, java.lang.String)

buildEndPointFactory

public static EndPointFactory buildEndPointFactory()
                                            throws InitializationException
Builds a new instance of EndPointFactory following the current configuration.

Returns:
A new instance of EndPointFactory.
Throws:
InitializationException - if some error occurs during the initialization process.

buildEndPoint

public static EndPoint buildEndPoint(Application app,
                                     Node node)
                              throws InitializationException
Throws:
InitializationException
See Also:
EndPointFactory.buildEndPoint(planet.commonapi.Application,planet.commonapi.Node)

buildBehavioursFactory

public static BehavioursFactory buildBehavioursFactory()
                                                throws InitializationException
Builds an instance of the current BehavioursFactory implementation.

Returns:
An instance of the current BehavioursFactory implementation.
Throws:
InitializationException - when an error occurs during the initialization or when this factory method is nonapplicable, because the current overlay doesn't use behaviours.

buildBehavioursFilter

public static BehavioursFilter buildBehavioursFilter()
                                              throws InitializationException
Throws:
InitializationException
See Also:
BehavioursFactory.buildBehavioursFilter()

buildBehavioursInvoker

public static BehavioursInvoker buildBehavioursInvoker()
                                                throws InitializationException
Throws:
InitializationException
See Also:
BehavioursFactory.buildBehavioursInvoker()

buildBehavioursPattern

public static BehavioursPattern buildBehavioursPattern()
                                                throws InitializationException
Throws:
InitializationException
See Also:
BehavioursFactory.buildBehavioursPattern()

buildBehavioursPool

public static BehavioursPool buildBehavioursPool()
                                          throws InitializationException
Throws:
InitializationException
See Also:
BehavioursFactory.buildBehavioursPool()

buildBehavioursRoleSelector

public static BehavioursRoleSelector buildBehavioursRoleSelector()
                                                          throws InitializationException
Throws:
InitializationException
See Also:
BehavioursFactory.buildBehavioursRoleSelector()

onMessage

public void onMessage(RouteMessage msg,
                      Node node)
               throws NoSuchBehaviourException,
                      NoBehaviourDispatchedException,
                      InitializationException
Throws:
NoSuchBehaviourException
NoBehaviourDispatchedException
InitializationException
See Also:
BehavioursPool.onMessage(planet.commonapi.RouteMessage, planet.commonapi.Node)()

buildResultsFactory

public static ResultsFactory buildResultsFactory(java.lang.String resultName)
                                          throws InitializationException
Builds an instance of the current BehavioursFactory implementation.

Returns:
An instance of the current BehavioursFactory implementation.
Throws:
InitializationException - when an error occurs during the initialization or when this factory method is nonapplicable, because the no results are activated, or when the resultsName doesn't appears in the current configuration.

generateResults

public static void generateResults(java.lang.String resultsName,
                                   Network network,
                                   java.lang.String out,
                                   ResultsConstraint constraint,
                                   boolean wholeNetworkLayout)
                            throws InitializationException
Parameters:
resultsName - Results type name to use.
Throws:
InitializationException - when an error occurs during the initialization or when this factory method is nonapplicable, because the no results are activated, or when the resultsName doesn't appears in the current configuration.
See Also:
ResultsGenerator.generateResults(planet.commonapi.Network, java.lang.String, planet.commonapi.results.ResultsConstraint, boolean)

buildEdge

public static ResultsEdge buildEdge(java.lang.String resultsName,
                                    Id source,
                                    Id target,
                                    boolean directed,
                                    java.lang.String fill)
                             throws InitializationException
Parameters:
resultsName - Results type name to use.
Throws:
InitializationException - when an error occurs during the initialization or when this factory method is nonapplicable, because the no results are activated, or when the resultsName doesn't appears in the current configuration.
See Also:
ResultsFactory.buildEdge(planet.commonapi.Id, planet.commonapi.Id, boolean, java.lang.String)

buildGenerator

public static ResultsGenerator buildGenerator(java.lang.String resultsName)
                                       throws InitializationException
Parameters:
resultsName - Results type name to use.
Throws:
InitializationException - when an error occurs during the initialization or when this factory method is nonapplicable, because the no results are activated, or when the resultsName doesn't appears in the current configuration.
See Also:
ResultsFactory.buildGenerator()

buildConstraint

public static ResultsConstraint buildConstraint(java.lang.String resultsName)
                                         throws InitializationException
Parameters:
resultsName - Results type name to use.
Throws:
InitializationException - when an error occurs during the initialization or when this factory method is nonapplicable, because the no results are activated, or when the resultsName doesn't appears in the current configuration.
See Also:
ResultsFactory.buildConstraint()

generateKey

public static java.lang.String generateKey()
Generate a unique key, based on a simple int. Based on the context of the simulator, its implementation ensures that the returned key is unique at the time that it is generated. This key is used to identify a unique RouteMessage.

Returns:
An unique key for a RouteMessage to be send.

getDefaultNetworkFactory

public static NetworkFactory getDefaultNetworkFactory()
                                               throws InitializationException
Returns the NetworkFactory that is used internally to invoke the NetworkFactory methods.

Returns:
The NetworkFactory that is used internally to invoke the current NetworkFactory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultIdFactory

public static IdFactory getDefaultIdFactory()
                                     throws InitializationException
Returns the IdFactory that is used internally to invoke the IdFactory methods.

Returns:
The IdFactory that is used internally to invoke the IdFactory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultNodeHandleFactory

public static NodeHandleFactory getDefaultNodeHandleFactory()
                                                     throws InitializationException
Returns the NodeHandleFactory that is used internally to invoke the nodehandle factory methods.

Returns:
The NodeHandleFactory that is used internally to invoke the nodehandle factory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultNodeFactory

public static NodeFactory getDefaultNodeFactory()
                                         throws InitializationException
Returns the NodeFactory that is used internally to invoke the node factory methods.

Returns:
The NodeFactory that is used internally to invoke the node factory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultApplicationFactory

public static ApplicationFactory getDefaultApplicationFactory()
                                                       throws InitializationException
Returns the ApplicationFactory that is used internally to invoke the application factory methods.

Returns:
The ApplicationFactory that is used internally to invoke the application factory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultEndPointFactory

public static EndPointFactory getDefaultEndPointFactory()
                                                 throws InitializationException
Return the EndPointFactory that is used internally to invoke the endpoint factory methods.

Returns:
The EndPointFactory that is used internally to invoke the endpoint factory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultBehavioursFactory

public static BehavioursFactory getDefaultBehavioursFactory()
                                                     throws InitializationException
Return the BehavioursFactory that is used internally to invoke the behaviours factory methods.

Returns:
The BehavioursFactory that is used internally to invoke the behaviours factory methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultBehavioursPool

public static BehavioursPool getDefaultBehavioursPool()
                                               throws InitializationException
Return the BehavioursPool that is used internally to invoke the behaviours pool methods.

Returns:
The BehavioursPool that is used internally to invoke the behaviours pool methods.
Throws:
InitializationException - if some error occurs during the retrieving.

getDefaultRouteMessagePool

public static RouteMessagePool getDefaultRouteMessagePool()
                                                   throws InitializationException
Returns the RouteMessagePool that is used internally to invoke the pool methods.

Returns:
The RouteMessagePool that is used internally to invoke the pool methods.
Throws:
InitializationException - if some error occurs during the retrieving.