@JsonCreator public static WorkflowState create( @JsonProperty("enabled") Optional<Boolean> enabled, @JsonProperty("next_natural_trigger") Optional<Instant> nextNaturalTrigger, @JsonProperty("next_natural_offset_trigger") Optional<Instant> nextNaturalOffsetTrigger) { Builder builder = builder(); enabled.ifPresent(builder::enabled); nextNaturalTrigger.ifPresent(builder::nextNaturalTrigger); nextNaturalOffsetTrigger.ifPresent(builder::nextNaturalOffsetTrigger); return builder.build(); }
public static WorkflowState patchWorkflowState( final Optional<WorkflowState> originalWorkflowState, final WorkflowState patch) { return originalWorkflowState.map( o -> { WorkflowState.Builder builder = o.toBuilder() .enabled(patch.enabled().orElse(o.enabled().orElse(false))); patch.nextNaturalTrigger().ifPresent(builder::nextNaturalTrigger); return builder.build(); } ).orElse(patch); } }
public WorkflowState workflowState(WorkflowId workflowId) throws IOException { final WorkflowState.Builder builder = WorkflowState.builder(); final Optional<Entity> workflowEntity = getOpt(datastore, workflowKey(datastore.newKeyFactory(), workflowId)); builder.enabled(workflowEntity.filter(w -> w.contains(PROPERTY_WORKFLOW_ENABLED)) .map(workflow -> workflow.getBoolean(PROPERTY_WORKFLOW_ENABLED)) .orElse(DEFAULT_WORKFLOW_ENABLED)); getOptInstantProperty(workflowEntity, PROPERTY_NEXT_NATURAL_TRIGGER) .ifPresent(builder::nextNaturalTrigger); getOptInstantProperty(workflowEntity, PROPERTY_NEXT_NATURAL_OFFSET_TRIGGER) .ifPresent(builder::nextNaturalOffsetTrigger); return builder.build(); }
public static WorkflowState patchEnabled(boolean enabled) { return builder().enabled(enabled).build(); } }
public static WorkflowState empty() { return builder().build(); }