/** * @version $Id: TermPart.java 1839 2014-04-16 02:33:51Z yukihiro-kinjyo $ * * 2011/08/03 17:49:04 * @author shingo-takahashi * * Copyright 2011-2014 TIDAコンソーシアム All Rights Reserved. */ package com.tida_okinawa.corona.io.model.dic; /** * 用語に付随する品詞区分を定義した列挙型 * * @author shingo-takahashi */ public enum TermPart { // TODO NONEを0にする /** 特殊 */ SPECIAL(1, "特殊"), /** 動詞 */ VERB(2, "動詞"), /** 形容詞 */ ADJECTIVE(3, "形容詞"), /** 判定詞 */ DETERMINE(4, "判定詞"), /** 助動詞 */ AUXILIARY_VERB(5, "助動詞"), /** 名詞 */ NOUN(6, "名詞"), /** 指示詞 */ DEMONSTRATIVE(7, "指示詞"), /** 副詞 */ ADVERB(8, "副詞"), /** 助詞 */ POSTPOSITIONAL_PARTICLE(9, "助詞"), /** 接続詞 */ CONJUNCTION(10, "接続詞"), /** 連体詞 */ RENTAI(11, "連体詞"), /** 感動詞 */ INTERJECTION(12, "感動詞"), /** 接頭辞 */ PREFIX(13, "接頭辞"), /** 接尾辞 */ SUFFIX(14, "接尾辞"), /** 未定義語 */ UNKNOWN(15, "未定義語"), /** NONE */ NONE(-1, ""); /** * 検索性を上げるためのフィールド */ private static final TermPart[] ARRAY = { NONE, SPECIAL, VERB, ADJECTIVE, DETERMINE, AUXILIARY_VERB, NOUN, DEMONSTRATIVE, ADVERB, POSTPOSITIONAL_PARTICLE, CONJUNCTION, RENTAI, INTERJECTION, PREFIX, SUFFIX, UNKNOWN }; private int intValue; private String name; /** このクラスは列挙型なのでユーザーがインスタンス化できない */ private TermPart(final int anIntValue, String name) { this.name = name; this.intValue = anIntValue; } /** * 定義された整数値を取得する * * @return 列挙型で定義された整数値 */ public int getIntValue() { return intValue; } /** * 定義された名前を取得する * * @return 名前を示す文字列 */ public String getName() { return name; } /** * 整数値から列挙型定数を取得する.<br /> * {@link #NONE}のintValueは-1だが、anIntValueに0を指定した時も、 {@link #NONE}が返る<br /> * intValueと一致しない場合も{@link #NONE}を返す * * @param anIntValue * 定義する整数値 * @return 列挙型定数 */ public static TermPart valueOf(final int anIntValue) { if ((anIntValue > 0) && (anIntValue < ARRAY.length)) { return ARRAY[anIntValue]; } return NONE; } /** * 名前から列挙型定数を取得する * * @param name * 定義する名前 * @return 列挙型定数 */ public static TermPart valueOfName(String name) { for (TermPart d : values()) { if (d.name.equals(name)) { return d; } } return NONE; } }