Uploaded image for project: 'Apache Twill (Retired)'
  1. Apache Twill (Retired)
  2. TWILL-54

Add a better way to programmatically build a TwillSpecification

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • api
    • None

    Description

      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...

      Attachments

        Activity

          People

            jwang47 Alvin Wang
            anew Andreas Neumann
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: