com.foxsmart.csu.config
Class UnknownComponent

java.lang.Object
  extended by com.foxsmart.csu.config.CiscoRouterConfigParser
      extended by com.foxsmart.csu.config.CiscoRouterConfigComponent
          extended by com.foxsmart.csu.config.MultiLineConfigComponent
              extended by com.foxsmart.csu.config.UnknownComponent
All Implemented Interfaces:
MultiInstanceComponent, java.io.Serializable

public class UnknownComponent
extends MultiLineConfigComponent
implements MultiInstanceComponent

The UnknownComponent class represents a part of the router configuration which is not understood. Each unknown component is stored and retrieved as is - whether it is valid or not.

See Also:
Serialized Form

Field Summary
 
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
UnknownComponent()
          Constructs an unknown 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.
 boolean equalsComponentInstance(CiscoRouterConfigComponent component)
          Determines if this component and the passed in component are the same instance of component that can be compared from an IOS configuration standpoint.
 Commands generateIos()
          Returns the IOS configuration commands for this component.
 boolean requiresCommentSeparator()
          If a specific sub-class of UnknownComponent (not sure who would want this) wishes to have comment separators in between multiple instances of this component, it should override this method and return true.
 void validate()
          An unknown component is always valid.
 
Methods inherited from class com.foxsmart.csu.config.MultiLineConfigComponent
add, add, add, clear, contains, get, getLines, indexOf, isEmpty, lastIndexOf, remove, set, setLines, size, toArray
 
Methods inherited from class com.foxsmart.csu.config.CiscoRouterConfigComponent
addComponent, addComponent, checkComponentType, deleteOldConfigWhenUpdating, dumpComponents, generateChildrenUpdateConfiglet, generateCompositeIos, generateCompositeIos, generateDeleteIos, generateIos, generateIos, generateIos, generateMultiLineUpdateConfiglet, 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, 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
 

Constructor Detail

UnknownComponent

public UnknownComponent()
Constructs an unknown component object.

Method Detail

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
An unknown component is always valid.

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

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

equalsComponentInstance

public boolean equalsComponentInstance(CiscoRouterConfigComponent component)
                                throws InvalidConfigurationException
Determines if this component and the passed in component are the same instance of component that can be compared from an IOS configuration standpoint. The components are the same instance if their generated IOS strings are the same. Since UnknownComponent's don't get provisioned, this method probably won't get called.

Specified by:
equalsComponentInstance in interface MultiInstanceComponent
Parameters:
component - The component to compare to this component.
Returns:
True if the components are of the same instance or false if not.
Throws:
InvalidConfigurationException - if either this or the passed in component aren't valid.

requiresCommentSeparator

public boolean requiresCommentSeparator()
If a specific sub-class of UnknownComponent (not sure who would want this) wishes to have comment separators in between multiple instances of this component, it should override this method and return true.

Specified by:
requiresCommentSeparator in interface MultiInstanceComponent
Overrides:
requiresCommentSeparator in class CiscoRouterConfigComponent
Returns:
False always.
See Also:
CiscoRouterConfigComponent.requiresCommentSeparator()


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