KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > compiere > model > MCountry


1 /******************************************************************************
2  * The contents of this file are subject to the Compiere License Version 1.1
3  * ("License"); You may not use this file except in compliance with the License
4  * You may obtain a copy of the License at http://www.compiere.org/license.html
5  * Software distributed under the License is distributed on an "AS IS" basis,
6  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
7  * the specific language governing rights and limitations under the License.
8  * The Original Code is Compiere ERP & CRM Business Solution
9  * The Initial Developer of the Original Code is Jorg Janke and ComPiere, Inc.
10  * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
11  * created by ComPiere are Copyright (C) ComPiere, Inc.; All Rights Reserved.
12  * Contributor(s): ______________________________________.
13  *****************************************************************************/

14 package org.compiere.model;
15
16 import java.sql.*;
17 import java.io.Serializable JavaDoc;
18 import java.util.*;
19
20 import org.compiere.util.*;
21
22 /**
23  * Location Country Model (Value Object)
24  *
25  * @author Jorg Janke
26  * @version $Id: MCountry.java,v 1.6 2003/10/04 03:55:45 jjanke Exp $
27  */

28 public final class MCountry extends X_C_Country
29     implements Comparator, Serializable JavaDoc
30 {
31     /**
32      * Create empty Country
33      * @param ctx context
34      * @param C_Country_ID ID
35      */

36     public MCountry (Properties ctx, int C_Country_ID)
37     {
38         super (ctx, C_Country_ID);
39         if (C_Country_ID == 0)
40         {
41             setHasRegion(false);
42             setHasPostal_Add(false);
43         }
44     } // MCountry
45

46     /**
47      * Create Country from current row in ResultSet
48      * @param ctx context
49      * @param rs ResultSet
50      */

51     public MCountry (Properties ctx, ResultSet rs)
52     {
53         super (ctx, rs);
54     } // MCountry
55

56     /** Static Logger */
57     private static Logger s_log = Logger.getCLogger (MCountry.class);
58
59     /**
60      * Return Name
61      * @return Name
62      */

63     public String JavaDoc toString()
64     {
65         return getName();
66     } // toString
67

68     /**
69      * Compare based on Name
70      * @param o1 object 1
71      * @param o2 object 2
72      * @return -1,0, 1
73      */

74     public int compare(Object JavaDoc o1, Object JavaDoc o2)
75     {
76         String JavaDoc s1 = o1.toString();
77         if (s1 == null)
78             s1 = "";
79         String JavaDoc s2 = o2.toString();
80         if (s2 == null)
81             s2 = "";
82         return s1.compareTo(s2);
83     } // compare
84

85     /*************************************************************************/
86
87     /** Country Cache */
88     private static CCache s_countries = null;
89     private static MCountry s_default = null;
90
91     /**
92      * Load Countries
93      * @param ctx context
94      */

95     private static void loadAllCountries (Properties ctx)
96     {
97         s_countries = new CCache("countries", 250);
98         String JavaDoc sql = "SELECT * FROM C_Country WHERE IsActive='Y'";
99         try
100         {
101             Statement stmt = DB.createStatement();
102             ResultSet rs = stmt.executeQuery(sql);
103             while(rs.next())
104             {
105                 MCountry c = new MCountry (ctx, rs);
106                 s_countries.put(String.valueOf(c.getC_Country_ID()), c);
107                 if (c.isDefault())
108                     s_default = c;
109             }
110             rs.close();
111             stmt.close();
112         }
113         catch (SQLException e)
114         {
115             s_log.error("loadAllCountries", e);
116         }
117         s_log.debug("loadAllCountries=" + s_countries.size());
118     } // get
119

120     /**
121      * Get Country (cached)
122      * @param ctx context
123      * @param C_Country_ID ID
124      * @return Country
125      */

126     public static MCountry get (Properties ctx, int C_Country_ID)
127     {
128         if (s_countries == null || s_countries.size() == 0)
129             loadAllCountries(ctx);
130         String JavaDoc key = String.valueOf(C_Country_ID);
131         MCountry c = (MCountry)s_countries.get(key);
132         if (c != null)
133             return c;
134         c = new MCountry (ctx, C_Country_ID);
135         if (c.getC_Country_ID() == C_Country_ID)
136         {
137             s_countries.put(key, c);
138             return c;
139         }
140         return null;
141     } // get
142

143     /**
144      * Get Default Country
145      * @param ctx context
146      * @return Country
147      */

148     public static MCountry getDefault (Properties ctx)
149     {
150         if (s_countries == null || s_countries.size() == 0)
151             loadAllCountries(ctx);
152         return s_default;
153     } // get
154

155     /**
156      * Return Countries as Array
157      * @param ctx context
158      * @return MCountry Array
159      */

160     public static MCountry[] getCountries(Properties ctx)
161     {
162         if (s_countries == null || s_countries.size() == 0)
163             loadAllCountries(ctx);
164         MCountry[] retValue = new MCountry[s_countries.size()];
165         s_countries.values().toArray(retValue);
166         Arrays.sort(retValue, new MCountry(ctx, 0));
167         return retValue;
168     } // getCountries
169

170
171     /*************************************************************************/
172
173     /**
174      * Insert Countries
175      * @param args none
176      */

177     public static void main (String JavaDoc[] args)
178     {
179         /** Migration before
180         UPDATE C_Country SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID<>0 OR AD_Org_ID<>0;
181         UPDATE C_Region SET AD_Client_ID=0, AD_Org_ID=0 WHERE AD_Client_ID<>0 OR AD_Org_ID<>0;
182         IDs migration for C_Location, C_City, C_Tax (C_Country, C_Region)
183         **
184         // from http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1-semic.txt
185         String countries = "AFGHANISTAN;AF, ALBANIA;AL, ALGERIA;DZ, AMERICAN SAMOA;AS, ANDORRA;AD, ANGOLA;AO, ANGUILLA;AI, ANTARCTICA;AQ, ANTIGUA AND BARBUDA;AG, ARGENTINA;AR,"
186             + "ARMENIA;AM, ARUBA;AW, AUSTRALIA;AU, AUSTRIA;AT, AZERBAIJAN;AZ, BAHAMAS;BS, BAHRAIN;BH, BANGLADESH;BD, BARBADOS;BB, BELARUS;BY, BELGIUM;BE, BELIZE;BZ,"
187             + "BENIN;BJ, BERMUDA;BM, BHUTAN;BT, BOLIVIA;BO, BOSNIA AND HERZEGOVINA;BA, BOTSWANA;BW, BOUVET ISLAND;BV, BRAZIL;BR, BRITISH INDIAN OCEAN TERRITORY;IO, BRUNEI DARUSSALAM;BN,"
188             + "BULGARIA;BG, BURKINA FASO;BF, BURUNDI;BI, CAMBODIA;KH, CAMEROON;CM, CANADA;CA, CAPE VERDE;CV, CAYMAN ISLANDS;KY, CENTRAL AFRICAN REPUBLIC;CF, CHAD;TD, CHILE;CL,"
189             + "CHINA;CN, CHRISTMAS ISLAND;CX, COCOS (KEELING) ISLANDS;CC, COLOMBIA;CO, COMOROS;KM, CONGO;CG, CONGO THE DEMOCRATIC REPUBLIC OF THE;CD, COOK ISLANDS;CK,"
190             + "COSTA RICA;CR, COTE D'IVOIRE;CI, CROATIA;HR, CUBA;CU, CYPRUS;CY, CZECH REPUBLIC;CZ, DENMARK;DK, DJIBOUTI;DJ, DOMINICA;DM, DOMINICAN REPUBLIC;DO, ECUADOR;EC,"
191             + "EGYPT;EG, EL SALVADOR;SV, EQUATORIAL GUINEA;GQ, ERITREA;ER, ESTONIA;EE, ETHIOPIA;ET, FALKLAND ISLANDS (MALVINAS);FK, FAROE ISLANDS;FO, FIJI;FJ,"
192             + "FINLAND;FI, FRANCE;FR, FRENCH GUIANA;GF, FRENCH POLYNESIA;PF, FRENCH SOUTHERN TERRITORIES;TF, GABON;GA, GAMBIA;GM, GEORGIA;GE, GERMANY;DE, GHANA;GH,"
193             + "GIBRALTAR;GI, GREECE;GR, GREENLAND;GL, GRENADA;GD, GUADELOUPE;GP, GUAM;GU, GUATEMALA;GT, GUINEA;GN, GUINEA-BISSAU;GW, GUYANA;GY, HAITI;HT,"
194             + "HEARD ISLAND AND MCDONALD ISLANDS;HM, HOLY SEE (VATICAN CITY STATE);VA, HONDURAS;HN, HONG KONG;HK, HUNGARY;HU, ICELAND;IS, INDIA;IN, INDONESIA;ID,"
195             + "IRAN ISLAMIC REPUBLIC OF;IR, IRAQ;IQ, IRELAND;IE, ISRAEL;IL, ITALY;IT, JAMAICA;JM, JAPAN;JP, JORDAN;JO, KAZAKHSTAN;KZ, KENYA;KE, KIRIBATI;KI, KOREA DEMOCRATIC PEOPLE'S REPUBLIC OF;KP,"
196             + "KOREA REPUBLIC OF;KR, KUWAIT;KW, KYRGYZSTAN;KG, LAO PEOPLE'S DEMOCRATIC REPUBLIC;LA, LATVIA;LV, LEBANON;LB, LESOTHO;LS, LIBERIA;LR, LIBYAN ARAB JAMAHIRIYA;LY,"
197             + "LIECHTENSTEIN;LI, LITHUANIA;LT, LUXEMBOURG;LU, MACAO;MO, MACEDONIA FORMER YUGOSLAV REPUBLIC OF;MK, MADAGASCAR;MG, MALAWI;MW, MALAYSIA;MY, MALDIVES;MV, "
198             + "MALI;ML, MALTA;MT, MARSHALL ISLANDS;MH, MARTINIQUE;MQ, MAURITANIA;MR, MAURITIUS;MU, MAYOTTE;YT, MEXICO;MX, MICRONESIA FEDERATED STATES OF;FM,"
199             + "MOLDOVA REPUBLIC OF;MD, MONACO;MC, MONGOLIA;MN, MONTSERRAT;MS, MOROCCO;MA, MOZAMBIQUE;MZ, MYANMAR;MM, NAMIBIA;NA, NAURU;NR, NEPAL;NP,"
200             + "NETHERLANDS;NL, NETHERLANDS ANTILLES;AN, NEW CALEDONIA;NC, NEW ZEALAND;NZ, NICARAGUA;NI, NIGER;NE, NIGERIA;NG, NIUE;NU, NORFOLK ISLAND;NF,"
201             + "NORTHERN MARIANA ISLANDS;MP, NORWAY;NO, OMAN;OM, PAKISTAN;PK, PALAU;PW, PALESTINIAN TERRITORY OCCUPIED;PS, PANAMA;PA, PAPUA NEW GUINEA;PG,"
202             + "PARAGUAY;PY, PERU;PE, PHILIPPINES;PH, PITCAIRN;PN, POLAND;PL, PORTUGAL;PT, PUERTO RICO;PR, QATAR;QA, REUNION;RE, ROMANIA;RO, RUSSIAN FEDERATION;RU,"
203             + "RWANDA;RW, SAINT HELENA;SH, SAINT KITTS AND NEVIS;KN, SAINT LUCIA;LC, SAINT PIERRE AND MIQUELON;PM, SAINT VINCENT AND THE GRENADINES;VC,"
204             + "SAMOA;WS, SAN MARINO;SM, SAO TOME AND PRINCIPE;ST, SAUDI ARABIA;SA, SENEGAL;SN, SEYCHELLES;SC, SIERRA LEONE;SL, SINGAPORE;SG, SLOVAKIA;SK,"
205             + "SLOVENIA;SI, SOLOMON ISLANDS;SB, SOMALIA;SO, SOUTH AFRICA;ZA, SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS;GS, SPAIN;ES, SRI LANKA;LK,"
206             + "SUDAN;SD, SURINAME;SR, SVALBARD AND JAN MAYEN;SJ, SWAZILAND;SZ, SWEDEN;SE, SWITZERLAND;CH, SYRIAN ARAB REPUBLIC;SY, TAIWAN;TW,"
207             + "TAJIKISTAN;TJ, TANZANIA UNITED REPUBLIC OF;TZ, THAILAND;TH, TIMOR-LESTE;TL, TOGO;TG, TOKELAU;TK, TONGA;TO, TRINIDAD AND TOBAGO;TT,"
208             + "TUNISIA;TN, TURKEY;TR, TURKMENISTAN;TM, TURKS AND CAICOS ISLANDS;TC, TUVALU;TV, UGANDA;UG, UKRAINE;UA, UNITED ARAB EMIRATES;AE, UNITED KINGDOM;GB,"
209             + "UNITED STATES;US, UNITED STATES MINOR OUTLYING ISLANDS;UM, URUGUAY;UY, UZBEKISTAN;UZ, VANUATU;VU, VENEZUELA;VE, VIET NAM;VN, VIRGIN ISLANDS BRITISH;VG,"
210             + "VIRGIN ISLANDS U.S.;VI, WALLIS AND FUTUNA;WF, WESTERN SAHARA;EH, YEMEN;YE, YUGOSLAVIA;YU, ZAMBIA;ZM, ZIMBABWE;ZW";
211         //
212         org.compiere.Compiere.startupClient();
213         StringTokenizer st = new StringTokenizer(countries, ",", false);
214         while (st.hasMoreTokens())
215         {
216             String s = st.nextToken().trim();
217             int pos = s.indexOf(";");
218             String name = Util.initCap(s.substring(0,pos));
219             String cc = s.substring(pos+1);
220             System.out.println(cc + " - " + name);
221             //
222             MCountry mc = new MCountry(Env.getCtx(), 0);
223             mc.setCountryCode(cc);
224             mc.setName(name);
225             mc.setDescription(name);
226             mc.save();
227         }
228         **/

229     } // main
230

231 } // MCountry
232
Popular Tags