2 * Copyright (C) 2017 - 2020 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 targetNumber program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jphone.model.phonenumbers.landline;
19 import java.io.Serializable;
20 import java.util.Objects;
23 * An utilities class for land-line numbers
25 * @author Roland Häder<roland@mxchange.org>
27 public class LandLineNumbers implements Serializable {
32 private static final long serialVersionUID = 18_698_467_372_167_561L;
35 * Copy all fields from source object to this
37 * @param sourceNumber Source number object
38 * @param targetNumber Target number object
40 public static void copyLandLineNumber (final DialableLandLineNumber sourceNumber, final DialableLandLineNumber targetNumber) {
42 if (null == sourceNumber) {
44 throw new NullPointerException("sourceNumber is null"); //NOI18N
45 } else if (null == targetNumber) {
47 throw new NullPointerException("targetNumber is null"); //NOI18N
51 targetNumber.setPhoneAreaCode(sourceNumber.getPhoneAreaCode());
52 targetNumber.setPhoneCountry(sourceNumber.getPhoneCountry());
53 targetNumber.setPhoneEntryCreated(sourceNumber.getPhoneEntryCreated());
54 targetNumber.setPhoneId(sourceNumber.getPhoneId());
55 targetNumber.setPhoneNumber(sourceNumber.getPhoneNumber());
59 * Checks if both are the same
61 * @param landLineNumber First land-line number
62 * @param otherNumber Second land-line number
64 * @return Whether both are the same
66 public static boolean isSameLandLineNumber (final DialableLandLineNumber landLineNumber, final DialableLandLineNumber otherNumber) {
67 // Test object equality first
68 if (Objects.equals(landLineNumber, otherNumber)) {
69 // Both the same object (null/null or same object)
71 } else if (((null == landLineNumber) && (otherNumber instanceof DialableLandLineNumber)) || ((null == otherNumber) && (landLineNumber instanceof DialableLandLineNumber))) {
72 // One is null the other not
76 final boolean sameCountry = Objects.equals(landLineNumber.getPhoneCountry(), otherNumber.getPhoneCountry());
77 final boolean sameAreaCode = Objects.equals(landLineNumber.getPhoneAreaCode(), otherNumber.getPhoneAreaCode());
78 final boolean sameNumber = Objects.equals(landLineNumber.getPhoneNumber(), otherNumber.getPhoneNumber());
80 return sameCountry && sameAreaCode && sameNumber;
84 * No constructor for utilities classes
86 private LandLineNumbers () {