be.ac.ulg.montefiore.run.totem.domain.model
Interface DomainValidator

All Known Implementing Classes:
DomainValidatorImpl

public interface DomainValidator

A DomainValidator can check and force some characteristics on a Domain

Creation date: 12-Jan-2005 17:51:08

Author:
Fabian Skivee (skivee@run.montefiore.ulg.ac.be)

Method Summary
 void forceConnected()
          Removes nodes and links that are not in the connected set of maximum size so that the graph is connected.
 void forceDuplexConnected()
          Checks that all the nodes of the topology have at least an outlink and an inlink.
 void forceIGPInfo()
          Adds the IGP information if not present.
 void forceLoopFree()
          This method removes all the loops present in the topology.
 void forceNoMultiGraph()
          Remove multiple links.
 java.util.List<java.util.List<Path>> getEqualCostMultiPath()
          Returns a list containing lists of paths.
 java.util.List<java.util.List<Path>> getEqualCostMultiPath(java.lang.String algo)
          Returns a list containing lists of paths.
 boolean isConnected()
          Checks if the graph is connected.
 boolean isDualConnected()
          Check if there exist at least two link coming into and going out of each node.
 boolean isDuplexConnected()
          Checks that all the nodes of the topology have at least an outlink and an inlink.
 boolean isEqualCostMultiPath()
          Check if there exists equal cost multi path in the topology
 boolean isIGPInfo()
          Verify if an IGP information section is present
 boolean isLoopFree()
          This method return true if the domain contains NO loop links.
 boolean isMultiGraph()
          Check if multiple links exists
 

Method Detail

isIGPInfo

boolean isIGPInfo()
Verify if an IGP information section is present

Returns:
true if the section is present and false otherwise

isConnected

boolean isConnected()
                    throws NodeNotFoundException
Checks if the graph is connected.

Returns:
true if the graph is connected and false if not.
Throws:
NodeNotFoundException

isLoopFree

boolean isLoopFree()
                   throws NodeNotFoundException
This method return true if the domain contains NO loop links.

Throws:
NodeNotFoundException

isDuplexConnected

boolean isDuplexConnected()
                          throws NodeNotFoundException,
                                 LinkNotFoundException
Checks that all the nodes of the topology have at least an outlink and an inlink. If it's not the case, it will add a link that is the "inverse" of an existing link. This method throws an IllegalArgumentException if the topology isn't connected.

Throws:
NodeNotFoundException
LinkNotFoundException

isDualConnected

boolean isDualConnected()
                        throws NodeNotFoundException
Check if there exist at least two link coming into and going out of each node.

Returns:
true if there exist at least two link coming into and going out of each node and false otherwise
Throws:
NodeNotFoundException

isMultiGraph

boolean isMultiGraph()
                     throws NodeNotFoundException
Check if multiple links exists

Returns:
true if multiple links exists and false otherwise
Throws:
NodeNotFoundException

isEqualCostMultiPath

boolean isEqualCostMultiPath()
                             throws NoRouteToHostException,
                                    RoutingException
Check if there exists equal cost multi path in the topology

Returns:
true if there is equal cost multi path and false otherwise
Throws:
NoRouteToHostException
RoutingException

getEqualCostMultiPath

java.util.List<java.util.List<Path>> getEqualCostMultiPath()
                                                           throws NoRouteToHostException,
                                                                  RoutingException
Returns a list containing lists of paths. The inner list contains all equal cost paths from some source to some destination. Routing is done to thanks to the CSPF algorithm.

Returns:
Throws:
NoRouteToHostException
RoutingException

getEqualCostMultiPath

java.util.List<java.util.List<Path>> getEqualCostMultiPath(java.lang.String algo)
                                                           throws NoRouteToHostException,
                                                                  RoutingException,
                                                                  NoSuchAlgorithmException
Returns a list containing lists of paths. The inner list contains all equal cost paths from some source to some destination. Routing is done to thanks to the specified algorithm.

Returns:
Throws:
NoRouteToHostException
RoutingException
NoSuchAlgorithmException - If the given algorithm cannot be found.

forceIGPInfo

void forceIGPInfo()
Adds the IGP information if not present.


forceConnected

void forceConnected()
                    throws NodeNotFoundException,
                           LinkNotFoundException
Removes nodes and links that are not in the connected set of maximum size so that the graph is connected.

Throws:
NodeNotFoundException
LinkNotFoundException

forceLoopFree

void forceLoopFree()
                   throws NodeNotFoundException,
                          LinkNotFoundException
This method removes all the loops present in the topology. A loop is a link with the source node that is the same as the destination node.

Throws:
NodeNotFoundException
LinkNotFoundException

forceDuplexConnected

void forceDuplexConnected()
                          throws NodeNotFoundException,
                                 LinkNotFoundException,
                                 LinkAlreadyExistException
Checks that all the nodes of the topology have at least an outlink and an inlink. If it's not the case, it will add a link that is the "inverse" of an existing link. This method throws an IllegalArgumentException if the topology isn't connected.

Throws:
NodeNotFoundException
LinkNotFoundException
LinkAlreadyExistException

forceNoMultiGraph

void forceNoMultiGraph()
Remove multiple links. If the metric of the multiple links are equals, we merge the capacity of the two links.



Copyright © 2004-2007 Research Unit in Networking, All Rights Reserved.