package com.sequenceiq.cloudbreak.converter.scheduler; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.api.model.Status; import com.sequenceiq.cloudbreak.cloud.scheduler.PollGroup; import com.sequenceiq.cloudbreak.converter.AbstractConversionServiceAwareConverter; @Component public class StatusToPollGroupConverter extends AbstractConversionServiceAwareConverter<Status, PollGroup> { @Override public PollGroup convert(Status source) { switch (source) { case REQUESTED: case CREATE_IN_PROGRESS: case AVAILABLE: case UPDATE_IN_PROGRESS: case UPDATE_REQUESTED: case UPDATE_FAILED: case CREATE_FAILED: case ENABLE_SECURITY_FAILED: case STOPPED: case STOP_REQUESTED: case START_REQUESTED: case STOP_IN_PROGRESS: case START_IN_PROGRESS: case START_FAILED: case STOP_FAILED: case WAIT_FOR_SYNC: case DELETE_FAILED: return PollGroup.POLLABLE; case DELETE_IN_PROGRESS: case DELETE_COMPLETED: return PollGroup.CANCELLED; default: throw new UnsupportedOperationException(String.format("Status '%s' is not mapped to any PollGroup.", source)); } } }