net.dpml.cli.option
Class OptionImpl

java.lang.Object
  extended bynet.dpml.cli.option.OptionImpl
All Implemented Interfaces:
Option
Direct Known Subclasses:
ArgumentImpl, GroupImpl, ParentImpl, PropertyOption

public abstract class OptionImpl
extends Object
implements Option

A base implementation of Option providing limited ground work for further Option implementations.

Version:
1.0.0
Author:
Digital Product Meta Library

Constructor Summary
OptionImpl(int id, boolean required)
          Creates an OptionImpl with the specified id
 
Method Summary
 boolean canProcess(WriteableCommandLine commandLine, ListIterator arguments)
          Indicates whether this Option will be able to process the particular argument.
protected  void checkPrefixes(Set prefixes)
          Check prefixes.
 void defaults(WriteableCommandLine commandLine)
          Adds defaults to a CommandLine.
 boolean equals(Object thatObj)
          Evaluate this instance against the supplied instance for equality.
 Option findOption(String trigger)
          Recursively searches for an option with the supplied trigger.
 int getId()
          Returns the id of the option.
 int hashCode()
          Return the hashcode value for this instance.
 boolean isRequired()
          Indicates whether this option is required to be present.
 String toString()
          Returns a string representation of the option.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.dpml.cli.Option
appendUsage, canProcess, getDescription, getPreferredName, getPrefixes, getTriggers, helpLines, process, validate
 

Constructor Detail

OptionImpl

public OptionImpl(int id,
                  boolean required)
Creates an OptionImpl with the specified id

Parameters:
id - the unique id of this Option
required - true iff this Option must be present
Method Detail

canProcess

public boolean canProcess(WriteableCommandLine commandLine,
                          ListIterator arguments)
Indicates whether this Option will be able to process the particular argument. The ListIterator must be restored to the initial state before returning the boolean.

Specified by:
canProcess in interface Option
Parameters:
commandLine - the CommandLine object to store defaults in
arguments - the ListIterator over String arguments
Returns:
true if the argument can be processed by this Option
See Also:
Option.canProcess(WriteableCommandLine,String)

toString

public String toString()
Returns a string representation of the option.

Returns:
the string value

getId

public int getId()
Returns the id of the option. This can be used in a loop and switch construct: for(Option o : cmd.getOptions()){ switch(o.getId()){ case POTENTIAL_OPTION: ... } } The returned value is not guarenteed to be unique.

Specified by:
getId in interface Option
Returns:
the id of the option.

equals

public boolean equals(Object thatObj)
Evaluate this instance against the supplied instance for equality.

Parameters:
thatObj - the other object
Returns:
true if the supplied instance is equal to this instance

hashCode

public int hashCode()
Return the hashcode value for this instance.

Returns:
the hash value

findOption

public Option findOption(String trigger)
Recursively searches for an option with the supplied trigger.

Specified by:
findOption in interface Option
Parameters:
trigger - the trigger to search for.
Returns:
the matching option or null.

isRequired

public boolean isRequired()
Indicates whether this option is required to be present.

Specified by:
isRequired in interface Option
Returns:
true if the CommandLine will be invalid without this Option

defaults

public void defaults(WriteableCommandLine commandLine)
Adds defaults to a CommandLine. Any defaults for this option are applied as well as the defaults for any contained options

Specified by:
defaults in interface Option
Parameters:
commandLine - the CommandLine object to store defaults in

checkPrefixes

protected void checkPrefixes(Set prefixes)
Check prefixes.

Parameters:
prefixes - the prefixes set