package org.ovirt.engine.api.restapi.types; import org.ovirt.engine.api.model.CreationStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskResultEnum; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; public class AsyncTaskMapper { @Mapping(from = AsyncTaskStatus.class, to = CreationStatus.class) public static CreationStatus map(AsyncTaskStatus entity, CreationStatus template) { CreationStatus model = null; switch(entity.getStatus()) { case unknown: case init: model = template != CreationStatus.FAILED ? CreationStatus.PENDING : template; break; case running: model = template != CreationStatus.FAILED ? CreationStatus.IN_PROGRESS : template; break; case finished: if (entity.getResult() == AsyncTaskResultEnum.success) { model = template != null ? template : CreationStatus.COMPLETE; } else { model = CreationStatus.FAILED; } break; case cleaning: if (entity.getResult() == AsyncTaskResultEnum.cleanSuccess) { model = template != null ? template : CreationStatus.COMPLETE; } else { model = CreationStatus.FAILED; } break; case aborting: model = CreationStatus.FAILED; break; } return model; } }