pirkak公式サイト|株式会社 オリエンタルアーツ
HOMEpirka TOP > pirka Tools > 主な機能・機能詳細
pirkatools主な機能
1.pirkaCheckerの拡張クラス
・pirkaChecker は、入力チェックを自動で実行しますが、1項目に複数のチェックを付けた場合、任意のメッセージを出すことが出来ません。
pirkaTools の 拡張クラスを使うことによって、各チェックに任意のエラーメッセージを指定することが出来ます。
2.メッセージ操作ユーティリティ
・メッセージの取得/整形を行うユーティリティ群です
3.プロパティファイル操作ユーティリティ
・プロパティファイルからデータを取得するユーティリティです。
項目に日本語が含まれていてもnative2asciiなどで変換せずに読み込むことが可能です。
4.ログメッセージユーティリティ
・ログメッセージに、ログインIDなどを付加する簡易フォーマッタ
・PreparedStatement から取得するSQL文の引数部(?の部分)に擬似的に値を設定して出力するユーティリティ
5.日付コンバーター
・日付と文字列の変換を行う各種コンバータです
6.日付ユーティリティ
・月初日、月末日の取得、日付間隔の算出など、日付に関するユーティティ群です。
7.文字列ユーティリティ
・全角半角変換や空白除去など、文字列に関するユーティリティ群です。
8.数値文字列変換ユーティリティ
・数値項目を文字列に変換するときの編集ユーティリティです。
pirkatools機能詳細
pirkaCheckerの拡張
・pirka の標準チェッカーを使用したばあい、ひとつの項目に複数のチェックを付けると、エラーメッセージを変更することは出来ません。
(メッセージを共通にするのであれば、addCheck(fieldName, message, Checker... checker) メソッドで任意のメッセージ指定は可能だが、チェッカー毎のメッセージ指定は不可)
PirkaToolsCheckerXxxx を利用することによって、個別に任意のメッセージが指定可能となります。

画面クラスのコンストラクタで、チェックを追加(addCheck) するときに、標準のpirkaChecker に変えて、PirkaToolsCheckerXxx を使用。
例)必須項目の場合:PirkaChecker.required → PirkaToolsCheckerRequired(msg)
//addCheck("field_itemNo", PirkaChecker.required); ← 通常のpirkaChecherの必須チェック
addCheck("field_itemNo", new PirkaToolsCheckerRequired("この項目は必須入力です"));




例)必須項目、半角英小文字のみ、5桁以上10桁以下 :
必須:PirkaChecker.required → PirkaToolsCheckerRequired
半角英字のみ:PirkaCheckerString(PirkaCheckerStringChars.LOW_ALPHABET) → PirkaToolsCheckerString
5桁以上10桁以下:PirkaCheckerLength(RANGE,minLength,maxLength) → PirkaToolsCheckerLengthRange




addCheck("field_itemNo", new PirkaToolsCheckerRequired("この項目は必須入力"),
     new PirkaToolsCheckerString("半角英小文字で入力",PirkaCheckerStringChars.LOW_ALPHABET),
     new PirkaToolsCheckerLengthRange("5~10文字で入力",5,10));

1.書式チェック(日付):PirkaToolsCheckerDate
・PirkaToolsCheckerDate(String msg)
引数の文字列をエラー時のメッセージに設定する
2.書式チェック(日時):PirkaToolsCheckerDatetime
・PirkaToolsCheckerDatetime(String msg)
引数の文字列をエラー時のメッセージに設定する
3.数値チェック(int):PirkaToolsCheckerIntValue
・PirkaToolsCheckerIntValue(String msg)
引数の文字列をエラー時のメッセージに設定する
4.文字数チェック(指定文字数):PirkaToolsCheckerLengthJust
・PirkaToolsCheckerLengthJust(String msg, int i)
第一引数の文字列をエラー時のメッセージに設定する。第二引数に指定文字数を設定する
5.文字数チェック(範囲):PirkaToolsCheckerLengthRange
・PirkaToolsCheckerLengthRange(String msg, int minLength , int maxLength)
第一引数の文字列をエラー時のメッセージに設定する。第二引数に桁数FROMを設定する。
第三引数に桁数TOを設定する
6.数値チェック(long):PirkaToolsCheckerLongValue
・PirkaToolsCheckerLongValue(String msg)
引数の文字列をエラー時のメッセージに設定する
7.半角英数チェック:PirkaToolsCheckerNumAlphabet
・PirkaToolsCheckerNumAlphabet(String msg)
引数の文字列をエラー時のメッセージに設定する
8.数値チェック:PirkaToolsCheckerNumeric
・PirkaToolsCheckerNumeric(String msg)
引数の文字列をエラー時のメッセージに設定する
9.数値範囲チェック:PirkaToolsCheckerNumericRange
・PirkaToolsCheckerNumericRange(String msg, int min, int max)
第一引数の文字列をエラー時のメッセージに設定する。第二引数に最小整数を設定する。
第三引数に最大整数を設定する
・PirkaToolsCheckerNumericRange(String msg, long min, long max)
第一引数の文字列をエラー時のメッセージに設定する。第二引数に最小整数を設定する。
第三引数に最大整数を設定する
・PirkaToolsCheckerNumericRange(String msg, BigDecimal min, BigDecimal max)
第一引数の文字列をエラー時のメッセージに設定する。第二引数に最小実数を設定する。
第三引数に最大実数を設定する
10.必須チェック:PirkaToolsCheckerRequired
・PirkaToolsCheckerRequired(String msg)
引数の文字列をエラー時のメッセージに設定する
11.SQLインジェクションチェック:PirkaToolsCheckerSqlInjection
・PirkaToolsCheckerSqlInjection(String msg)
引数の文字列をエラー時のメッセージに設定する
12.文字種チェック:PirkaToolsCheckerString
・PirkaToolsCheckerString(String msg, PirkaCheckerStringCharsIF... pirkaCheckerStringCharsList)
第一引数の文字列をエラー時のメッセージに設定する。第二引数に入力文字チェックの種類(複数可能)を設定する
13.書式チェック(時刻):PirkaToolsCheckerTime
・PirkaToolsCheckerTime(String msg)
 引数の文字列をエラー時のメッセージに設定する
14.全角文字チェック:PirkaToolsCheckerWide
・PirkaToolsCheckerWide(String msg)
引数の文字列をエラー時のメッセージに設定する
ページのTOPへ このページの先頭へ
メッセージユーティリティ
・メッセージのIDを指定すると、メッセージを返す
MessagePacker:IDをKEYにしたHashMap
MessageUtil:MessagePackerから、指定したIDのメッセージを取り出す。メッセージに可変部分がある場合は、置換することが可能(メッセージの可変文字列部分を [] で囲むこと)
・使い方
1.ログイン時等、適当なタイミングで、 MessagePacker にメッセージの一覧を格納する。
メッセージ一覧を格納した MesagePacker のオブジェクトをMessageUtilにセットして、セッションなど、参照しやすい場所に保持する。
2.必要なときに、MesagePacker からメッセージを取り出す。

例)メッセージ一覧をプロパティファイルから呼び出して、MessagePacker に格納
MessegePakerProviderFromProperties mp = new MessegePakerProviderFromProperties();
mp.setFileName("message.properties");
MessagePacker messages = mp.getAllMessage();
MessageUtil messageUtil = new MessageUtil(messages);






例)メッセージを取り出す
String msg = messageUtil.getMessage("msg0001");



※メッセージの一覧は、プロパティ、ファイル、DBなどから取得して、MessagePacker に格納してください。
※可変文字列の値に '[' が含まれると、正常に動作しません。(次期バージョンで改修予定)

ページのTOPへ このページの先頭へ
プロパティユーティリティ
・プロパティファイル(拡張子が .properties )に設定されている値を取り出すためのクラス。
Unicode変換していないプロパティファイルから値を取得することが出来ます。
(プロパティファイルをnative2ascii 等で変換する作業が不要)
EasyProperties:プロパティファイルを操作する 簡易プロパティクラス
ProjectProperties:プロパティ値を取得するためのクラス

プロパティファイルの指定方法例)
ProjectProperties.setResourceName("Work.properties");



プロパティ値の取得例1:String で初期値がない取得)取得できないときは空文字が返る
String name = ProjectProperties.getString("file.name"));



プロパティ値の取得例2:Integer で初期値=0の場合)取得できないときは、初期値が返る
String name = ProjectProperties.getInt("linecount", 0));
ページのTOPへ このページの先頭へ
ログメッセージ
1.LogMessageFormatter

   ログに出力するメッセージを生成するクラス
・メッセージの前にユーザーid等の文字列を付加したメッセージを生成する
LogFormatter(String str, String message) : 「第一引数 + " : " + 第二引数」に編集した文字列を返す
2.LogPreparedStatement
   PreparedStatement の代わりに使うことによって、LOG出力用のSQLを取得するクラス
PreparedStatementと同じに使用する
execute直前に、getLogSql() でLOG出力用のSQL文を取得する(ログ出力は、個別に実装する)
※基本的な型はカバーしていますが、DBのエンジン/バージョンによって使用できる型が変わるので、
全てには対応できていません。利用時に、注意願います。


例) テーブルにインサートする時に実行されるSQL文を、パラメータも含めて取得する
・SQL文
// 挿入用SQL
protected static final String insertSql = "insert into Usermst("
     + "userid, username, password, insertdate, updatedate"
     + ") values(?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";






・SQL実行部
PreparedStatement stmt = prepareStatement(insertSql);
stmt.setString(1, "abcdefg");
stmt.setString(2, "pirka user");
stmt.setString(3, "pw01234");

LogPreparedStatement work = (LogPreparedStatement)stmt;
String sqlForLog = work.getLogSql();









・取得できる文字列
insert into Usermst(userid, username, password, insertdate, updatedate) values(abcdefg,pirka user,pw01234,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)
※取得したSQL文は、そのまま実行は出来ません。
ページのTOPへ このページの先頭へ



日付コンバータ

DateConverter : 日付コンバータクラス

1.util.Date → 文字列 の型変換
a.util.Date → String yyyyMMdd
dateFormatType1(java.util.Date value)
引数のutil.Date を yyyyMMdd 形式に編集した文字列を返す。引数がNULLの場合は空文字を返す。
b.util.Date → String yyyy/MM/dd
dateFormatType2(java.util.Date value)
引数のutil.Date を yyyy/MM/dd 形式に編集した文字列を返す。引数がNULLの場合は空文字を返す。
c.util.Date → String yyyy-MM-dd
dateFormatType3(java.util.Date value)
引数のutil.Date を yyyy-MM-dd 形式に編集した文字列を返す。引数がNULLの場合は空文字を返す。
d.util.Date → String yyyy年MM月dd日
dateFormatType4(java.util.Date value)
引数のutil.Date を yyyy年MM月dd日 形式に編集した文字列を返す。引数がNULLの場合は空文字を返す。
e.util.Date → String yyyy/MM/dd hh:mm:ss
dateFormatType5(java.util.Date value)
引数のutil.Date を yyyy/MM/dd hh:mm:ss 形式に編集した文字列を返す。引数がNULLの場合は空文字を返す。
f.util.Date → String yyyy-MM-dd hh:mm:ss
dateFormatType6(java.util.Date value)
引数のutil.Date を yyyy-MM-dd hh:mm:ss 形式に編集した文字列を返す。引数がNULLの場合は空文字を返す。
g.util.Date → String yyyy年MM月dd日 hh時mm分ss秒
dateFormatType7(java.util.Date value)
引数のutil.Date を yyyy年MM月dd日 hh時mm分ss秒 形式に編集した文字列を返す。
引数がNULLの場合は空文字を返す。
2.util.Date → sql.Date変換
utilDateToSqlDate(java.util.Date value)
引数のutil.Date を sql.Dateに変換して返す。引数がNULLの場合はNULLを返す。
3.sql.Date → util.Date変換
sqlDateToUtilDate(java.sql.Date value)
引数のsql.Date を util.Dateに変換して返す。引数がNULLの場合はNULLを返す。
4.String → util.Date変換
strToUtilDate(String value)
引数の文字列を util.Dateに変換して返す。引数がNULLの場合、
又は引数の文字列が日付に変換できない場合はNULLを返す。
5.Calendar → util.Date変換
calToUtilDate(Calendar value)
引数のCalendar を util.Dateに変換して返す。引数がNULLの場合はNULLを返す。
6.util.Date → Calendar変換
utilDateToCal(java.util.Date value)
引数のutil.Date を Calendarに変換して返す。引数がNULLの場合はNULLを返す。
7.Timestamp → util.Date変換
TimestampToUtilDate(Timestamp value)
引数のTimestamp を util.Dateに変換して返す。引数がNULLの場合はNULLを返す。
8.util.Date → Timestamp変換
utilDateToTimestamp(java.util.Date value)
引数のutil.Date を Timestampに変換して返す。引数がNULLの場合はNULLを返す。

使用例:util.Date を yyyy/mm/dd 形式にフォーマット
String dateString = DateConverter.dateFormatType2(value);
ページのTOPへ このページの先頭へ
日付ユーティリティ
DateUtil : 日付関連ユーティリティクラス
1.月初日取得
getMonthFirstDate(java.util.Date base)
引数の日付の月の月初日の日付を取得する。引数がNULLの場合はNULLを返す。
2.月末日取得
getMonthLastDate(java.util.Date base)
引数の日付の月の月末日の日付を取得する。引数がNULLの場合はNULLを返す。
3.今日の日付取得
getToday()
現在の日付を取得する。
4.年月日加算
getAddDate(java.util.Date base, int addYear, int addMonth, int addDay)
第一引数の日付に、第二引数の年数,第三引数の月数,第四引数の日数を加算した日付を返す。
第一引数がNULLの場合は現在日付に加算する。
5.時分秒加算
getAddTime(java.util.Date base, int addTime, int addMinute, int addSecond)
第一引数の日付に、第二引数の時数,第三引数の分数,第四引数の秒数を加算した日付を返す。
第一引数がNULLの場合は現在日付に加算する。
6.0時0分0秒取得
getDateMidnight(java.util.Date base)
引数の日付の0時0分0秒を取得する。引数がNULLの場合はNULLを返す。
7.2つの日付の間隔(日数)取得
dateSpan(java.util.Date from, java.util.Date to)
第一引数の日付と第二引数の日付の間隔(日数)を取得する。引数のいづれかがNULLの時は、NULLを返す
8.2つの日付の間隔が許容範囲内かチェック
isCorrectInterval(java.util.Date from, java.util.Date to, int year, int month, int day)
第一引数の日付と第二引数の日付の間隔が第三引数の年数,第四引数の月数,第五引数の日数よりも小さければtrueを返す。引数の日付のいづれかがNULLのときは、falseを返す
9.2つの日付の大小関係が正しいかチェック
isCorrectCompDate(java.util.Date from, java.util.Date to , boolean equal)
第一引数の日付 > 第二引数の日付ならばtrueを返す。第三引数がtrueの場合、第一引数の日付と第二引数の日付が同日でもtrueを返す。引数のいづれかがNULLの時は、falseを返す
10.システム日付基準で未来日チェック
isFutureDay(java.util.Date day)
引数の日付が未来であればtrueを返す。引数がNULLのときは、falseを返す
11.システム日付基準で過去日チェック
isPastDay(java.util.Date day)
引数の日付が過去であればtrueを返す。引数がNULLのときは、falseを返す
12.曜日取得
getDayOfWeek(java.util.Date day)
引数の日付の曜日(int)を取得する。引数がNULLの場合はNULLを返す。
getDayOfWeekJ(java.util.Date day)
   引数の日付の曜日(日本語)を取得する。引数がNULLの場合はNULLを返す。
String getDayOfWeekE(java.util.Date day)
   引数の日付の曜日(英語略称表示)を取得する。引数がNULLの場合はNULLを返す。

使用例:今日の日付の月末日に45日加算した日付の取得)
java.util.Date dayAfter45 = DateUtil.getAddDate(DayeUtil.getMonthLastDate(DateUtil.getToday()));
ページのTOPへ このページの先頭へ
文字列操作ユーティリティ
StringUtil : 文字列操作ユーティリティクラス
1.前後の空白(半角/全角)除去
trim(String value)
引数の文字列の前後から半角/全角スペースを取り除いた文字列を取得する。引数がNULLの場合は空文字を返す。
2.半角英小文字を半角英大文字に変換
toUpperCase(String value)
引数の文字列のアルファベットの半角小文字を半角大文字に変換して返す。引数がNULLの場合は空文字を返す。
3.半角英大文字を半角英小文字に変換
String toLowerCase(String value)
引数の文字列のアルファベットの半角大文字を半角小文字に変換して返す。引数がNULLの場合は空文字を返す。
4.半角英数文字を全角に変換
hankakuToZenkaku(String value)
引数の文字列の半角英数を全角英数に変換して返す。引数がNULLの場合は空文字を返す。
5.全角英数文字を半角に変換
zenkakuToHankaku(String value)
引数の文字列の全角英数を半角英数に変換して返す。引数がNULLの場合は空文字を返す。
6.半角カタカナを全角カタカナに変換
hankakuToZenkakuKatakana(String value)
引数の文字列の半角カタカナを全角カタカナに変換して返す。引数がNULLの場合は空文字を返す。
7.nullをブランクに変換
stringNullChange(String value)
引数の文字列を返す。引数がNULLの場合は空文字を返す。

使用例:アルファベットの大文字を小文字に変換した文字列を取得
String cValue = StringUtil.toLowerCase(value);
ページのTOPへ このページの先頭へ
数値文字列フォーマット
DataFormat : 数値編集クラス
1.数値前zero
insertZero(String value, int max)
第一引数の文字列が第二引数の指定桁数に満たない場合、
指定桁数になるように先頭に「0」を追加した文字列を返す。引数がNULLの場合は空文字を返す。
2.数値カンマ区切り
formatAddComma(String value)
引数をカンマ編集して返す。引数がNULLの場合は空文字を返す。
引数に半角数値と小数点以外の文字が含まれる場合は引数の文字列を返す。
ページのTOPへ このページの先頭へ
oriental arts pirka