Groovy
@Delegate アノテーションをチョット使ってみて思ったことをメモ。普通の使い方 まずは普通の使い方。 Wrapper1 クラスに Inner1 型のプロパティ inner を定義して、それに処理を委譲したいときは以下のように書きます: class Wrapper1{ @Delegate Inner1 i…
Groovy の「?.」演算子*1について、ちょっと気になったことがあったのでメモ。まず、以下のようなクラスがあるとしましょう: class Foo{ def getNull(){ return null } } getNull() メソッドは常に null を返します。 このメソッドの戻り値に対して「?.」演…
前回のビルダーを拡張し、今回は org.dom4j.Element ではなく org.dom4j.Document を構築するビルダーにします(一覧)。サンプル・コード サンプル・コードはこんな感じ。 def builder = new SimpleDom4jBuilder() def doc = builder.table(customer:'c', i…
groovy.util.NodeBuilder の練習のため、dom4j の XML ドキュメントオブジェクトを構築するビルダーを作ってみます(一覧)。 簡単のため、以下の条件を課すことにします: 名前空間はサポートしない 構築後に返されるオブジェクトは org.dom4j.Element オブ…
今回は Cell に定義されているプロパティ。Cell に定義されているプロパティ HSSFCell と XSSFCell に共通のプロパティ。 分類は拙者の独断と偏見。 プロパティ名 プロパティ値の型 Read(Getter) Write(Setter) class java.lang.Class ☆ × sheetrowrowIndexc…
今回は Row に定義されているプロパティです。Row に定義されているプロパティ HSSFRow と XSSFRow に共通のプロパティ。 分類は拙者の独断と偏見。 プロパティ名 プロパティ値の型 Read(Getter) Write(Setter) class java.lang.Class ☆ × sheet org.apache.…
前回に続いて、今回は Sheet のプロパティを見ていきます。Sheet に定義されているプロパティ HSSFSheet と XSSFSheet に共通のプロパティ。 分類は拙者の独断と偏見。 プロパティ名 プロパティ値の型 Read(Getter) Write(Setter) class java.lang.Class ☆ ×…
「Apache POI」に定義されているクラス群、プロパティがたくさんあってこんがらがってきたので、表にまとめてみます。 ここでの「プロパティ」とは、Groovy でのプロパティとします。Workbook のインスタンスには HSSFWorkbook と XSSFWorkbook がありますが…
今回は CellStyle と Font に定義されているプロパティ。CellStyle, Font に定義されているプロパティ CellStyle プロパティ名 プロパティ値の型 Read(Getter) Write(Setter) class java.lang.Class ☆ × fontfontIndex Fontshort ×☆ ☆× alignmentverticalAli…
今回はインデックスを介してプロパティ値にアクセスするメソッドが宣言されている場合です。 まぁ、java.util.List みたいなものを想像していただければよいかと。 class Hoge{ Object getFoo(int i){...} void setFoo(int i, Object value){...} } みたいな…
今回はアクセッサ (getter) メソッドとミューテータ (setter) メソッドで異なる型が宣言されている場合を見ていきます。対象とするオブジェクトの定義 プロパティを取得するオブジェクトの定義。Java オブジェクト アクセッサとミューテータで型が異なるよう…
前回に続き、今回はメソッドが定義されている Java オブジェクト、Groovy オブジェクトに対してプロパティを取得して見ます。対象とするオブジェクトの定義 プロパティを取得するオブジェクトの定義。Java オブジェクト Java クラスのメソッドに定義できるス…
前回に見たプロパティの取得方法を用いて、今回から、いろいろな Java オブジェクト、Groovy オブジェクトに対してプロパティを取得して見ます。Java クラス、Groovy クラスではそれぞれ Java クラスでは「class」 Groovy クラスでは「class」、「metaClass…
Groovy を使ってると「プロパティ」って凄く便利ですが、最近、どれがプロパティとして認識されるのかが(拙者の中で)ゴッチャ煮なってきたなう。 自分でクラスを設計する分には、分かりづらい定義を避ければいいんでしょうけど、既にある(Java) ライブラリ…
『MarkupBuilder でスタイルシートを書いてみた』ついでに、MarkupBuidler で RELAX NG スキーマも書いてみました。RELAX NG には、XML 形式でない簡略化された記法『RELAX NG Compact Syntax』というのがあるのであえて MarkupBuilder を使う必要はないかも…
XSLT スタイルシートは(特にロジックなどを)書くのが結構大変。 以前から RELAX NG Compact Syntax のような簡略記法がないかなぁと思っていましたが、Groovy の Builder を使うとこの目的が達せられるかと思いチョット試してみました。変換対象の XML デ…
「『Groovy イン・アクション』 日本語サポートサイト」 「『Groovy in Action』 の Web ページ」 Chapter 1 : Groovy への道 「Groovy 公式サイト」 「Groovy 関連プロジェクト」 「Fibonacci Quarterly」 IDE サポート 「JetGroovy」 「Eclipse Plugin」 …
「Groovy リスナーオブジェクト」 「Jeremy Rayner が書いた簡単な HTTP サーバー」 「Jakarta Commons CLI」 依存性解決パッケージ 「Maven」 「Ivy」 「Quartz スケジューラ」 「HtmlUnit」 「JavaMail チュートリアル」 Microsoft Office 「POI」 「JExce…
Ant 「Ant」 「Ant manual」 「Gant」 「Swing チュートリアル」 「ULC」 「DSL」 「Serializable 型」 「Servlet API」 Groovy の Web 関連技術 freshmeat 「GvTags」 「Groovy Tapestry」 「Biscuit: A Simply Groovy Wiki」 「HyperSQL」 Ted Neward 「OR…
「宇宙船演算子」 「Value Object」 正規表現 「Java の正規表現」 「正規表現を対話的にテストするオンライン・アプリケーション」 「Quick Sort」 Paul Graham 「Revenge of the Nerds」 (言語がクロージャに提供するスコープについての規則の有用度) An…
以前に Maven2 プロジェクトで Groovy を使用する方法を見ました(一覧)。 ただし、Groovy は便利で、Java と Groovy がシームレスに連携できるとはいえ、いきなり Java プロジェクトを Groovy プロジェクトに変更できるとは限りません。そこで、メインコー…
GMaven プラグイン・プロジェクトの pom.xml は結構複雑なので(以前の記事)毎回書くのは大変です。 そこで Groovy の練習を兼ねて、テンプレートを生成するスクリプトを書いてみました(GMavenPluginArchetype.groovy)*1(一覧)。スクリプトの実行 上記…
今回はプラグインのインストール&使用とか(一覧)。GroovyMojo クラス GMaven プラグインで行う処理を実装するのは GroovyMojo のサブクラスです。 なので、GMaven プラグインには最低1つは以下のようなクラス(GroovyMojo クラス)を作成する必要がありま…
今回は GMaven プラグイン・プロジェクト(Groovy による Maven2 プラグインを開発するプロジェクト)の pom.xml を見ていきます(一覧)。まずその前に、お詫びと訂正を。 別に拙者が悪いわけではないんですけど。 前回見た GMaven プラグイン・プロジェク…
今回から何回かにわたって、Groovy を使った Maven2 プラグイン(以下「GMaven プラグイン」)の開発方法を見ていきます(Implemeting Maven Plugins 参照)。 今回は GMaven プラグイン・プロジェクトの生成方法(一覧)。 GMaven プラグイン・プロジェクト…
GMaven の全ての機能を紹介するのは面倒なので、GMaven できることを列挙してみました(一覧)。 大きく分けて次の2つ: Groovy コードを実行する GMaven のその他のゴール 詳しくは各表の「ドキュメント」に張っているリンクを参照。Groovy コードを実行す…
前々回、前回に Maven2 で Groovy コードを実行する方法を見ましたが、このコード中で、自分で定義する必要なく使用できる「定義済み変数」がいくつかあります。 今回はそれらと、それらのプロパティを見ていく、というか参考のために列挙しておきます(一覧…
前回に引き続き、今回は「フェイズ実行時」に Groovy コードを実行する方法を見ていきます(一覧)。今回以降、特に必要がない限り Groovy 1.7 ではなく、Groovy 1.6 (GMaven 1.2) の環境を前提とします。pom.xml 実行したい Groovy コードは前回と同じく pr…
今回は Maven2 で Groovy コードを実行する方法を紹介(一覧)。 「Executing Groovy Code」を参考にしてます。前々回と同じように、GMaven のサポートのせいで Groovy 1.7 以降を使うにはいろいろ設定が必要です。 とはいっても、ここで Groovy 1.6 を使っ…
GMaven プロジェクトのコンパイル、テスト、インストールとか GMaven を使って作成した Groovy プロジェクトを「GMaven プロジェクト」と呼ぶことにします(一般的には使われてないと思いますが)。前回は GMaven プロジェクトの作成方法を見ました(一覧)…