com.foxsmart.csu.config.global
Class IpRouteComponent

java.lang.Object
  extended by com.foxsmart.csu.config.CiscoRouterConfigParser
      extended by com.foxsmart.csu.config.CiscoRouterConfigComponent
          extended by com.foxsmart.csu.config.global.IpRouteComponent
All Implemented Interfaces:
MultiLineComponent, java.io.Serializable

public class IpRouteComponent
extends CiscoRouterConfigComponent
implements MultiLineComponent

The IpRouteComponent class represents all the ip routes defined on the router.

See Also:
Serialized Form

Field Summary
static java.lang.String IP
           
static java.lang.String PROFILE
           
static java.lang.String ROUTE
           
 
Fields inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
commentComponent, componentMap, log, parentComponent
 
Fields inherited from class com.foxsmart.csu.config.CiscoRouterConfigParser
NO, tokenIndex
 
Constructor Summary
IpRouteComponent()
          Constructs an IP route component object.
 
Method Summary
 void addRoute(IpRouteEntry ipRouteEntry)
          Adds a route.
 java.util.List buildFromIos(java.util.List configLines)
          Parse and populate the specific CiscoRouterComponent object based on the passed in individual lines of the IOS configuration.
 void clearAllRoutes()
          Clears all of the routes.
 void clearRoutes(IpAddress destinationPrefix, IpAddress destinationPrefixMask)
          Clears the list of IpRouteEntry objects for the specified destination prefix and destination prefix mask.
 Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
          Generates the IOS configuration commands to delete this component.
 Commands generateIos()
          Returns the IOS configuration commands for this component.
protected  Commands generateMultiLineUpdateConfiglet(CiscoRouterConfigComponent origComponent)
          Generates the IOS commands that will handle the updating of a multi-line component.
protected  boolean getAreRoutesSame(java.util.List routeList, java.util.List origRouteList)
          Determines whether the routes from both lists are the same
protected  java.lang.String getDestinationKey(IpAddress destinationPrefix, IpAddress destinationPrefixMask)
          Returns a string that is used as the key into the route map.
protected  java.lang.String getDestinationKey(IpRouteEntry ipRouteEntry)
          Returns a string that is used as the key into the route map.
 java.util.List getInterfaceTypesAndNames(CiscoRouterConfig ciscoRouterConfig)
          Gets a list of interface type and names list (e.g.
 boolean getProfileFlag()
          Gets whether the IP routing table profile is enabled or not.
 IpRouteEntry getRoute(IpAddress destinationPrefix, IpAddress destinationPrefixMask)
          Returns the first IpRouteEntry object based on the specified destination prefix and destination prefix mask.
 java.util.List getRoutes()
          Returns a list of all IpRouteEntry objects that have been added.
 java.util.List getRoutes(IpAddress destinationPrefix, IpAddress destinationPrefixMask)
          Returns a list of IpRouteEntry objects that have been added based on the specified destination prefix and destination prefix mask.
protected  java.util.List getRoutesToDelete(java.util.List routeList, java.util.List interfaceTypeAndNamesList)
          Gets the routes to delete by filtering the route list to only contain routes that are associated with a valid interface that is still defined (i.e.
 java.util.List getSortedRoutes()
          Returns a sorted list of all the IpRouteEntry objects that have been added.
 boolean removeRoute(IpRouteEntry ipRouteEntry)
          Removes a previously added route.
 void setProfileFlag(boolean profileFlag)
          Sets whether the IP routing table profile is enabled or not.
 void validate()
          Validates this object to ensure it contains a valid IOS configuration.
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
addComponent, addComponent, checkComponentType, deleteOldConfigWhenUpdating, dumpComponents, generateChildrenUpdateConfiglet, generateCompositeIos, generateCompositeIos, generateIos, generateIos, generateIos, generateUpdateCompositeIos, generateUpdateIos, generateUpdateIos, getAllComponents, getCiscoRouterConfig, getComment, getComponentClassName, getComponentClassName, getComponentKeys, getComponents, getComponents, getDeferredDelete, getFirstComponent, getFirstComponent, getParentComponent, getTotalComponents, getTotalComponents, getUpdateConfiglet, instantiateComponent, instantiateComponent, isValid, removeAllComponents, removeAllComponents, removeAllComponents, removeComponent, removeComponent, removeComponent, requiresCommentSeparator, setComment, setParentComponent, validateChildren
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigParser
checkExists, checkLineComplete, checkNotEmpty, checkRange, checkTokenCount, checkTokenCount, checkTokenMatch, checkTokenMatch, decrementTokenIndex, generateCommands, getBigDecimalNumberFromString, getDoubleNumberFromString, getEnum, getHexadecimalNumberFromString, getIntegerNumberFromString, getIpAddressFromString, getLine, getLongNumberFromString, getMacAddressFromString, getNextOptionalToken, getNextToken, getToken, getTokenIndex, getTokens, getTotalIndentedLines, getTotalLines, incrementTokenIndex, invalidConfiguration, invalidTokenFound, isEmpty, moreIndentedLines, moreLines, moreTokens, removeLines, resetTokenIndex, setTokenIndex, tokensLeft
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

IP

public static final java.lang.String IP
See Also:
Constant Field Values

ROUTE

public static final java.lang.String ROUTE
See Also:
Constant Field Values

PROFILE

public static final java.lang.String PROFILE
See Also:
Constant Field Values
Constructor Detail

IpRouteComponent

public IpRouteComponent()
Constructs an IP route component object.

Method Detail

addRoute

public void addRoute(IpRouteEntry ipRouteEntry)
              throws InvalidConfigurationException
Adds a route.

Parameters:
ipRouteEntry - The route to add.
Throws:
InvalidConfigurationException - if the IP route entry doesn't have a valid destination set.

getRoutes

public java.util.List getRoutes()
Returns a list of all IpRouteEntry objects that have been added.

Returns:
The list of all routes.

getSortedRoutes

public java.util.List getSortedRoutes()
Returns a sorted list of all the IpRouteEntry objects that have been added.

Returns:
the sorted list of all routes.

getRoutes

public java.util.List getRoutes(IpAddress destinationPrefix,
                                IpAddress destinationPrefixMask)
Returns a list of IpRouteEntry objects that have been added based on the specified destination prefix and destination prefix mask.

Parameters:
destinationPrefix - the destination prefix.
destinationPrefixMask - the destination prefix mask.
Returns:
The list of routes.

getRoute

public IpRouteEntry getRoute(IpAddress destinationPrefix,
                             IpAddress destinationPrefixMask)
Returns the first IpRouteEntry object based on the specified destination prefix and destination prefix mask. If no routes exist, null is returned. If more than 1 route exists, only the first one is returned. This is provided as a convenience method if the caller knows that only 1 route is present and doesn't want to have to get the first element of the list returned by the getRoutes method.

Parameters:
destinationPrefix - the destination prefix.
destinationPrefixMask - the destination prefix mask.
Returns:
The first route.

clearRoutes

public void clearRoutes(IpAddress destinationPrefix,
                        IpAddress destinationPrefixMask)
Clears the list of IpRouteEntry objects for the specified destination prefix and destination prefix mask.

Parameters:
destinationPrefix - the destination prefix.
destinationPrefixMask - the destination prefix mask.

clearAllRoutes

public void clearAllRoutes()
Clears all of the routes.


removeRoute

public boolean removeRoute(IpRouteEntry ipRouteEntry)
                    throws InvalidConfigurationException
Removes a previously added route.

Parameters:
ipRouteEntry - The route to remove.
Returns:
True if the route was removed or false if not.
Throws:
InvalidConfigurationException - if the IP route entry doesn't have a valid destination set.
See Also:
List.remove(Object).

getDestinationKey

protected java.lang.String getDestinationKey(IpRouteEntry ipRouteEntry)
Returns a string that is used as the key into the route map.

Parameters:
ipRouteEntry - the IP route entry.
Returns:
the destination key.
See Also:
getDestinationKey(com.foxsmart.ic.net.IpAddress,com.foxsmart.ic.net.IpAddress).

getDestinationKey

protected java.lang.String getDestinationKey(IpAddress destinationPrefix,
                                             IpAddress destinationPrefixMask)
Returns a string that is used as the key into the route map. The string is the destination prefix string concatinated with a period concatinated with the destination prefix mask string (e.g. 1.1.1.1.255.255.255.255).

Parameters:
destinationPrefix - the destination prefix.
destinationPrefixMask - the destination prefix mask.
Returns:
the destination key.

getProfileFlag

public boolean getProfileFlag()
Gets whether the IP routing table profile is enabled or not.

Returns:
If true, the profile is enabled. If false, the profile is not enabled.

setProfileFlag

public void setProfileFlag(boolean profileFlag)
Sets whether the IP routing table profile is enabled or not.

Parameters:
profileFlag - If true, the profile is enabled. If false, the profile is not enabled.

buildFromIos

public java.util.List buildFromIos(java.util.List configLines)
                            throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Parse and populate the specific CiscoRouterComponent object based on the passed in individual lines of the IOS configuration. The passed in configuration lines should represent the first line in the configuration that applies to the specific component. The component should use all lines needed by its specific part of the configuration and return a List with the remaining lines that are not part of the component's configuration.

Specified by:
buildFromIos in class CiscoRouterConfigComponent
Parameters:
configLines - The list of IOS configuration lines.
Returns:
The rest of the lines that were not parsed by the component.
Throws:
InvalidConfigurationException - if the IOS configuration can not be parsed for any reason.
See Also:
CiscoRouterConfigComponent

validate

public void validate()
              throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Validates this object to ensure it contains a valid IOS configuration.

Specified by:
validate in class CiscoRouterConfigComponent
Throws:
InvalidConfigurationException - if the configuration is invalid.
See Also:
CiscoRouterConfigComponent

generateIos

public Commands generateIos()
                     throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Returns the IOS configuration commands for this component.

Specified by:
generateIos in class CiscoRouterConfigComponent
Returns:
The IOS configuration string as a list of Command objects. To generate a configlet from the list of Command objects, use Command.getConfiglet().
Throws:
InvalidConfigurationException - if the IOS configuration is invalid and the IOS string can not be generated. The validate() method is used to determine if the configuration is valid.
See Also:
CiscoRouterConfigComponent

generateDeleteIos

public Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
                           throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Generates the IOS configuration commands to delete this component. This is the default implementation that generates a "no" statement followed by the generateIos() string for non CompositeComponents or generateHeaderIos() for CompositeComponents. Specific components may choose to override this method if this implementation is incorrect. The "no" keyword is placed where the first character of the command is located. For example, if the IOS command is " length 255", then the returned command will be " no length 255" (and not "no length 255").

Note that this implementation will call the getDeferredDelete method on the component and set the "deferred flag" on the returned Commands with its returned value.

Specified by:
generateDeleteIos in interface MultiLineComponent
Overrides:
generateDeleteIos in class CiscoRouterConfigComponent
Parameters:
updatedCiscoRouterConfig - the updated Cisco router configuration.
Returns:
The generated IOS string to deleted the component.
Throws:
InvalidConfigurationException - if the IOS configuration is invalid and the IOS string can not be generated. The validate() method is used to determine if the configuration is valid.
See Also:
MultiLineComponent

generateMultiLineUpdateConfiglet

protected Commands generateMultiLineUpdateConfiglet(CiscoRouterConfigComponent origComponent)
                                             throws InvalidConfigurationException
Description copied from class: CiscoRouterConfigComponent
Generates the IOS commands that will handle the updating of a multi-line component. This implementation will first delete the original configuration by calling generateDeleteIos() and then generate the new configuration by calling generateIos(). The multi-line component should ensure the generateDeleteIos() is implemented properly since the default "no" + generateIos() will most likely not work for a multi-line configuration. Note that if the component is an IndelibleComponent or if the deleteOldConfigWhenUpdating method returns true, only the new IOS configuration will be generated with generateUpdateIos().

Overrides:
generateMultiLineUpdateConfiglet in class CiscoRouterConfigComponent
Parameters:
origComponent - The original component.
Returns:
The IOS statements that can be used to update a router configuration.
Throws:
InvalidConfigurationException - if either this or the passed in configuration are invalid.
See Also:
CiscoRouterConfigComponent

getRoutesToDelete

protected java.util.List getRoutesToDelete(java.util.List routeList,
                                           java.util.List interfaceTypeAndNamesList)
Gets the routes to delete by filtering the route list to only contain routes that are associated with a valid interface that is still defined (i.e. it is present in the interfaceTypeAndNamesList).

Parameters:
routeList - The route list to filter
interfaceTypeAndNamesList - the list of interface type and names.
Returns:
The filtered list.

getInterfaceTypesAndNames

public java.util.List getInterfaceTypesAndNames(CiscoRouterConfig ciscoRouterConfig)
Gets a list of interface type and names list (e.g. Serial0.101) for all interfaces for this router configuration.

Parameters:
ciscoRouterConfig - the router configuration to get the interface types and names from.
Returns:
the list of interface type and names.

getAreRoutesSame

protected boolean getAreRoutesSame(java.util.List routeList,
                                   java.util.List origRouteList)
Determines whether the routes from both lists are the same

Parameters:
routeList - the route list.
origRouteList - the original route list.
Returns:
True if the routes are the same or false if not.


Copyright © 2005-2008 Fox Smart, Inc. All Rights Reserved.