Class FixNamesFilter

java.lang.Object
uk.ac.starlink.ttools.filter.BasicFilter
uk.ac.starlink.ttools.filter.FixNamesFilter
All Implemented Interfaces:
ProcessingFilter, ProcessingStep

public class FixNamesFilter extends BasicFilter implements ProcessingStep
Filter to normalise syntax of column and parameter names so they are legal java identifiers.
Since:
18 Dec 2009
Author:
Mark Taylor
  • Constructor Details

    • FixNamesFilter

      public FixNamesFilter()
      Constructor.
  • Method Details

    • getDescriptionLines

      public String[] getDescriptionLines()
      Specified by:
      getDescriptionLines in class BasicFilter
    • createStep

      public ProcessingStep createStep(Iterator<String> argIt)
      Description copied from interface: ProcessingFilter
      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.

      Specified by:
      createStep in interface ProcessingFilter
      Parameters:
      argIt - iterator over command-line arguments positioned at the first one
    • wrap

      public uk.ac.starlink.table.StarTable wrap(uk.ac.starlink.table.StarTable base)
      Description copied from interface: ProcessingStep
      Performs a table filtering step.
      Specified by:
      wrap in interface ProcessingStep
      Parameters:
      base - input table
      Returns:
      output table
    • fixName

      public String fixName(String name)
      Performs the name unmunging.
      Parameters:
      name - input name
      Returns:
      string like name which is a valid java identifier
    • uniqueName

      public String uniqueName(String name, Set<String> lcNames)
      Returns a name based on the supplied one, but which is guaranteed different (case-insensitively) from all the names in a supplied set. If the supplied name is already distinct from the members of the set, it will be returned unchanged.
      Parameters:
      name - base name
      lcNames - set of lower-case values from which the output must differ case-insensitively; not to be modified
      Returns:
      distinct string based on name