+" \n\nValid values : Description\n\n"
+ "US : Migrate to US legal paper format.\n"
+ "Normal : Migrate to the normal A4 paper format.");
parameters.add(parameterBuilder.build());
paths.add(new MigrationPath(inputFormat, outputFormat, parameters));
inputFormat = new URI("info:pronom/x-fmt/406");
paths.add(new MigrationPath(inputFormat, outputFormat, parameters));
inputFormat = new URI("info:pronom/x-fmt/407");
paths.add(new MigrationPath(inputFormat, outputFormat, parameters));
inputFormat = new URI("info:pronom/x-fmt/408");
paths.add(new MigrationPath(inputFormat, outputFormat, parameters));
// Construct a path for migration from lowercase to uppercase.
inputFormat = new URI("planets:fmt/ext/lowercase");
outputFormat = new URI("planets:fmt/ext/uppercase");
parameters = new ArrayList<Parameter>();
parameterBuilder = new Parameter.Builder("param1", null);
parameterBuilder.description("\n \n"
+ " \n"
+ " Parameters for 'cat'\n"
+ " \n"
+ " -A, --show-all\n"
+ " equivalent to -vET\n"
+ " \n"
+ " -b, --number-nonblank\n"
+ " number nonempty output lines\n"
+ " \n"
+ " -e equivalent to -vE\n"
+ " \n"
+ " -E, --show-ends\n"
+ " display $ at end of each line\n"
+ " \n"
+ " -n, --number\n"
+ " number all output lines\n"
+ " \n"
+ " -s, --squeeze-blank\n"
+ " suppress repeated empty output lines\n"
+ " \n"
+ " -t equivalent to -vT\n"
+ " \n"
+ " -T, --show-tabs\n"
+ " display TAB characters as ^I\n"
+ " \n"
+ " -v, --show-nonprinting\n"
+ " use ^ and M- notation, except for"
+ " LFD and TAB\n ");
parameters.add(parameterBuilder.build());
parameterBuilder = new Parameter.Builder("param2", null);
parameterBuilder
.description("\n \n"+
" \n"
+ " Command line parameters for the 'tr' command.\n"
+ " \n"
+ " -c, -C, --complement\n"
+ " first complement SET1\n"
+ " \n"
+ " -d, --delete\n"
+ " delete characters in SET1, do not translate\n"
+ " \n"
+ " -s, --squeeze-repeats\n"
+ " replace each input sequence of a repeated character that is\n"
+ " listed in SET1 with a single occurrence of that character\n"
+ " \n"
+ " -t, --truncate-set1\n"
+ " first truncate SET1 to length of SET2\n"
+ " \n"
+ " SETs are specified as strings of characters. Most represent them‐\n"
+ " selves. Interpreted sequences are:\n"
+ " \n"
+ " \\NNN character with octal value NNN (1 to 3 octal digits)\n"
+ " \n"
+ " \\\\ backslash\n"
+ " \n"
+ " \\a audible BEL\n"
+ " \n"
+ " \\b backspace\n"
+ " \n"
+ " \\f form feed\n"
+ " \n"
+ " \\n new line\n"
+ " \n"
+ " \\r return\n"
+ " \n"
+ " \\t horizontal tab\n"
+ " \n"
+ " \\v vertical tab\n"
+ " CHAR1-CHAR2\n"
+ " all characters from CHAR1 to CHAR2 in ascending order\n"
+ " \n"
+ " [CHAR*]\n"
+ " in SET2, copies of CHAR until length of SET1\n"
+ " \n"
+ " [CHAR*REPEAT]\n"
+ " REPEAT copies of CHAR, REPEAT octal if starting with 0\n"
+ " \n"
+ " [:alnum:]\n"
+ " all letters and digits\n"
+ " \n"
+ " [:alpha:]\n"
+ " all letters\n"
+ " \n"
+ " [:blank:]\n"
+ " all horizontal whitespace\n"
+ " \n"
+ " [:cntrl:]\n"
+ " all control characters\n"
+ " \n"
+ " [:digit:]\n"
+ " all digits\n"
+ " \n"
+ " [:graph:]\n"
+ " all printable characters, not including space\n"
+ " \n"
+ " [:lower:]\n"
+ " all lower case letters\n"
+ " \n"
+ " [:print:]\n"
+ " all printable characters, including space\n"
+ " \n"
+ " [:punct:]\n"
+ " all punctuation characters\n"
+ " \n"
+ " [:space:]\n"
+ " all horizontal or vertical whitespace\n"
+ " \n"
+ " [:upper:]\n"
+ " all upper case letters\n"
+ " \n"
+ " [:xdigit:]\n"
+ " all hexadecimal digits\n"
+ " \n"
+ " [=CHAR=]\n"
+ " all characters which are equivalent to CHAR\n"
+ " \n"
+ " Translation occurs if -d is not given and both SET1 and SET2 appear.\n"
+ " -t may be used only when translating. SET2 is extended to length of\n"
+ " SET1 by repeating its last character as necessary. Excess characters\n"
+ " of SET2 are ignored. Only [:lower:] and [:upper:] are guaranteed to\n"
+ " expand in ascending order; used in SET2 while translating, they may\n"
+ " only be used in pairs to specify case conversion. -s uses SET1 if not\n"
+ " translating nor deleting; else squeezing uses SET2 and occurs after\n"
+ " translation or deletion.\n"
+ " ");
parameters.add(parameterBuilder.build());
parameterBuilder = new Parameter.Builder("mode", "complete");
parameterBuilder
.description("\n \n \n"
+ " Valid options:\n"
+ " \n"
+ " 'complete' : Converts from lowercase to uppercase.\n"
+ " 'AC-DC' : Converts As to Ds, thus, AC-DC becomes DC-AC.\n"
+ " 'extra' : Converts from lowercase to uppercase and adds\n"
+ " a line number to each line.\n"
+ " \n"
+ " Defaults to 'complete'.\n"
+ " \n\nValid values : Description\n\n"
+ "complete : Uppercase all text.\n"
+ "extra : Uppercase all text and add line numbers.\n"
+ " \n"
+ "AC-DC : Swaps As with Ds. Thus changing AC-DC to DC-AC\n"
+ " ");
parameters.add(parameterBuilder.build());
parameterBuilder = new Parameter.Builder("quality", null);
parameterBuilder
.description("\n \n \n"
+ " Quality presets for the test tool.\n"
+ " \n"
+ " Valid options:\n"
+ " \n"
+ " 'good' : Converts from lowercase to uppercase.\n"
+ " 'better' : Converts As to Ds, thus, AC-DC becomes DC-AC.\n"
+ " 'best' : Converts from lowercase to uppercase and adds\n"
+ " a line number to each line.\n"
+ " \n"
+ " Defaults to 'good'.\n"
+ " \n" + " \n\n"
+ "Valid values : Description\n\n"
+ "better : AC-DC to DC-AC\n"
+ "best : Uppercase all and add line numbers.\n"
+ "good : Uppercase all.");
parameters.add(parameterBuilder.build());
paths.add(new MigrationPath(inputFormat, outputFormat, parameters));
// Construct a path for migration from lowercase to uppercase.
inputFormat = new URI("planets:fmt/ext/foo");
outputFormat = new URI("planets:fmt/ext/bar");
parameters = new ArrayList<Parameter>();
parameterBuilder = new Parameter.Builder("param1", null);
parameterBuilder.description("Command line parameters for the 'cat'\n"
+ " command.\n" + " See\n"
+ " 'man\n" + " cat'.\n"
+ " ");
parameters.add(parameterBuilder.build());
parameterBuilder = new Parameter.Builder("param2", null);
parameterBuilder.description("Command line parameters for the 'tr'\n"
+ " command.\n"
+ " See\n"
+ " 'man\n"
+ " tr'.\n"
+ " ");
parameters.add(parameterBuilder.build());
paths.add(new MigrationPath(inputFormat, outputFormat, parameters));
return paths;
}