2009-09-01から1ヶ月間の記事一覧

publicでないアクセス

最近、Wicket を学び始め少し感動したのは、Wicketコンポーネント、モデルである。 PropertyModel のおかげで private フィールドをもつオブジェクトを コンポーネントが取得して利用できること。 例えば、Foo クラスを ListView コンポーネントの populateI…

Wicket+Google guice+iBATIS

Wicket で Google guice によるロジックをDI(インジェクト)で実行、 そして、iBATIS の SQLMap の処理も、Wicket 上で動作する Google guice のインジェクト される結果により実行するパターンである。 このパターン処理の流れを定義するのに、XML等…

Wicket使用を準備

もう、他人が作ったシステムで、Seasar や Spring、 などを使う事が優先された、食い散らかしのような案件を引き継いだり、 そこで発生するSeasar や Spring のような設定ファイル地獄は嫌だ。 ロジック系で外側リソース管理で妥協できるのはSQLぐらい。 や…

JNDI コンテキスト作成してみる

先日の 記事で書いた AbstractXmlHandler と XmlParser を利用して、DBアクセスの為のJNDI、 コンテキスト作成をリメイクした。 バッチ処理と、どのWeb環境、Tomcat, JBoss , WebLogic でも自分で DataSource コンテキストを管理すれば、どこでも1…

WTPでDataSource

Eclipse WTP で、DataSource を使う場合、 WebContent/WEB-INF/META-INF の下に、context.xml を置く。 Tomcat の場合、、 <Context docBase="projectname" path="/Foo" reloadable="true" source="org.eclipse.jst.j2ee.server:sjp"> </context>

Teeda HTML エスケープ文字の無効化

自分はSeasarが嫌いだ。だから、あまり書きたくない。 <html xmlns:te="http://www.seasar.org/teeda/extension" xmlns:f="http://java.sun.com/jsf/core"xml:lang="ja" lang="ja"> <span id="jScriptTag" te:escape="false"/> で、span タグ ID が、jScriptTag の置き換えでエスケープされないように。</span></html>

ListMultimap の置換

Google の ListMultimap の List<V> replaceValues(K key,Iterable values) が、置き換え対象が、Iterable であり、結局はKeyに紐つく全体を置き換えることに なり、リストの1要素だけ置き換えたい場合に不便である。ArrayListMultimap は、finalなので 継承は</v>…

XML読込みを整理

XML読込みを整理してみる。ResourceBundle使用の恩恵があるはず。 /** * XML 解析インターフェース. * * AbstractXmlHandler の createParser メソッドで、XMLファイル baseName と * AbstractXmlHandler 継承したインスタンスを生成して作成される。 * * Xm…

Predicate に感動

Google collection Library で感動したのは、 com.google.common.base.Predicate com.google.common.base.Function com.google.common.collect.Collections2 である。 以下、サンプル、User Beanクラスに対して import java.util.Date; public class User{ p…

MultiSet

Google collection のMultiSet → 統計処理に便利 Multiset<String> counter = ConcurrentHashMultiset.create(); counter.add("Red"); counter.add("Blue",2); counter.add("Red",3); counter.add("Green"); counter.add("Red"); //Set<String> colors = counter.elementSet(</string></string>…

2重のMap

ネストしたMap、つまりMapに格納される値がMapで構成されるMap を扱うのは面倒だったりする。 そこで考えたのが、以下のインターフェースと実装クラスである。 import java.util.Collection; import java.util.Map; import java.util.Set; import java.util.…

MultiMap

Google colleciton Library の使用は、とにかく待望のMultimapであろう。 Multimap<Integer,String> map = ArrayListMultimap.create(); map.put(1,"1A"); map.put(1,"1B"); map.put(2,"2A"); map.put(2,"2C"); map.put(2,"2B"); map.put(3,"3A"); map.put(4,"4A"); map.put(</integer,string>…

NULL可能性ありの比較

NULLの可能性のあるオブジェクトをeqaulsで比較するとき、 昔は、ごちゃごちゃとif文を書いたものだ。 でも今は。。。 public static <T> boolean eqauls(T t1,T t2){ if (t1==null && t2==null) return true; if (t1 != null && t2 != null) return t1.equals(</t>…

挿入制限つきのコレクション

Google collection Library の Predicate を読んで、思いついたのがこれ。 ソースは static メソッドを提供するものと、3個の interface と public でないクラス2個の 合計6個 -------------------------- import java.util.Comparator; import java.util…

Google collection Libraryは未だRC

ようやく使ってみる気になってきた Google collection Library 6月2日にRelease Candidate 2 、RC2版が出ている。 以前、このライブラリを使用してた人がいたが、どうしてるだろう。 メソッドも少し変わったみたいだが。。。 こんなものもある、、 com.googl…