2020import java .util .List ;
2121import java .util .Objects ;
2222import java .util .Optional ;
23+ import java .util .function .Supplier ;
2324import java .util .stream .Stream ;
2425
2526import org .hl7 .fhir .r4 .model .QuestionnaireResponse ;
@@ -42,7 +43,9 @@ public class VariablesImpl implements Variables, ListenerVariables
4243 private static final Logger logger = LoggerFactory .getLogger (VariablesImpl .class );
4344
4445 private static final String TASKS_PREFIX = VariablesImpl .class .getName () + ".tasks." ;
46+ private static final String TASKS_PREFIX_DSF_1 = "dev.dsf.bpe.variables.VariablesImpl.tasks." ;
4547 private static final String START_TASK = VariablesImpl .class .getName () + ".startTask" ;
48+ private static final String START_TASK_DSF_1 = "dev.dsf.bpe.variables.VariablesImpl.startTask" ;
4649
4750 private static final class DistinctTask
4851 {
@@ -170,10 +173,10 @@ public <R extends Resource> List<R> getResourceList(String variableName)
170173 return list != null ? list .getResourcesAndCast () : null ;
171174 }
172175
173- private <R extends Resource > List <R > getResourceListOrDefault (String variableName , List <R > defaultList )
176+ private <R extends Resource > List <R > getResourceListOrDefault (String variableName , Supplier < List <R > > defaultList )
174177 {
175178 List <R > list = getResourceList (variableName );
176- return list != null ? list : defaultList ;
179+ return list != null ? list : defaultList . get () ;
177180 }
178181
179182 @ Override
@@ -197,7 +200,12 @@ public Task getStartTask()
197200 logger .trace ("getStartTask - parentActivityInstanceId: {}, parentId: {}" ,
198201 execution .getParentActivityInstanceId (), execution .getParentId ());
199202
200- return getResource (START_TASK );
203+ Task task = getResource (START_TASK );
204+
205+ if (task == null )
206+ task = getResource (START_TASK_DSF_1 );
207+
208+ return task ;
201209 }
202210
203211 @ Override
@@ -218,7 +226,8 @@ public List<Task> getTasks()
218226
219227 List <Task > tasks = Stream
220228 .concat (Stream .of (getStartTask ()),
221- execution .getVariables ().keySet ().stream ().filter (k -> k .startsWith (TASKS_PREFIX ))
229+ execution .getVariables ().keySet ().stream ()
230+ .filter (k -> k .startsWith (TASKS_PREFIX ) || k .startsWith (TASKS_PREFIX_DSF_1 ))
222231 .map (this ::getResourceList ).flatMap (List ::stream ).filter (r -> r instanceof Task )
223232 .map (r -> (Task ) r ))
224233 .filter (t -> t != null ).map (DistinctTask ::new ).distinct ().map (DistinctTask ::getTask ).toList ();
@@ -234,7 +243,9 @@ public List<Task> getCurrentTasks()
234243
235244 Stream <Task > start = execution .getParentId () == null ? Stream .of (getStartTask ()) : Stream .empty ();
236245 Stream <Task > current = getResourceListOrDefault (TASKS_PREFIX + execution .getParentActivityInstanceId (),
237- List .<Task > of ()).stream ();
246+ () -> getResourceListOrDefault (TASKS_PREFIX_DSF_1 + execution .getParentActivityInstanceId (),
247+ List ::<Task > of ))
248+ .stream ();
238249
239250 return Collections .unmodifiableList (Stream .concat (start , current ).toList ());
240251 }
@@ -252,7 +263,8 @@ public void updateTask(Task task)
252263 else
253264 {
254265 String instanceId = execution .getParentActivityInstanceId ();
255- List <Task > tasks = getResourceListOrDefault (TASKS_PREFIX + instanceId , List .of ());
266+ List <Task > tasks = getResourceListOrDefault (TASKS_PREFIX + instanceId ,
267+ () -> getResourceListOrDefault (TASKS_PREFIX_DSF_1 + instanceId , List ::of ));
256268
257269 if (tasks .stream ().anyMatch (t -> t .getIdElement ().getIdPart ().equals (task .getIdElement ().getIdPart ())))
258270 setResourceList (TASKS_PREFIX + instanceId , tasks );
@@ -307,7 +319,8 @@ public void onContinue(Task task)
307319 {
308320 String instanceId = execution .getParentActivityInstanceId ();
309321
310- List <Task > tasks = new ArrayList <>(getResourceListOrDefault (TASKS_PREFIX + instanceId , List .of ()));
322+ List <Task > tasks = new ArrayList <>(getResourceListOrDefault (TASKS_PREFIX + instanceId ,
323+ () -> getResourceListOrDefault (TASKS_PREFIX_DSF_1 + instanceId , List ::of )));
311324 tasks .add (task );
312325
313326 setResourceList (TASKS_PREFIX + instanceId , tasks );
@@ -322,7 +335,8 @@ public void onEnd()
322335 logger .trace ("onEnd" );
323336
324337 String instanceId = execution .getParentActivityInstanceId ();
325- List <Task > tasks = new ArrayList <>(getResourceListOrDefault (TASKS_PREFIX + instanceId , List .of ()));
338+ List <Task > tasks = new ArrayList <>(getResourceListOrDefault (TASKS_PREFIX + instanceId ,
339+ () -> getResourceListOrDefault (TASKS_PREFIX_DSF_1 + instanceId , List ::of )));
326340 tasks .removeAll (getCurrentTasks ());
327341 setResourceList (TASKS_PREFIX + instanceId , tasks );
328342 }
0 commit comments