com.foxsmart.csu.config.global.interfacepkg
Class ServicePolicyComponent

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

public class ServicePolicyComponent
extends CiscoRouterConfigComponent
implements MultiLineComponent

The ServicePolicyComponent class defines a QoS Service Policy on an interface.

See Also:
Serialized Form

Field Summary
static java.lang.String INPUT
           
static java.lang.String OUTPUT
           
static java.lang.String SERVICE_POLICY
           
 
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
ServicePolicyComponent()
          Constructs a Service Policy component object.
 
Method Summary
 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.
 Commands generateDeleteIos(CiscoRouterConfig updatedCiscoRouterConfig)
          Generates the IOS configuration commands to delete this component.
protected  java.lang.String generateDeleteIosString(java.lang.String inputOrOutput, java.lang.String policyMapName)
          Generates the delete IOS string for the specified input or output with the specified policy map name.
 Commands generateIos()
          Returns the IOS configuration commands for this component.
protected  java.lang.String generateIosString(java.lang.String intputOrOutput, java.lang.String policyMapName)
          Generates the IOS string for the specified input or output string with the specified policy map name.
protected  Commands generateMultiLineUpdateConfiglet(CiscoRouterConfigComponent origComponent)
          Generates the IOS commands that will handle the updating of a multi-line component.
 java.lang.String getInputPolicyMapName()
          Gets the input policy map name.
 java.lang.String getOutputPolicyMapName()
          Gets the output policy map name.
 void setInputPolicyMapName(java.lang.String inputPolicyMapName)
          Sets the input policy map name.
 void setOutputPolicyMapName(java.lang.String outputPolicyMapName)
          Sets the output policy map name.
 void validate()
          Validates this object to ensure it contains a valid IOS configuration.
protected  void validatePolicyMapName(java.lang.String policyMapName)
          Verifies that a policy map with the specified name is configured on the router if the specified name is not empty.
 
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

SERVICE_POLICY

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

INPUT

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

OUTPUT

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

ServicePolicyComponent

public ServicePolicyComponent()
Constructs a Service Policy component object.

Method Detail

getInputPolicyMapName

public java.lang.String getInputPolicyMapName()
Gets the input policy map name.

Returns:
the input policy map name.

setInputPolicyMapName

public void setInputPolicyMapName(java.lang.String inputPolicyMapName)
Sets the input policy map name.

Parameters:
inputPolicyMapName - the input policy map name.

getOutputPolicyMapName

public java.lang.String getOutputPolicyMapName()
Gets the output policy map name.

Returns:
the output policy map name.

setOutputPolicyMapName

public void setOutputPolicyMapName(java.lang.String outputPolicyMapName)
Sets the output policy map name.

Parameters:
outputPolicyMapName - the output policy map name.

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

validatePolicyMapName

protected void validatePolicyMapName(java.lang.String policyMapName)
                              throws InvalidConfigurationException
Verifies that a policy map with the specified name is configured on the router if the specified name is not empty.

Parameters:
policyMapName - the policy map name to verify.
Throws:
InvalidConfigurationException - if the policy map with the specified name is not configured on the router.

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

generateIosString

protected java.lang.String generateIosString(java.lang.String intputOrOutput,
                                             java.lang.String policyMapName)
Generates the IOS string for the specified input or output string with the specified policy map name.

Parameters:
intputOrOutput - input or output string.
policyMapName - the policy map name.
Returns:
the IOS string.

generateDeleteIosString

protected java.lang.String generateDeleteIosString(java.lang.String inputOrOutput,
                                                   java.lang.String policyMapName)
Generates the delete IOS string for the specified input or output with the specified policy map name.

Parameters:
inputOrOutput - input or output string.
policyMapName - the policy map name.
Returns:
the delete IOS string.

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


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