org.unlaxer.jaddress.entity.zip.ZipBasedAddress Maven / Gradle / Ivy
package org.unlaxer.jaddress.entity.zip;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.unlaxer.util.collection.Comparators;
public interface ZipBasedAddress {
/*
http://jusyo.jp/csv/document.html
No 項目名 説 明
1 住所CD 住所コード。プライマリーコードになります。
郵便番号+独自の2桁です。市区町村合併の際も同一番号を保持します。
ただし、区画整理・郵便番号の区分け変更などが行われた場合は、この限りではありませんのでご注意ください。
2 都道府県CD 都道府県コード。2桁。全国地方公共団体コードの左2桁です。
3 市区町村CD 市区町村コード。5桁。JIS規格で定められた全国地方公共団体コードです。
市区町村合併、市制施行、政令指定都市への移行などが行われた場合、変更となります。
4 町域CD 町域コード。9桁。市区町村コード+独自の4桁です。
市区町村コードが変更となった場合、伴って変更となります
5 郵便番号 7桁郵便番号。半角数字。"000-0000"のように、ハイフンが入ります。
大口事業所個別の番号も含まれます。
6 事業所フラグ 事業所データの場合[ 1 ]になります。それ以外は[ 0 ]です。
※住所のデータのみ または 事業所のデータのみを抽出する場合は、このフラグにて判別してください。
7 廃止フラグ 2010年1月更新分のデータから廃止された住所には[ 1 ]になります。
それ以外は[ 0 ]になります。
※現在有効なデータのみを抽出する場合は、このフラグにて判別してください。
8 都道府県 漢字。
9 都道府県カナ 全角カタカナ。
10 市区町村 漢字。
11 市区町村カナ 全角カタカナ。
12 町域 漢字。
13 町域カナ 全角カタカナ。
14 町域補足 同じ町域が複数レコードある場合、この項目で区別します。
1.町域が空欄となるとき、以下の内容で区別します。
“(該当なし)” 他に町域の記載がないときにはここに含まれる
“(直番地)” 市区町村名のあとに番地が続く
“(全域)” 一市区町村に対し、一つの郵便番号のみ
2.同じ町域(漢字)でも町域カナが異なるとき、町域補足で区別します。
“(-チョウ)” 例:愛知県大府市北崎町 (キタサキチョウ)
“(-マチ)” 例:愛知県大府市北崎町 (キタサキマチ)
15 京都通り名 京都市内で用いられる住所表記です。町域の前に記載するもの。同じ町域が離れて存在する場合、この表記により区別が可能です。
16 字丁目 小字、町域Top1、高層ビル各階の名称が入ります。町域の後に記載するもの。
17 字丁目カナ 字丁目のカナです。
「3丁目」「9階」などアラビア数字を含む場合、「03チョウメ」「09カイ」のように2桁の0詰めとなっています(ソート時に数字順に並ばせるため)。
18 補足 住所としてそのまま利用できません。(○番地~○番地)、(その他)といった表記で記載されます。同じ町域でも郵便番号が分かれている場合、この項目で区別する場合があります。
19 事業所名 事業所に個別の郵便番号が割りあてられている場合、(6)事業所フラグに[ 1 ]が付きます。ここには大口事業所名(漢字)が入ります。
20 事業所名カナ カナは「ジギヨウシヨ」のように促音・拗音が大文字となっています。
21 事業所住所 住所は町域から番地までを収録しています(日本郵便に登録されている部分のみです)。
22 新住所CD 住所が廃止された場合(7)廃止フラグを[ 1 ]とし、移行先の住所CDが判明していればこの項目に記載します。(現在未使用です)
*/
/*
"CREATE TABLE ad_address ( id integer PRIMARY KEY, zip CHAR(7) not null, kenName VARCHAR(4) , cityName VARCHAR(12) , townName VARCHAR(25) , townMemo VARCHAR(256), kenFuri VARCHAR(8) , cityFuri VARCHAR(24) , memo VARCHAR(384))",
"CREATE INDEX idx_ad1 on ad_address (zip)");
*/
Map toMap();
long id();
String zip();
String kenName();
String cityName();
String townName();
//郵便番号辞書にtownNameがない場合、ほかの辞書や広域に含まれるすべての町の名前をここに入れる。
//0000で終わる郵便番号など
Set supplementaryTownNames();
default Set allTownNames(){
if(supplementaryTownNames().isEmpty()) {
return Set.of(townName());
}
TreeSet treeSet = new TreeSet(Comparators.longerIsFirst);
treeSet.add(townName());
treeSet.addAll(supplementaryTownNames());
return treeSet;
}
void setSupplementaryTownNames(Set townNames);
boolean hasTown();
String townMemo();
String kenFuri();
String cityFuri();
String memo();
ZipBasedAddress normalize();
// void setKenName(String value);
// void setCityName(String value);
// void setTownName(String value);
//
// void setTownMemo(String value);
// void setKenFuri(String value);
// void setCityFuri(String value);
// void setMemo(String value);
// 一町域が二以上の郵便番号で表される場合の表示 (注3) (「1」は該当、「0」は該当せず)
// public String flg1;
boolean 一町域が二以上の郵便番号で表される();
// 小字毎に番地が起番されている町域の表示 (注4) (「1」は該当、「0」は該当せず)
//public String flg2;
boolean 小字毎に番地が起番されている町域();
// 丁目を有する町域の場合の表示 (「1」は該当、「0」は該当せず)
//public String flg3;
boolean 丁目を有する町域();
// 一つの郵便番号で二以上の町域を表す場合の表示 (注5) (「1」は該当、「0」は該当せず)
//public String flg4;
boolean 一つの郵便番号で二以上の町域();
// 更新の表示(注6)(「0」は変更なし、「1」は変更あり、「2」廃止(廃止データのみ使用)) 地方
//public String flg5;
UpdateOrDelete 更新or削除();
// 変更理由
// (「0」は変更なし、「1」市政・区政・町政・分区・政令指定都市施行、「2」住居表示の実施、「3」区画整理、「4」郵便区調整等、「5」訂正、「6」廃止(廃止データのみ使用))
//public String flg6;
変更理由 変更理由();
// の次に番地がくる場合=1,else=0
//public String flg7;
boolean 町名無し次に番地が来る();
// 補正辞書データの場合、true
boolean 補正辞書データ();
public enum UpdateOrDelete{
変更なし,
変更あり,
廃止
;
public static UpdateOrDelete from(String value) {
int order = Integer.valueOf(value);
return values()[order];
}
}
public enum 変更理由{
変更なし,
市政_区政_町政_分区_政令指定都市施行,
住居表示の実施,
区画整理,
郵便区調整等,
訂正,
廃止
;
public static 変更理由 from(String value) {
int order = Integer.valueOf(value);
return values()[order];
}
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy