# -*- coding: cp932 -*-
"""このソースコードは blanco Frameworkによって自動生成されています。
"""
class SampleZenKatakana2HiraganaStringConverter:
    """全角カタカナ→全角ひらがなの文字列変換のサンプル。blancoStringConverterの実装には影響しません。
    """

    """文字列置換定義。
    """
    STRING_CONVERT_DEF = [[ 'ヴ', 'う゛' ]
, [ 'ァ', 'ぁ' ]
, [ 'ア', 'あ' ]
, [ 'ィ', 'ぃ' ]
, [ 'イ', 'い' ]
, [ 'ゥ', 'ぅ' ]
, [ 'ウ', 'う' ]
, [ 'ェ', 'ぇ' ]
, [ 'エ', 'え' ]
, [ 'ォ', 'ぉ' ]
, [ 'オ', 'お' ]
, [ 'カ', 'か' ]
, [ 'ガ', 'が' ]
, [ 'キ', 'き' ]
, [ 'ギ', 'ぎ' ]
, [ 'ク', 'く' ]
, [ 'グ', 'ぐ' ]
, [ 'ケ', 'け' ]
, [ 'ゲ', 'げ' ]
, [ 'コ', 'こ' ]
, [ 'ゴ', 'ご' ]
, [ 'サ', 'さ' ]
, [ 'ザ', 'ざ' ]
, [ 'シ', 'し' ]
, [ 'ジ', 'じ' ]
, [ 'ス', 'す' ]
, [ 'ズ', 'ず' ]
, [ 'セ', 'せ' ]
, [ 'ゼ', 'ぜ' ]
, [ 'ソ', 'そ' ]
, [ 'ゾ', 'ぞ' ]
, [ 'タ', 'た' ]
, [ 'ダ', 'だ' ]
, [ 'チ', 'ち' ]
, [ 'ヂ', 'ぢ' ]
, [ 'ッ', 'っ' ]
, [ 'ツ', 'つ' ]
, [ 'ヅ', 'づ' ]
, [ 'テ', 'て' ]
, [ 'デ', 'で' ]
, [ 'ト', 'と' ]
, [ 'ド', 'ど' ]
, [ 'ナ', 'な' ]
, [ 'ニ', 'に' ]
, [ 'ヌ', 'ぬ' ]
, [ 'ネ', 'ね' ]
, [ 'ノ', 'の' ]
, [ 'ハ', 'は' ]
, [ 'バ', 'ば' ]
, [ 'パ', 'ぱ' ]
, [ 'ヒ', 'ひ' ]
, [ 'ビ', 'び' ]
, [ 'ピ', 'ぴ' ]
, [ 'フ', 'ふ' ]
, [ 'ブ', 'ぶ' ]
, [ 'プ', 'ぷ' ]
, [ 'ヘ', 'へ' ]
, [ 'ベ', 'べ' ]
, [ 'ペ', 'ぺ' ]
, [ 'ホ', 'ほ' ]
, [ 'ボ', 'ぼ' ]
, [ 'ポ', 'ぽ' ]
, [ 'マ', 'ま' ]
, [ 'ミ', 'み' ]
, [ 'ム', 'む' ]
, [ 'メ', 'め' ]
, [ 'モ', 'も' ]
, [ 'ャ', 'ゃ' ]
, [ 'ヤ', 'や' ]
, [ 'ュ', 'ゅ' ]
, [ 'ユ', 'ゆ' ]
, [ 'ョ', 'ょ' ]
, [ 'ヨ', 'よ' ]
, [ 'ラ', 'ら' ]
, [ 'リ', 'り' ]
, [ 'ル', 'る' ]
, [ 'レ', 'れ' ]
, [ 'ロ', 'ろ' ]
, [ 'ヮ', 'ゎ' ]
, [ 'ワ', 'わ' ]
, [ 'ヰ', 'ゐ' ]
, [ 'ヱ', 'ゑ' ]
, [ 'ヲ', 'を' ]
, [ 'ン', 'ん' ]
, [ 'ヵ', 'か' ]
, [ 'ヶ', 'け' ]
 ]

    def convert(self, argCheck):
        """文字列変換定義に従い、文字列を変換します。

        self -- このメソッドを含むクラス自身。
        argCheck -- 変換対象の文字列。
        return -- 文字列変換定義にしたがって変換された文字列。変換定義にひとつも合致しない場合には元の文字列が戻ります。
        """
        if argCheck is None:
            raise "メソッド[convert]のパラメータ[argCheck]にnullが与えられました。しかし、このパラメータにnullを与えることはできません。"
        #end

        wrkString = ''
        index = 0
        while index < len(argCheck):
            look = argCheck[index:]
            isFound = False
            for indexDef in range(len(self.STRING_CONVERT_DEF)):
                if look.find(self.STRING_CONVERT_DEF[indexDef][0]) == 0:
                    wrkString += self.STRING_CONVERT_DEF[indexDef][1]
                    index += len(self.STRING_CONVERT_DEF[indexDef][0])
                    isFound = True
                    break
                #end
            #end
            if isFound == False:
                wrkString += unicode(argCheck[index:])[0].encode()
                index = index + len(unicode(argCheck[index:])[0].encode())
            #end
        #end

        return wrkString
    #end
#end
