use of jp.ossc.nimbus.util.CsvArrayList in project nimbus by nimbus-org.
the class CsvArrayListTest method testSetEscapeString.
public void testSetEscapeString() throws Exception {
CsvArrayList ary = new CsvArrayList();
ary.setEscapeString("@");
ary.split("nakano@,hoge@,fuga@,,hirotaka@,", ",");
assertEquals(ary.size(), 2);
assertEquals(ary.getStr(0), "nakano,hoge,fuga,");
assertEquals(ary.getStr(1), "hirotaka,");
String tmp = ary.getStr(0);
if (!tmp.endsWith(",")) {
throw new Exception();
}
tmp = ary.getStr(1);
if (!tmp.endsWith(",")) {
throw new Exception();
}
ary.split("nakano@@,,hirotaka@@,", ",");
assertEquals(ary.size(), 4);
tmp = ary.getStr(0);
if (!tmp.endsWith("@")) {
throw new Exception();
}
tmp = ary.getStr(1);
if (tmp.length() != 0) {
throw new Exception();
}
tmp = ary.getStr(2);
if (!tmp.endsWith("@")) {
throw new Exception();
}
}
use of jp.ossc.nimbus.util.CsvArrayList in project nimbus by nimbus-org.
the class CachedPerformanceStatisticsService method toAry.
/**
* Listデータ取得<BR>
* 指定のソートキーでソートを行う。<BR>
* @param sortKey ソートキー
* @param isUpset 昇順、降順の指定
* @return ArrayList ソート統計情報
*/
public ArrayList toAry(int sortKey, boolean isUpset) {
ArrayList sortList = new ArrayList();
ArrayList retAry = new ArrayList();
Hashtable tb = null;
synchronized (this) {
tb = (Hashtable) mHash.clone();
}
/**
* データリストから一項目づつ取り出す。
*/
for (Enumeration enumeration = tb.elements(); enumeration.hasMoreElements(); ) {
PerformanceRecord item = (PerformanceRecord) enumeration.nextElement();
// キーソートメソッドをコール
if (sortKey == C_NAME) {
_sortList(sortList, item, sortKey, isUpset);
} else {
_sortListByVal(sortList, item, sortKey, isUpset);
}
}
/**
* キーソートリストから出力文字配列にデータを転記
*/
for (ListIterator iterator = sortList.listIterator(); iterator.hasNext(); ) {
// KEY文字データ取得・CSV分解
String sortItem = (String) iterator.next();
CsvArrayList keyAry = new CsvArrayList();
keyAry.split(sortItem, ";");
// キーでHASHから対象パフォーマンスマネージャを取り出す。
PerformanceRecord item = (PerformanceRecord) mHash.get(keyAry.getStr(0));
if (item != null) {
retAry.add(item);
}
}
return retAry;
}
use of jp.ossc.nimbus.util.CsvArrayList in project nimbus by nimbus-org.
the class CachedPerformanceStatisticsService method _sortListByVal.
/**
* ソートメソッド<BR>
* 指定のソートキーでソートを行う。<BR>
* @param sortList ソート結果格納配列
* @param item PerformanceMangerオブジェクト
* @param sortKey ソートキー
* @param isUpset 昇順、降順の指定
*/
private void _sortListByVal(ArrayList sortList, PerformanceRecord item, int sortKey, boolean isUpset) {
// ログを取得する
String cmpKey = null;
if (sortKey == C_NAME) {
cmpKey = item.getResourceId();
} else if (sortKey == C_BEST) {
Long tmpLong = new Long(item.getBestPerformance());
cmpKey = tmpLong.toString();
} else if (sortKey == C_WORST) {
Long tmpLong = new Long(item.getWorstPerformance());
cmpKey = tmpLong.toString();
} else if (sortKey == C_AVERAGE) {
Long tmpLong = new Long(item.getAveragePerformance());
cmpKey = tmpLong.toString();
} else if (sortKey == C_COUNT) {
Long tmpLong = new Long(item.getCallTime());
cmpKey = tmpLong.toString();
}
/**
* sortデータ文字列を作成する<BR>
* resourceId + ";" 比較データ
*/
String rscId = item.getResourceId() + ";" + cmpKey;
int entryCnt = 0;
/**
* sortListにソートインサートする。
*/
for (ListIterator iterator = sortList.listIterator(); iterator.hasNext(); entryCnt++) {
// リストのコンペア項目を取り出す。
String destCmp = (String) iterator.next();
CsvArrayList parse = new CsvArrayList();
parse.split(destCmp, ";");
// コンペア
int ret = 0;
if (sortKey == C_NAME) {
ret = cmpKey.compareTo(parse.getStr(1));
} else {
long value = Long.valueOf(parse.getStr(1)).longValue();
long cmpvalue = Long.valueOf(cmpKey).longValue();
if (cmpvalue == value) {
ret = 0;
} else if (cmpvalue < value) {
ret = -1;
} else {
ret = 1;
}
}
if (isUpset) {
if (ret <= 0) {
break;
}
} else {
if (ret >= 0) {
break;
}
}
}
sortList.add(entryCnt, rscId);
}
use of jp.ossc.nimbus.util.CsvArrayList in project nimbus by nimbus-org.
the class CachedPerformanceStatisticsService method toStringAry.
//
/**
* 文字出力メソッド<BR>
* 指定のソートキーでソートを行う。<BR>
* @param sortKey ソートキー
* @param isUpset 昇順、降順の指定
* @return String[] ソート結果
*/
public String[] toStringAry(int sortKey, boolean isUpset) {
// ログを取得する
ArrayList sortList = new ArrayList();
CsvArrayList retAry = new CsvArrayList();
Hashtable tb = null;
synchronized (this) {
tb = (Hashtable) mHash.clone();
}
/**
* データリストから一項目づつ取り出す。
*/
for (Enumeration enumeration = tb.elements(); enumeration.hasMoreElements(); ) {
PerformanceRecord item = (PerformanceRecord) enumeration.nextElement();
// キーソートメソッドをコール
_sortList(sortList, item, sortKey, isUpset);
}
/**
* キーソートリストから出力文字配列にデータを転記
*/
for (ListIterator iterator = sortList.listIterator(); iterator.hasNext(); ) {
// KEY文字データ取得・CSV分解
String sortItem = (String) iterator.next();
CsvArrayList keyAry = new CsvArrayList();
keyAry.split(sortItem, ";");
// キーでHASHから対象パフォーマンスマネージャを取り出す。
PerformanceRecord item = (PerformanceRecord) mHash.get(keyAry.getStr(0));
// 出力リストにパフォーマンス文字格納
if (item != null) {
retAry.add(item.toString());
} else {
}
}
/**
* 出力
*/
String[] retStrAry = retAry.toStringAry();
return retStrAry;
}
use of jp.ossc.nimbus.util.CsvArrayList in project nimbus by nimbus-org.
the class CachedPerformanceStatisticsService method _sortList.
//
/**
* ソートメソッド<BR>
* 指定のソートキーでソートを行う。<BR>
* @param sortList ソート結果格納配列
* @param item PerformanceMangerオブジェクト
* @param sortKey ソートキー
* @param isUpset 昇順、降順の指定
*/
private void _sortList(ArrayList sortList, PerformanceRecord item, int sortKey, boolean isUpset) {
// ログを取得する
String cmpKey = null;
if (sortKey == C_NAME) {
cmpKey = item.getResourceId();
} else if (sortKey == C_BEST) {
Long tmpLong = new Long(item.getBestPerformance());
cmpKey = tmpLong.toString();
} else if (sortKey == C_WORST) {
Long tmpLong = new Long(item.getWorstPerformance());
cmpKey = tmpLong.toString();
} else if (sortKey == C_AVERAGE) {
Long tmpLong = new Long(item.getAveragePerformance());
cmpKey = tmpLong.toString();
} else if (sortKey == C_COUNT) {
Long tmpLong = new Long(item.getCallTime());
cmpKey = tmpLong.toString();
}
/**
* sortデータ文字列を作成する<BR>
* resourceId + ";" 比較データ
*/
String rscId = item.getResourceId() + ";" + cmpKey;
// rscId = rscId + ";" + cmpKey ;
int entryCnt = 0;
/**
* sortListにソートインサートする。
*/
for (ListIterator iterator = sortList.listIterator(); iterator.hasNext(); entryCnt++) {
// リストのコンペア項目を取り出す。
String destCmp = (String) iterator.next();
CsvArrayList parse = new CsvArrayList();
parse.split(destCmp, ";");
// コンペア
int ret = cmpKey.compareTo(parse.getStr(1));
if (isUpset) {
if (ret <= 0) {
break;
}
} else {
if (ret >= 0) {
break;
}
}
}
sortList.add(entryCnt, rscId);
}
Aggregations