001package co.codewizards.cloudstore.core.version;
002
003import static java.util.Objects.*;
004
005import co.codewizards.cloudstore.core.dto.VersionInfoDto;
006
007public class VersionCompatibilityException extends RuntimeException {
008        private static final long serialVersionUID = 1L;
009
010        private final VersionInfoDto clientVersionInfoDto;
011        private final VersionInfoDto serverVersionInfoDto;
012
013        public VersionCompatibilityException(final VersionInfoDto clientVersionInfoDto, final VersionInfoDto serverVersionInfoDto, String message) {
014                super(message);
015                this.clientVersionInfoDto = requireNonNull(clientVersionInfoDto, "clientVersionInfoDto");
016                this.serverVersionInfoDto = requireNonNull(serverVersionInfoDto, "serverVersionInfoDto");
017
018                requireNonNull(clientVersionInfoDto.getLocalVersion(), "clientVersionInfoDto.localVersion");
019                requireNonNull(clientVersionInfoDto.getMinimumRemoteVersion(), "clientVersionInfoDto.minimumRemoteVersion");
020
021                requireNonNull(serverVersionInfoDto.getLocalVersion(), "serverVersionInfoDto.localVersion");
022                requireNonNull(serverVersionInfoDto.getMinimumRemoteVersion(), "serverVersionInfoDto.minimumRemoteVersion");
023        }
024
025        public VersionInfoDto getClientVersionInfoDto() {
026                return clientVersionInfoDto;
027        }
028        public VersionInfoDto getServerVersionInfoDto() {
029                return serverVersionInfoDto;
030        }
031}