package com.neverwinterdp.registry.activity; import java.util.Random; public class HelloActivityBuilder extends ActivityBuilder { public HelloActivityBuilder() { getActivity().setType("hello"); getActivity().withCoordinator(HelloActivityCoordinator.class); } public HelloActivityBuilder(int numOfStep) { getActivity().setType("hello"); getActivity().withCoordinator(HelloActivityCoordinator.class); Random rand = new Random() ; for(int i = 0; i < numOfStep; i++) { if(rand.nextInt() % 2 == 0) { addHelloStep("hello-step") ; } else { addPauseStep("pause-step") ; } } } public HelloActivityBuilder addHelloStep(String name) { add(new ActivityStep(). withType(name). withExecutor(HelloActivityExecutor.class)); return this ; } public HelloActivityBuilder addPauseStep(String name) { add(new ActivityStep(). withType(name). withExecutor(PauseActivityExecutor.class)); return this ; } static public class HelloActivityExecutor implements ActivityStepExecutor { @Override public void execute(Activity activity, ActivityStep step) { System.out.println("hello activity executor, step = " + step.getId()) ; } } static public class PauseActivityExecutor implements ActivityStepExecutor { @Override public void execute(Activity activity, ActivityStep step) { System.out.println("pause activity executor, step = " + step.getId() + ", pause = 3s") ; try { Thread.sleep(3000); } catch (InterruptedException e) { } System.out.println("pause activity executor, step = " + step.getId() + ", resume") ; } } static public class HelloActivityCoordinator implements ActivityCoordinator { @Override public void onStart(Activity activity) { } public void onResume(Activity activity) { } @Override public void onAssign(Activity activity, ActivityStep step) { } @Override public void onFinish(Activity activity, ActivityStep step) { } @Override public void onFinish(Activity activity) { } } }