package com.airlock.iam.flow.domain.model.statemachine.runtime;

import com.airlock.iam.flow.api.application.configuration.step.FlowStepConfig;
import com.airlock.iam.flow.api.domain.model.step.FlowStep;
import com.airlock.iam.flow.api.domain.model.step.FlowStepConfigId;
import com.airlock.iam.flow.domain.model.statemachine.FlowState;
import java.util.Optional;

public enum ConstantState implements FlowState {
   CREATED,
   SUCCEEDED,
   FAILED;

   @Override
   public String getId() {
      return this.name();
   }

   @Override
   public boolean hasStep() {
      return false;
   }

   @Override
   public FlowStepConfigId getConfigId() {
      return new FlowStepConfigId(this.name().hashCode());
   }

   @Override
   public Optional<FlowStepConfig> getStepConfig() {
      return Optional.empty();
   }

   @Override
   public Optional<FlowStep> getStep() {
      return Optional.empty();
   }
}
