[
https://issues.apache.org/jira/browse/FLINK-2017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14718227#comment-14718227
]
Robert Metzger commented on FLINK-2017:
---------------------------------------
Sorry for the late reply.
"Should check return a boolean or void and throw an Exception if not all are
provided?".
Thats a good question. I think a checked exception would be better, but if you
find good arguments for boolean, do it like this.
"I imagine the printHelp method to produce output similar to what is shown if
"grep --help" is called in the command line in linux. Does that sound sensible?"
Yes, that would great.
"The checkAndPopulate method updates the parameter object and returns void,
right?"
I think the main purpose is to set the default values from the options in the
parametertool.
"Is it mean to be ParameterTool?"
I think the class has been renamed, thats why the code in the example is wrong.
"The use of an Option object to encapsulate the parameters should probably be
used in ParameterTool as well, right?"
If that makes sense, do it.
Once you feel comfortable with your implementation, you can point me to your
current work in progress branch and I can take a look.
In general, the reason why I implemented the ParameterTool in the first place
is to have something as easy as possible to use.
I don't want users to type a single character more than necessary.
Tools like Commons CLI are already too verbose in my understanding.
That's also why I want the RequiredParameters to be decoupled from the
ParameterTool.
> Add predefined required parameters to ParameterTool
> ---------------------------------------------------
>
> Key: FLINK-2017
> URL: https://issues.apache.org/jira/browse/FLINK-2017
> Project: Flink
> Issue Type: Improvement
> Affects Versions: 0.9
> Reporter: Robert Metzger
> Labels: starter
>
> In FLINK-1525 we've added the {{ParameterTool}}.
> During the PR review, there was a request for required parameters.
> This issue is about implementing a facility to define required parameters.
> The tool should also be able to print a help menu with a list of all
> parameters.
> This test case shows my initial ideas how to design the API
> {code}
> @Test
> public void requiredParameters() {
> RequiredParameters required = new RequiredParameters();
> Option input = required.add("input").alt("i").help("Path to
> input file or directory"); // parameter with long and short variant
> required.add("output"); // parameter only with long variant
> Option parallelism =
> required.add("parallelism").alt("p").type(Integer.class); // parameter with
> type
> Option spOption =
> required.add("sourceParallelism").alt("sp").defaultValue(12).help("Number
> specifying the number of parallel data source instances"); // parameter with
> default value, specifying the type.
> Option executionType =
> required.add("executionType").alt("et").defaultValue("pipelined").choices("pipelined",
> "batch");
> ParameterUtil parameter = ParameterUtil.fromArgs(new
> String[]{"-i", "someinput", "--output", "someout", "-p", "15"});
> required.check(parameter);
> required.printHelp();
> required.checkAndPopulate(parameter);
> String inputString = input.get();
> int par = parallelism.getInteger();
> String output = parameter.get("output");
> int sourcePar = parameter.getInteger(spOption.getName());
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)