# Interface ProcessingFilter

All Known Implementing Classes:
  `AddColumnFilter, AddSkyCoordsFilter, AssertFilter, BadValueFilter, BasicFilter, CacheFilter, CheckFilter, ClearParameterFilter, CollapseColsFilter, ColumnCalculatorFilter, ColumnMetadataFilter, ConstFilter, DeleteColumnFilter, EveryFilter, ExplodeAllFilter, ExplodeColsFilter, FixNamesFilter, GroupFilter, HeadFilter, HealpixMetadataFilter, KeepColumnFilter, MetadataFilter, NameFilter, PixSampleFilter, ProgressFilter, RandomFilter, RandomViewFilter, RangeFilter, RepeatFilter, ReplaceColumnFilter, ReplaceValueFilter, ResolverFilter, SchlegelFilter, SelectFilter, SequentialViewFilter, SetParameterFilter, ShuffleFilter, SortFilter, SortHeadFilter, StatsFilter, TailFilter, TransposeFilter, UniqueFilter`

public interface ProcessingFilter
Defines a type of filter-like processing which can be done on a StarTable. An object in this class serves as a factory for `ProcessingStep` instances, based on a list of command-line arguments.

Since:
  3 Mar 2005
Author:
  Mark Taylor (Starlink)

## Method Summary

Modifier and Type
Method
Description
`ProcessingStep`
`createStep(Iterator<String> argIt)`
Creates a new ProcessingStep based on a sequence of command-line arguments.
`String`
`getDescription()`
Description for this filter.
`String`
`getUsage()`
Usage message for this filter.

## Method Details

### getUsage

String getUsage()
Usage message for this filter. This should contain any arguments which apply to this item; the name itself should not be included. May contain newline characters to break up a long line.

Returns:
  usage string

### getDescription

String getDescription()
Description for this filter. This is currently inserted into the user document, so should be in XML format.

Returns:
  textual description of this filter

### createStep

ProcessingStep createStep(Iterator<String> argIt) throws ArgException
Creates a new ProcessingStep based on a sequence of command-line arguments. The `argIt` argument is an iterator over the command-line arguments positioned just before any arguments intended for this filter. If legal, any that can be comprehended by this filter should be read (iterated over) and removed, and a `ProcessingStep` should accordingly be returned. In the case of a successful return, it is essential that no arguments other than the ones intended for this filter are read from the iterator.

If the argument list is badly-formed as far as this filter is concerned, an `ArgException` should be thrown.

Parameters:
  `argIt` - iterator over command-line arguments positioned at the first one
Throws:
  `ArgException`