/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.api.system.server; import org.eclipse.che.api.system.shared.dto.SystemEventDto; import org.eclipse.che.api.system.shared.dto.SystemServiceEventDto; import org.eclipse.che.api.system.shared.dto.SystemServiceItemStoppedEventDto; import org.eclipse.che.api.system.shared.dto.SystemStatusChangedEventDto; import org.eclipse.che.api.system.shared.event.SystemEvent; import org.eclipse.che.api.system.shared.event.SystemStatusChangedEvent; import org.eclipse.che.api.system.shared.event.service.SystemServiceEvent; import org.eclipse.che.api.system.shared.event.service.SystemServiceItemStoppedEvent; import org.eclipse.che.dto.server.DtoFactory; /** * Converts events to corresponding DTOs. * * @author Yevhenii Voevodin */ public final class DtoConverter { /** * Creates {@link SystemStatusChangedEventDto} from event. */ public static SystemStatusChangedEventDto asDto(SystemStatusChangedEvent event) { SystemStatusChangedEventDto dto = DtoFactory.newDto(SystemStatusChangedEventDto.class); dto.setType(event.getType()); dto.setStatus(event.getStatus()); dto.setPrevStatus(event.getPrevStatus()); return dto; } /** * Creates {@link SystemServiceEventDto} from event. */ public static SystemServiceEventDto asDto(SystemServiceEvent event) { SystemServiceEventDto dto = DtoFactory.newDto(SystemServiceEventDto.class); dto.setService(event.getServiceName()); dto.setType(event.getType()); return dto; } /** * Creates {@link SystemServiceItemStoppedEventDto} from event. */ public static SystemServiceItemStoppedEventDto asDto(SystemServiceItemStoppedEvent event) { SystemServiceItemStoppedEventDto dto = DtoFactory.newDto(SystemServiceItemStoppedEventDto.class); dto.setService(event.getServiceName()); dto.setType(event.getType()); dto.setCurrent(event.getCurrent()); dto.setTotal(event.getTotal()); dto.setItem(event.getItem()); return dto; } /** * Converts given event to the corresponding DTO, if event type * is unknown throws {@link IllegalArgumentException}. */ public static SystemEventDto asDto(SystemEvent event) { switch (event.getType()) { case STATUS_CHANGED: return asDto((SystemStatusChangedEvent)event); case SERVICE_ITEM_STOPPED: return asDto((SystemServiceItemStoppedEvent)event); case SERVICE_STOPPED: case STOPPING_SERVICE: return asDto((SystemServiceEvent)event); default: throw new IllegalArgumentException("Can't convert event to dto, event type '" + event.getType() + "' is unknown"); } } private DtoConverter() {} }