2 * Copyright (C) 2016 - 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 this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jcountry.model.data;
19 import java.io.Serializable;
20 import java.util.Date;
23 * A POJI for country data such as dial prefixes
25 * @author Roland Häder<roland@mxchange.org>
27 public interface Country extends Comparable<Country>, Serializable {
30 * Getter for country code (example: 49 for Germany, 63 for Philippines)
32 * @return Dial number without prefix
34 Short getCountryPhoneCode ();
37 * Setter for country code (example: 49 for Germany, 63 for Philippines)
39 * @param countryPhoneCode Country code
41 void setCountryPhoneCode (final Short countryPhoneCode);
44 * Getter for id number
51 * Setter for id number
53 * @param countryId Id number
55 void setCountryId (final Long countryId);
58 * Getter for 2-characters country code
60 * @return Country code
62 String getCountryCode ();
65 * Setter for 2-characters country code
67 * @param countryCode Country code
69 void setCountryCode (final String countryCode);
72 * Getter for local dial prefix
74 * @return Local dial prefix
76 String getCountryExternalDialPrefix ();
79 * Setter for local dial prefix
81 * @param countryExternalDialPrefix Local dial prefix
83 void setCountryExternalDialPrefix (final String countryExternalDialPrefix);
86 * Getter for abroad dial prefix
88 * @return Abroad dial prefix
90 String getCountryAbroadDialPrefix ();
93 * Setter for abroad dial prefix
95 * @param countryAbroadDialPrefix Abroad dial prefix
97 void setCountryAbroadDialPrefix (final String countryAbroadDialPrefix);
100 * Getter for i18n key for country name
102 * @return i18n key for country name
104 String getCountryI18nKey ();
107 * Setter for i18n key for country name
109 * @param countryI18nKey i18n key for country name
111 void setCountryI18nKey (final String countryI18nKey);
114 * Getter for whether the local dial prefix is required for local calls
116 * @return Whether the local dial prefix is required
118 Boolean getCountryIsLocalPrefixRequired ();
121 * Setter for whether the local dial prefix is required for local calls
123 * @param countryIsLocalPrefixRequired Whether the local dial prefix is
126 void setCountryIsLocalPrefixRequired (final Boolean countryIsLocalPrefixRequired);
129 * Getter for country entry created timestamp
131 * @return Country entry created timestamp
133 Date getCountryEntryCreated ();
136 * Setter for country entry created timestamp
138 * @param countryEntryCreated Country entry created timestamp
140 void setCountryEntryCreated (final Date countryEntryCreated);
143 boolean equals (final Object object);