uk.ac.starlink.ttools.plot2.task
Class PlotterParameter

java.lang.Object
  extended by uk.ac.starlink.task.Parameter<Plotter>
      extended by uk.ac.starlink.ttools.plot2.task.PlotterParameter
All Implemented Interfaces:
ExtraParameter

public class PlotterParameter
extends Parameter<Plotter>
implements ExtraParameter

Parameter that specifies the Plotter to be used for a plot layer.

For general plotters, the string value of the parameter is used to identify a Plotter known by this parameter in a straightforward way. Plotters that subclass ShapePlotter.ShapeModePlotter are treated specially. In this case the string value of the parameter gives the ShapeForm, and the ShapeMode is given by an auxiliary parameter (shading). This is somewhat confusing from the point of view of how this parameter relates to Plotter values, but it makes it more straightforward for users (and in particular parameter documentation), since it keeps the number of possible string values of this parameter to a manageable size.

However, if this parameter is used programmatically, you can assign a Plotter instance to it.

Most of the complication here is generating the auto-documentation. It's not 100% obvious that code belongs here, but I can't think of a better place to put it.

Since:
3 Sep 2014
Author:
Mark Taylor

Field Summary
static String SHADING_PREFIX
           
 
Constructor Summary
PlotterParameter(String prefix, String suffix, PlotContext context)
          Constructor.
 
Method Summary
 String getExtraUsage(TableEnvironment env)
          Returns an extended usage message.
 String objectToString(Environment env, Plotter plotter)
          Takes a typed value of this parameter and formats it as a string which may be used for presentation to the user.
 Plotter stringToObject(Environment env, String sval)
          Takes a non-blank string, as supplied by the execution environment, and turns it into a typed value for this parameter.
 
Methods inherited from class uk.ac.starlink.task.Parameter
clearValue, getDescription, getName, getPosition, getPreferExplicit, getPrompt, getStringDefault, getUsage, getValueClass, isNullPermitted, objectValue, setDescription, setDescription, setName, setNullPermitted, setPosition, setPreferExplicit, setPrompt, setStringDefault, setUsage, setValue, setValueFromObject, setValueFromString, stringValue, toArray, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

SHADING_PREFIX

public static final String SHADING_PREFIX
See Also:
Constant Field Values
Constructor Detail

PlotterParameter

public PlotterParameter(String prefix,
                        String suffix,
                        PlotContext context)
Constructor.

Parameters:
prefix - non-suffix part of this parameter's name
suffix - layer-specific part of this parameter's name
context - plot context
Method Detail

stringToObject

public Plotter stringToObject(Environment env,
                              String sval)
                       throws TaskException
Description copied from class: Parameter
Takes a non-blank string, as supplied by the execution environment, and turns it into a typed value for this parameter. This method also performs validation, so if the string value is unacceptable in any way, a ParameterValueException should be thrown.

It is an error to supply a null or empty string value.

If this method fails (throws a ParameterValueException) and if allowClassnameValue is set, then a subsequent attempt will be made to interpret the stringVal as the classname of a suitable class with a no-arg constructor.

Specified by:
stringToObject in class Parameter<Plotter>
Parameters:
env - execution environment; in most cases this is not required but for some purposes environment-specific characteristics may influence the result
sval - non-null, non-empty string value
Returns:
typed value
Throws:
TaskException

objectToString

public String objectToString(Environment env,
                             Plotter plotter)
                      throws TaskException
Description copied from class: Parameter
Takes a typed value of this parameter and formats it as a string which may be used for presentation to the user. Ideally, round-tripping between this method and stringToObject should be possible, but that is not in general required/guaranteed.

The default implementation uses the value's toString method, but subclasses can override this for smarter behaviour.

Overrides:
objectToString in class Parameter<Plotter>
Parameters:
env - execution environment
plotter - typed parameter value
Returns:
string value for presentation
Throws:
TaskException

getExtraUsage

public String getExtraUsage(TableEnvironment env)
Description copied from interface: ExtraParameter
Returns an extended usage message. This should not repeat the content of the normal usage message. It should be preformatted, that is it should contain newlines to keep the line length down to less than 80 characters.

Specified by:
getExtraUsage in interface ExtraParameter
Parameters:
env - execution envrionment
Returns:
extended usage message


Copyright © 2014 Central Laboratory of the Research Councils. All Rights Reserved.