You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@twill.apache.org by "Andreas Neumann (JIRA)" <ji...@apache.org> on 2014/03/08 00:03:42 UTC
[jira] [Created] (TWILL-54) Add a better way to programmatically
build a TwillSpecification
Andreas Neumann created TWILL-54:
------------------------------------
Summary: 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
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.2#6252)