@@ -321,46 +321,44 @@ public Task<Object> newTask() {
321321 if (targetEffector .isAbsentOrNull ()) {
322322 throw new IllegalArgumentException ("Effector " + effectorName + " not found on entity: " + targetEntity );
323323 }
324- if (null == cachedTask ) {
325- cachedTask = null == argList
326- ? Entities .invokeEffector (targetEntity , targetEntity , targetEffector .get (), args )
327- : invokeWithDeferredArgs (targetEntity , targetEffector .get (), argList );
328- // : Entities.invokeEffectorWithArgs(targetEntity, targetEntity, targetEffector.get(), argList.toArray());
324+ if (cachedTask == null ) {
325+ if (argList == null ) {
326+ cachedTask = Entities .invokeEffector (targetEntity , targetEntity , targetEffector .get (), args );
327+ } else {
328+ cachedTask = invokeWithDeferredArgs (targetEntity , targetEffector .get (), argList );
329+ }
329330 }
330331 return (Task <Object >) cachedTask ;
331332 }
332-
333- public static Task <Object > invokeWithDeferredArgs (final Entity targetEntity , final Effector <?> targetEffector , final List <? extends Object > args ) {
333+ private Task <Object > invokeWithDeferredArgs (final Entity targetEntity , final Effector <?> targetEffector , final List <? extends Object > args ) {
334334 List <TaskAdaptable <Object >> taskArgs = Lists .newArrayList ();
335- for (Object arg : args ) {
336- if (arg instanceof TaskAdaptable ) taskArgs .add ((TaskAdaptable <Object >)arg );
337- else if (arg instanceof TaskFactory ) taskArgs .add ( ((TaskFactory <TaskAdaptable <Object >>)arg ).newTask () );
335+ for (Object arg : args ) {
336+ if (arg instanceof TaskAdaptable ) taskArgs .add ((TaskAdaptable <Object >) arg );
337+ else if (arg instanceof TaskFactory ) taskArgs .add (((TaskFactory <TaskAdaptable <Object >>) arg ).newTask ());
338338 }
339-
340339 return DependentConfiguration .transformMultiple (
341- MutableMap .< String , String > of ("displayName" , "invoking '" +targetEffector .getName ()+"' with " +taskArgs .size ()+" task" +(taskArgs .size ()!=1 ?"s" :"" )),
340+ MutableMap .of ("displayName" , "invoking '" +targetEffector .getName ()+"' with " +taskArgs .size ()+" task" +(taskArgs .size ()!=1 ?"s" :"" )),
342341 new Function <List <Object >, Object >() {
343- @ Override public Object apply (List <Object > input ) {
344- Iterator <?> tri = input .iterator ();
345- Object [] vv = new Object [args .size ()];
346- int i =0 ;
347- for (Object arg : args ) {
348- if (arg instanceof TaskAdaptable || arg instanceof TaskFactory ) vv [i ] = tri .next ();
349- else if (arg instanceof DeferredSupplier ) vv [i ] = ((DeferredSupplier <?>) arg ).get ();
350- else vv [i ] = arg ;
351- i ++;
352- }
353-
354- return Entities .invokeEffectorWithArgs (targetEntity , targetEntity , targetEffector , vv );
355- }},
356- taskArgs );
342+ @ Override
343+ public Object apply (List <Object > input ) {
344+ Iterator <?> tri = input .iterator ();
345+ Object [] vv = new Object [args .size ()];
346+ int i =0 ;
347+ for (Object arg : args ) {
348+ if (arg instanceof TaskAdaptable || arg instanceof TaskFactory ) vv [i ] = tri .next ();
349+ else if (arg instanceof DeferredSupplier ) vv [i ] = ((DeferredSupplier <?>) arg ).get ();
350+ else vv [i ] = arg ;
351+ i ++;
352+ }
353+ return Entities .invokeEffectorWithArgs (targetEntity , targetEntity , targetEffector , vv );
354+ }
355+ },
356+ taskArgs );
357357 }
358-
359358 @ Override
360359 public int hashCode () {
361360 return Objects .hashCode (component , effectorName );
362361 }
363-
364362 @ Override
365363 public boolean equals (Object obj ) {
366364 if (this == obj ) return true ;
0 commit comments