[windup-dev] TopLayerSingletonFramesSelector logic?

Jess Sightler jsightle at redhat.com
Wed Oct 7 12:37:39 EDT 2015


The "payload" variable should always be a single item. It is reasonable 
for this safeguard to exist within the method itself.

On 10/07/2015 08:54 AM, Ondrej Zizka wrote:
> Just a minor thing, for potential refactoring:
>
> TopLayerSingletonFramesSelector:
>
>       public Iterable<? extends WindupVertexFrame> getFrames(GraphRewrite
> event, EvaluationContext context)
>       {
>           Variables variables = Variables.instance(event);
>           this.varName = Iteration.getPayloadVariableName(event, context);
>           return variables.findVariable(varName);
>       }
>
>       public static String getPayloadVariableName(GraphRewrite event,
> EvaluationContext ctx) throws IllegalStateException
>       {
>           Variables variables = Variables.instance(event);
>           Map<String, Iterable<? extends WindupVertexFrame>> topLayer =
> variables.peek();
>           if (topLayer.keySet().size() != 1)
>               throw new IllegalStateException("Cannot determine Iteration
> payload variable name because the top "
>                   + "layer of " + Variables.class.getSimpleName() + "
> stack contains no or multiple variables: " + topLayer.keySet());
>           String name = topLayer.keySet().iterator().next();
>           return name;
>       }
>
> So it verifies that the Variables stack has only one name, then returns
> it to let the calling code return the content of that single variable.
> I think the logic should be reversed - the check for a single variable
> should be in the calling code.
>
> Ondra
> _______________________________________________
> windup-dev mailing list
> windup-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/windup-dev



More information about the windup-dev mailing list