■概要
別システムから応答された想定の警告(WARN)およびエラー(ERROR)番号を自システムの共通番号に変更する処理をEnumで実装する。
・警告、エラー番号対応表
変換前番号 | 変換後番号 |
---|---|
WARN1 | 0001 |
WARN2 | 0002 |
WARN3 | 0003 |
WARN4 | 0004 |
WARN5 | 0005 |
ERROR1 | 1001 |
ERROR2 | 1002 |
ERROR3 | 1003 |
ERROR4 | 1004 |
ERROR5 | 1005 |
ERROR6 | 1006 |
ERROR7 | 1007 |
ERROR8 | 1008 |
ERROR9 | 1009 |
ERROR10 | 1010 |
上記以外(想定外) | 9999 |
■フローチャート
Enum内の警告およびエラー変換処理について、フローチャートを以下に示す。
■サンプルコード
・WarnErrorCode.java
package constant;
public enum WarnErrorCode {
// Warning
WARN1("WARN1", "0001"),
WARN2("WARN2", "0002"),
WARN3("WARN3", "0003"),
WARN4("WARN4", "0004"),
WARN5("WARN5", "0005"),
// Error
ERROR1("ERROR1", "1001"),
ERROR2("ERROR2", "1002"),
ERROR3("ERROR3", "1003"),
ERROR4("ERROR4", "1004"),
ERROR5("ERROR5", "1005"),
ERROR6("ERROR6", "1006"),
ERROR7("ERROR7", "1007"),
ERROR8("ERROR8", "1008"),
ERROR9("ERROR9", "1009"),
ERROR10("ERROR10", "1010");
// 変換前WarnErrorコード
private final String inputCode;
// 変換後WarnErrorコード
private final String outputCode;
/**
* WarnErrorコード変換Enumコンストラクタ
*
* @param inputCode: 変換前WarnErrorコード
* @param outputCode: 変換後WarnErrorコード
*/
WarnErrorCode(String inputCode, String outputCode) {
this.inputCode = inputCode;
this.outputCode = outputCode;
}
// getter: 変換前WarnErrorコード
public String getInputCode() {
return inputCode;
}
// getter: 変換後WarnErrorコード
public String getOutputCode() {
return outputCode;
}
/**
* Warn, Error コードコンバート処理
*
* @param targetCode: 変換対象コード
* @return 変換後コード
*/
public static String getConvertCode(String targetCode) {
// enumの要素数分繰り返し
for (WarnErrorCode warnErrorCode : values()) {
// 変換対象コードが変換前コードに含まれている場合
if (warnErrorCode.inputCode.equals(targetCode)) {
// 変換後コードを返却
return warnErrorCode.outputCode;
}
}
// 変換対象コードが変換前コードに含まれていない場合は、想定外エラーコードを返す
return "9999";
}
}
・WarnErrorCodeMain.java
import constant.WarnErrorCode;
public class WarnErrorCodeMain {
public static void main(String[] args) {
// Warnサンプル
String warnSampleCode3 = "WARN3";
System.out.printf("warnSampleCode3(before): %s%n", warnSampleCode3);
System.out.printf("warnSampleCode3(after): %s%n",
WarnErrorCode.getConvertCode(warnSampleCode3));
System.out.println("###########################");
// Errorサンプル
String errorSampleCode7 = "ERROR7";
System.out.printf("errorSampleCode7(before): %s%n", errorSampleCode7);
System.out.printf("errorSampleCode7(after): %s%n",
WarnErrorCode.getConvertCode(errorSampleCode7));
System.out.println("###########################");
// 想定外サンプル
String otherSampleCode = "AAAAAA";
System.out.printf("otherSampleCode(before): %s%n", otherSampleCode);
System.out.printf("otherSampleCode(after): %s%n",
WarnErrorCode.getConvertCode(otherSampleCode));
System.out.println("###########################");
}
}
■実行結果
変換前の番号が、「WARN3」、「ERROR7」、「AAAAAA(想定外)」に対する実行結果を以下に示す。
warnSampleCode3(before): WARN3
warnSampleCode3(after): 0003
###########################
errorSampleCode7(before): ERROR7
errorSampleCode7(after): 1007
###########################
otherSampleCode(before): AAAAAA
otherSampleCode(after): 9999
###########################
コメント