JpPrefecture::all()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 7
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace JpPrefecture;
4
5
use JpPrefecture\Exception\InvalidPrefectureException;
6
7
/**
8
 * Class Utility
9
 * @package JpPrefecture
10
 */
11
class JpPrefecture
12
{
13
    /**
14
     * @param $code
15
     * @return \JpPrefecture\PrefectureInterface
16
     * @throws \JpPrefecture\Exception\InvalidPrefectureException
17
     */
18
    public static function get($code)
19
    {
20
        foreach (self::all() as $prefecture) {
21
            if ($prefecture->getCode() == $code) {
22
                return $prefecture;
23
            }
24
        }
25
26
        throw new InvalidPrefectureException();
27
    }
28
29
    /**
30
     * @param $code
31
     * @return bool
32
     */
33
    public static function exists($code)
34
    {
35
        try {
36
            self::get($code);
37
            return true;
38
        } catch (InvalidPrefectureException $e) {
39
            return false;
40
        }
41
    }
42
43
    /**
44
     * @return \JpPrefecture\PrefectureInterface[]
45
     */
46
    public static function all()
47
    {
48
        $prefectures = self::asList();
49
50
        return array_map(function ($code, $name) {
51
            return new Prefecture($code, $name);
52
        }, array_keys($prefectures), $prefectures);
53
    }
54
55
    /**
56
     * @return array
57
     */
58
    public static function asList()
59
    {
60
        return array(
61
            1 => '北海道',
62
            2 => '青森県',
63
            3 => '岩手県',
64
            4 => '宮城県',
65
            5 => '秋田県',
66
            6 => '山形県',
67
            7 => '福島県',
68
            8 => '茨城県',
69
            9 => '栃木県',
70
            10 => '群馬県',
71
            11 => '埼玉県',
72
            12 => '千葉県',
73
            13 => '東京都',
74
            14 => '神奈川県',
75
            15 => '新潟県',
76
            16 => '富山県',
77
            17 => '石川県',
78
            18 => '福井県',
79
            19 => '山梨県',
80
            20 => '長野県',
81
            21 => '岐阜県',
82
            22 => '静岡県',
83
            23 => '愛知県',
84
            24 => '三重県',
85
            25 => '滋賀県',
86
            26 => '京都府',
87
            27 => '大阪府',
88
            28 => '兵庫県',
89
            29 => '奈良県',
90
            30 => '和歌山県',
91
            31 => '鳥取県',
92
            32 => '島根県',
93
            33 => '岡山県',
94
            34 => '広島県',
95
            35 => '山口県',
96
            36 => '徳島県',
97
            37 => '香川県',
98
            38 => '愛媛県',
99
            39 => '高知県',
100
            40 => '福岡県',
101
            41 => '佐賀県',
102
            42 => '長崎県',
103
            43 => '熊本県',
104
            44 => '大分県',
105
            45 => '宮崎県',
106
            46 => '鹿児島県',
107
            47 => '沖縄県',
108
        );
109
    }
110
}