class ServiceChangeChecker {

    public ServiceChanges check(List<ServiceType> oldServices, List<ServiceType> newServices) {
        List<String> oldFullServiceCodes = toFullServiceCodes(oldServices);
        List<String> newFullServiceCodes = toFullServiceCodes(newServices);

        List<ServiceType> addedServices = new ArrayList<>(newServices);
        addedServices.removeIf(serviceType -> oldFullServiceCodes
                .contains(FormatUtils.getServiceFullName(serviceType)));

        List<ServiceType> removedServices = new ArrayList<>(oldServices);
        removedServices.removeIf(serviceType -> newFullServiceCodes
                .contains(FormatUtils.getServiceFullName(serviceType)));

        return new ServiceChanges(addedServices, removedServices);
    }

}