KazMuzik.net
Music / Technology / Healthcare / Immigration / アメリカ
Google
 
<< MIDI data conversion project with Pro ToolsPro Tools 110 Digidesign Certification in 2008 Spring >>

FIPS55 State - KazMuzik Blog
2008-02-19 23:54

2/15 に、U.S. Government 発行のデータの parser について、書きましたが、まずは、State のクラスを載せます。50州と、District of Columbia, それに、Puerto Rico や Guam などを含めても 60 なので、FIPS PUB 55-3 のデータを static に持つことにしました。
package net.java.sampo.usgov.fips;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

public class State implements Serializable, Comparable<State> {
  private int seq;
  private String fipsCode;
  private String alphaCode;
  private String name;

  private State(int seq, String fipsCode, String alphaCode, String name) {
    this.seq = seq;
    this.fipsCode = fipsCode;
    this.alphaCode = alphaCode;
    this.name = name;
  }

  public int getSequenceNumber() {
    return seq;
  }

  public String getFipsCode() {
    return fipsCode;
  }

  public String getAlphaCode() {
    return alphaCode;
  }

  public String getName() {
    return name;
  }

  public int compareTo(State other) {
    return seq - other.seq;
  }

  // http://www.itl.nist.gov/fipspubs/fip55-3.htm
  public static final State AL = new State( 1, "01", "AL", "Alabama");
  public static final State AK = new State( 2, "02", "AK", "Alaska");
  public static final State AZ = new State( 3, "04", "AZ", "Arizona");
  public static final State AR = new State( 4, "05", "AR", "Arkansas");
  public static final State CA = new State( 5, "06", "CA", "California");
  public static final State CO = new State( 6, "08", "CO", "Colorado");
  public static final State CT = new State( 7, "09", "CT", "Connecticut"); // ?
  public static final State DE = new State( 8, "10", "DE", "Delaware");
  public static final State DC = new State( 9, "11", "DC", "District of Columbia");
  public static final State FL = new State(10, "12", "FL", "Florida");
  public static final State GA = new State(11, "13", "GA", "Georgia");
  public static final State HI = new State(12, "15", "HI", "Hawaii");
  public static final State ID = new State(13, "16", "ID", "Idaho");
  public static final State IL = new State(14, "17", "IL", "Illinois");
  public static final State IN = new State(15, "18", "IN", "Indiana");
  public static final State IA = new State(16, "19", "IA", "Iowa");
  public static final State KS = new State(17, "20", "KS", "Kansas");
  public static final State KY = new State(18, "21", "KY", "Kentucky");
  public static final State LA = new State(19, "22", "LA", "Louisiana");
  public static final State ME = new State(20, "23", "ME", "Maine");
  public static final State MD = new State(21, "24", "MD", "Maryland");
  public static final State MA = new State(22, "25", "MA", "Massachusetts");
  public static final State MI = new State(23, "26", "MI", "Michigan");
  public static final State MN = new State(24, "27", "MN", "Minnesota");
  public static final State MS = new State(25, "28", "MS", "Mississippi");
  public static final State MO = new State(26, "29", "MO", "Missouri");
  public static final State MT = new State(27, "30", "MT", "Montana");
  public static final State NE = new State(28, "31", "NE", "Nebraska");
  public static final State NV = new State(29, "32", "NV", "Nevada");
  public static final State NH = new State(30, "33", "NH", "New Hampshire");
  public static final State NJ = new State(31, "34", "NJ", "New Jersey");
  public static final State NM = new State(32, "35", "NM", "New Mexico");
  public static final State NY = new State(33, "36", "NY", "New York");
  public static final State NC = new State(34, "37", "NC", "North Carolina");
  public static final State ND = new State(35, "38", "ND", "North Dakota");
  public static final State OH = new State(36, "39", "OH", "Ohio");
  public static final State OK = new State(37, "40", "OK", "Oklahoma");
  public static final State OR = new State(38, "41", "OR", "Oregon");
  public static final State PA = new State(39, "42", "PA", "Pennsylvania");
  public static final State RI = new State(40, "44", "RI", "Rhode Island");
  public static final State SC = new State(41, "45", "SC", "South Carolina");
  public static final State SD = new State(42, "46", "SD", "South Dakota");
  public static final State TN = new State(43, "47", "TN", "Tennessee");
  public static final State TX = new State(44, "48", "TX", "Texas");
  public static final State UT = new State(45, "49", "UT", "Utah");
  public static final State VT = new State(46, "50", "VT", "Vermont");
  public static final State VA = new State(47, "51", "VA", "Virginia");
  public static final State WA = new State(48, "53", "WA", "Washington");
  public static final State WV = new State(49, "54", "WV", "West Virginia");
  public static final State WI = new State(50, "55", "WI", "Wisconsin");
  public static final State WY = new State(51, "56", "WY", "Wyoming");
  //
  public static final State AS = new State(52, "60", "AS", "American Samoa");
  public static final State GU = new State(54, "66", "GU", "Guam");
  public static final State MP = new State(56, "69", "MP", "Northern Mariana Islands");
  public static final State PR = new State(58, "72", "PR", "Puerto Rico");
  public static final State UM = new State(59, "74", "UM", "U.S. Minor Outlying Islands");
  public static final State VI = new State(60, "78", "VI", "Virgin Islands of the U.S.");
  //
  public static final State FM = new State(53, "64", "FM", "Federated States of Micronesia");
  public static final State MH = new State(55, "68", "MH", "Marshall Islands");
  public static final State PW = new State(57, "70", "PW", "Palau");

  private static final State[] allStates = new State[] {
    AL, AK, AZ, AR, CA, CO, CT, DE, DC, FL,
    GA, HI, ID, IL, IN, IA, KS, KY, LA, ME,
    MD, MA, MI, MN, MS, MO, MT, NE, NV, NH,
    NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI,
    SC, SD, TN, TX, UT, VT, VA, WA, WV, WI,
    WY, AS, FM, GU, MH, MP, PW, PR, UM, VI
  };

  public static State[] getAllStates() {
    return allStates;
  }

  private static State[] fipsStates = new State[79];
  private static Map<String,State> alphaMap = new HashMap<String,State>();

  static {
    for (State state : allStates) {
      fipsStates[getIntFipsCode(state.getFipsCode())] = state;
      alphaMap.put(state.getAlphaCode(), state);
    }
  }

  private static int getIntFipsCode(String fipsCode) {
    if (fipsCode == null || fipsCode.length() != 2) {
      return -1;
    }
    int m = fipsCode.charAt(0) - '0';
    if (m < 0 || m > 9) {
      return -1;
    }
    int n = fipsCode.charAt(1) - '0';
    if (n < 0 || n > 9) {
      return -1;
    }
    return m * 10 + n;
  }

  public static State getStateByFipsCode(String fipsCode) {
    int n = getIntFipsCode(fipsCode);
    if (n < 1 || n >= fipsStates.length) {
      return null;
    }
    return fipsStates[n];
  }

  public static State getStateByAlphaCode(String alphaCode) {
    return alphaMap.get(alphaCode);
  }
} 



2008-02-21 update
-> "sampo" project at java.net
-> net.java.sampo.usgov.fips.State.java

Tags: programming