[
https://issues.apache.org/jira/browse/TWILL-54?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14596840#comment-14596840
]
ASF GitHub Bot commented on TWILL-54:
-------------------------------------
Github user hsaputra commented on the pull request:
https://github.com/apache/incubator-twill/pull/47#issuecomment-114301728
I will just close this one for PR to fix
https://issues.apache.org/jira/browse/TWILL-54
This should get rid of some public interfaces.
> Add a better way to programmatically build a TwillSpecification
> ---------------------------------------------------------------
>
> Key: TWILL-54
> URL: https://issues.apache.org/jira/browse/TWILL-54
> Project: Apache Twill
> Issue Type: Improvement
> Components: api
> Reporter: Andreas Neumann
> Assignee: Alvin Wang
>
> I am writing a framework that builds a Twill app from a specification. While
> the builder pattern is convenient and foolproof for verbose construction of
> the app spec, it is cumbersome to use programmatically:
> TwillSpecification.Builder.MoreRunnable builder =
>
> TwillSpecification.Builder.with().setName(className).withRunnable();
> // iterate over my spec and add runnables
> TwillSpecification.Builder.RunnableSetter setter = null;
> for (...) {
> ResourceSpecification resources = ...
> String name = ...
> TwillRunnable runnable = ...
> setter = setter == null ?
> builder.add(name, runnable, resources).noLocalFiles() :
> builder.add(name, runnable, resources).noLocalFiles();
> }
> }
> // iterate over my spec and configure the order of runnables
> TwillSpecification.Builder.NextOrder nextOrder = null;
> for (...) {
> String runnableName = ... // my logic
> String[] runnableNames = ... // my logic
> nextOrder = nextOrder == null ?
> setter.withOrder().begin(runnableName, runnableNames) :
> nextOrder.nextWhenCompleted(runnableName, runnableNames);
> }
> return nextOrder == null ? setter.anyOrder().build() :
> nextOrder.build();
> If would be easier if I did not have to use the builder pattern...
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)