[8040] | 1 | /** |
---|
| 2 | * DatabaseInfo.java |
---|
| 3 | * |
---|
| 4 | * Copyright (C) 2008 MaxMind Inc. All Rights Reserved. |
---|
| 5 | * |
---|
| 6 | * This library is free software; you can redistribute it and/or |
---|
| 7 | * modify it under the terms of the GNU Lesser General Public |
---|
| 8 | * License as published by the Free Software Foundation; either |
---|
| 9 | * version 2.1 of the License, or (at your option) any later version. |
---|
| 10 | * |
---|
| 11 | * This library is distributed in the hope that it will be useful, |
---|
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
---|
| 14 | * Lesser General Public License for more details. |
---|
| 15 | * |
---|
| 16 | * You should have received a copy of the GNU Lesser General Public |
---|
| 17 | * License along with this library; if not, write to the Free Software |
---|
| 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
---|
| 19 | */
|
---|
| 20 |
|
---|
| 21 |
|
---|
| 22 | using System;
|
---|
| 23 |
|
---|
| 24 | public class DatabaseInfo {
|
---|
| 25 |
|
---|
| 26 | public static int COUNTRY_EDITION = 1;
|
---|
| 27 | public static int REGION_EDITION_REV0 = 7;
|
---|
| 28 | public static int REGION_EDITION_REV1 = 3;
|
---|
| 29 | public static int CITY_EDITION_REV0 = 6;
|
---|
| 30 | public static int CITY_EDITION_REV1 = 2;
|
---|
| 31 | public static int ORG_EDITION = 5;
|
---|
| 32 | public static int ISP_EDITION = 4;
|
---|
| 33 | public static int PROXY_EDITION = 8;
|
---|
| 34 | public static int ASNUM_EDITION = 9;
|
---|
| 35 | public static int NETSPEED_EDITION = 10;
|
---|
| 36 |
|
---|
| 37 | //private static SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
|
---|
| 38 |
|
---|
| 39 | private String info;
|
---|
| 40 | /** |
---|
| 41 | * Creates a new DatabaseInfo object given the database info String. |
---|
| 42 | * @param info |
---|
| 43 | */
|
---|
| 44 |
|
---|
| 45 | public DatabaseInfo(String info) {
|
---|
| 46 | this.info = info;
|
---|
| 47 | }
|
---|
| 48 |
|
---|
| 49 | public int getType() {
|
---|
| 50 | if ((info == null) | (info == "")) {
|
---|
| 51 | return COUNTRY_EDITION;
|
---|
| 52 | } else {
|
---|
| 53 | // Get the type code from the database info string and then
|
---|
| 54 | // subtract 105 from the value to preserve compatability with
|
---|
| 55 | // databases from April 2003 and earlier.
|
---|
| 56 | return Convert.ToInt32(info.Substring(4, 7)) - 105;
|
---|
| 57 | }
|
---|
| 58 | }
|
---|
| 59 |
|
---|
| 60 | /** |
---|
| 61 | * Returns true if the database is the premium version. |
---|
| 62 | * |
---|
| 63 | * @return true if the premium version of the database. |
---|
| 64 | */
|
---|
| 65 | public bool isPremium() {
|
---|
| 66 | return info.IndexOf("FREE") < 0;
|
---|
| 67 | }
|
---|
| 68 |
|
---|
| 69 | /** |
---|
| 70 | * Returns the date of the database. |
---|
| 71 | * |
---|
| 72 | * @return the date of the database. |
---|
| 73 | */
|
---|
| 74 | public DateTime getDate() {
|
---|
| 75 | for (int i = 0; i < info.Length - 9; i++) {
|
---|
| 76 | if (Char.IsWhiteSpace(info[i]) == true) {
|
---|
| 77 | String dateString = info.Substring(i + 1, i + 9);
|
---|
| 78 | try {
|
---|
| 79 | //synchronized (formatter) {
|
---|
| 80 | return DateTime.ParseExact(dateString, "yyyyMMdd", null);
|
---|
| 81 | //}
|
---|
| 82 | }
|
---|
| 83 | catch (Exception e) {
|
---|
| 84 | Console.Write(e.Message);
|
---|
| 85 | }
|
---|
| 86 | break;
|
---|
| 87 | }
|
---|
| 88 | }
|
---|
| 89 | return DateTime.Now;
|
---|
| 90 | }
|
---|
| 91 |
|
---|
| 92 | public String toString() {
|
---|
| 93 | return info;
|
---|
| 94 | }
|
---|
| 95 | }
|
---|
| 96 |
|
---|
| 97 |
|
---|