private void updateState() { synchronized (sync) { boolean allComplete = true; for (ExecutableFlow flow : flows) { switch (flow.getStatus()) { case FAILED: jobState = Status.FAILED; returnProps = new Props(); return; case COMPLETED: case SUCCEEDED: continue; default: allComplete = false; } } if (allComplete) { jobState = Status.SUCCEEDED; returnProps = new Props(); for (ExecutableFlow flow : flows) { returnProps = new Props(returnProps, flow.getReturnProps()); } returnProps.logProperties("Output properties for " + getName()); } } }
private void setAndVerifyParentProps() { for (ExecutableFlow flow : flows) { if (flow.getStatus() == Status.READY) { continue; } final Props childsParentProps = flow.getParentProps(); if (parentProps == null) { parentProps = childsParentProps; } else { if (childsParentProps != null && !parentProps.equalsProps(childsParentProps)) { throw new IllegalStateException( String.format("Parent props differ for sub flows. Flow Id[%s]", id)); } } } }