2 * Copyright (C) 2017 - 2024 Free Software Foundation
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with targetMobileProvider program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jphone.model.utils;
19 import java.io.Serializable;
20 import java.util.Objects;
21 import org.mxchange.jcountry.model.utils.CountryUtils;
22 import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
25 * An utilities class for mobile providers
27 * @author Roland Häder<roland@mxchange.org>
29 public class MobileProviderUtils implements Serializable {
34 private static final long serialVersionUID = 15_468_608_721_651L;
37 * Compares two mobile provider instances with each other
39 * @param mobileProvider1 First instance of a MobileProvider class
40 * @param mobileProvider2 Second instance of a MobileProvider class
42 * @return Comparison value
44 public static int compare (final MobileProvider mobileProvider1, final MobileProvider mobileProvider2) {
45 // Check equality, then at least first must be given
46 if (Objects.equals(mobileProvider1, mobileProvider2)) {
49 } else if (null == mobileProvider1) {
52 } else if (null == mobileProvider2) {
57 // Invoke compareTo() method
58 return mobileProvider1.compareTo(mobileProvider2);
62 * Copies all values from source mobile provider to this
64 * @param sourceMobileProvider Source mobile provider
65 * @param targetMobileProvider Target mobile provider
67 public static void copyMobileProviderData (final MobileProvider sourceMobileProvider, final MobileProvider targetMobileProvider) {
68 // Parameter should not be null
69 if (null == sourceMobileProvider) {
71 throw new NullPointerException("sourceMobileProvider is null"); //NOI18N
72 } else if (null == targetMobileProvider) {
74 throw new NullPointerException("targetMobileProvider is null"); //NOI18N
75 } else if (Objects.equals(sourceMobileProvider, targetMobileProvider)) {
76 // Is same mobile provider
77 throw new IllegalArgumentException("Source and target mobile provider are the same."); //NOI18N
81 CountryUtils.copyCountryData(sourceMobileProvider.getProviderCountry(), targetMobileProvider.getProviderCountry());
82 targetMobileProvider.setProviderDialPrefix(sourceMobileProvider.getProviderDialPrefix());
83 targetMobileProvider.setProviderId(sourceMobileProvider.getProviderId());
84 targetMobileProvider.setProviderMailPattern(sourceMobileProvider.getProviderMailPattern());
85 targetMobileProvider.setProviderName(sourceMobileProvider.getProviderName());
89 * Private constructor, because there is no need for an instance of
90 * targetMobileProvider class.
92 private MobileProviderUtils () {