Вы, вероятно, хотите иметь карту, которая содержит ваш результат и некоторое представление
действий, которые вы хотите выполнить, если получите такой результат.
Тогда вы просто делаете следующее:
- Вы запускаете свою команду
- Вы получите результат своей команды
- Вы ищите, что делать в зависимости от результата
и так далее ...
Итак, для вашего примера:
Map<UnqiueResult, Command> registry = new HashMap<>();
registry.add(UniqueResult.BAZ, new Command(A));
registry.add(UniqueResult.C, new Command(D));
Если вам также необходимо определить, кем был исполнитель для этого результата, добавьте метод для определения ключа для карты реестра.
Edit:
Если вы хотите сделать то же самое, вы должны использовать Writer в выходном потоке. Смотрите ссылку, которую я прикрепил.
(Таким образом, вам может не потребоваться делать это, если вы рассматриваете каждый шаг как независимый процесс. В этом случае ваш код должен знать контекст, но это может быть частью определения вашей команды, как упоминалось ранее.)
Если ваш первый процесс имеет результат Y / N,
Вы можете просто начать следующий процесс в зависимости от результата.
Если у вас есть дополнительные требования, почему это должен быть один процесс, добавьте их к своему вопросу)