倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Groovy

FactoryBuilderSupport よ、我に力を! (5) : AbstractFactory クラスの onXxxx() メソッド

前回の isXxxx() メソッドに引き続き、今回は AbstractFactory クラスの onXxxx() メソッドを見ていきます。 onXxxx() メソッドは(気持ち的には)イベント・ハンドラのようなメソッドで、ビルダー設定時やビルド時に起こるイベントに対して処理を記述します…

FactoryBuilderSupport よ、我に力を! (4) : AbstractFactory クラスの isXxxx() メソッド

今回は AbstractFactory クラス(Factory インターフェース)に定義されている isXxxx() メソッドを見ていきます。AbstractFactory クラスに定義されている isXxxx() メソッドは次の2つ: isLeaf() メソッド isHandlesNodeChildren() メソッド もちろん、ど…

FactoryBuilderSupport よ、我に力を! (3) : ネスト構造のビルド

今回はやっとネスト構造を構築するビルダー。 なるべく簡単なサンプルを見ていきます。ノードを構築するスクリプト 今回は、まずビルダーでオブジェクトを構築するスクリプトから見ていきましょう。 前回までに作った MathGirl オブジェクトを構築する mathG…

FactoryBuilderSupport よ、我に力を! (2) : AbstractFactory クラス

今回は FactoryBuilderSupport に独自のファクトリ・オブジェクトを登録して、オブジェクト生成のロジックを自分で実装できるようにしましょう。 と言いつつ、今回扱うサンプルは前回のものと大差ありませんが。独自のファクトリ・クラスを作成してビルドで…

FactoryBuilderSupport よ、我に力を! (1) : FactoryBuilderSupport クラス

以前から気になっていた FactoryBuilderSupport をあれこれイジっていきます。Groovy で独自のビルダーを作る場合 BuilderSupport クラスのサブクラスを作成するのが一般的かと思いますが、ある程度込み入ったものを作りたいときにはちょっと役者不足。 そう…

@Category で作るカテゴリクラスはシンタックス・シュガー?

id:fumokmm 殿の記事によると、Groovy 1.8.0 (1.6 くらいからだそうですm(_ _;)m)から @Category アノテーションってのが導入されて、カテゴリクラスに定義するメソッドを static メソッドではなくインスタンスメソッドとして実装できるようになったようで…

GroovyDSL と IntelliJ IDEA

IntelliJ IDEA にて、独自に定義したプロパティやメソッドを IDEA に認識させる方法を見ていきます。 プロパティ・メソッドの追加定義 GroovyDSL の作成 GroovyDSL スクリプトをリソースとして Jar ファイルに含めると・・・ プロパティ・メソッドの追加定義…

動静同名メソッド

確認 その1 ちょっと Java クラスの確認。 1つの Java クラス(Groovy クラスも同じ)に、名前とシグニチャが同じインスタンス・メソッドと static メソッドを同時に定義するとコンパイル・エラーになります: // Java public class MyPojo { public static …

Pure Java より速いぞ Groovy!

前回、ContinuedFraction クラス(連分数)を使って円周率 π の評価をしましが、Groovy だとパフォーマンス的になかなか悲しい結果になりました。 と、そう言えば最近 id:uehaj 殿が「速いぞGroovy!」って記事を書いてらしたなぁと思い出したので、ちょっと…

Groovy 内蔵のアイコン

Groovy に内蔵されている GroovyConsole に使用されているアイコンが使えないかなぁと思って groovy-xxx.jar の中身を覗いてみると、まぁ当然かもしれないけど、groovy.ui.Console クラスのソース近辺にそれぞれの画像ファイルがありました。画像ファイルは…

「GroovyでBuilder系の定義ファイルの外出しする」の別アプローチを思いついてみた

「GroovyでBuilder系の定義ファイルの外出しする」の別アプローチを考えてみました。ここで見ていく方法は、ちょっと(かなり?)制限がある代わりに、結構簡潔に書けてると思います。 というより、普通によく見かけるような Groovy コードです。HTML の定義…

GMaven 1.3 での pom.xml

GMaven 1.3がリリースされていたので使ってみた(参照 URL : Ben Tilford's Blog「GMaven 1.3 is out」)。このバージョンでは configuration 要素の sourceEncoding, source, target が動作するようになった Java スタブコードで java.util.*, java.io.* …

プリミティブ型のクラスオブジェクト

Java では、int などのプリミティブ型を表すクラスオブジェクトは Integer.TYPE などによって取得できますが、Groovy ではそれに加えて int.class によっても取得できるようです。 assert int.class == Integer.TYPE ん? これって Java でもできたっけ? Gr…

org.dom4j.Document を構築するビルダー・改

以前に作成した「org.dom4j.Document を構築するのビルダー」をちょこっと修正(一覧)。以前のものは、createNode() メソッドでノードを作る際に、current プロパティを読み込んでルートノードかどうかを判断し、Element か Document のうち適切な方のイン…

GroovyChart と戯れて (8) : データをビルダーで構築する

さて前回、データとビューの構築を分離する方法を見ましたが、折角 ChartBuilder を使うなら、ビューだけでなくデータ (dataset) もこれを使って構築したいというのは人情(ならぬ「Groovier 情」?)。ってことで、今回はチャートのビューとは別に ChartBui…

GroovyChart と戯れて (7) : データとビューを分離する

ChartBuilder はデータ (dataset) とチャートの表示設定をビルダーで構築できるライブラリで、今まで見てきたサンプルでは、データと表示設定を1回のビルダー構築で行っていました。 ただし、この方法では、データ構造や表示設定のカスタマイズが複雑になっ…

GroovyChart と戯れて (6) : ChartBuilder が構築するのは JFreeChart のラッパー

GroovyChart の ChartBuilder は JFreeChart (JFreeChart のチャートを表す型)オブジェクトを構築するのではなく、そのラッパークラスを構築します。 これは、それほど気にすることでもありませんが、JFrame などに埋め込むために ChartPanel を生成しよう…

GroovyChart と戯れて (5) : チャートを表示させるのに最低限必要なのは?

今回は、GroovyChart でチャートを表示させるために最低限必要なコードを見ていきます。 サンプルコードは前回使ってたものをベースに考えます。plot ノード データセットがないとグラフの描きようがないので、dataset ノードはおいておきましょう。 なので…

GroovyChart と戯れて (4) : サンプルコードをもう少し詳しく見てみよう

サンプルも無事に動いてくれたので、次はサンプルコードをもう少し詳しく見てみます。サンプルコードは前々回に動かしたものを取り上げます(ただし、import 文章略。 また、一部変更しています): def builder = new ChartBuilder() // 1. ChartBuilder の…

GroovyChart と戯れて (2) : GroovyChart のサンプルを動かす

さぁ、やっとこさ GroovyChart のサンプルを動かすときがきた!まずは groovychart サイトの「Examples of using JFreeChart」のページからサンプルを拝借(いくらか変更してます): import javax.swing.WindowConstants as WC import com.thecoderscorner.…

GroovyChart と戯れて (1) : GroovyChart のセットアップ

今回は GroovyChart のセットアップ。アーカイブのダウンロード GroovyChart は java.net で開発されてるようで(「groovychart プロジェクト ホーム」)、アーカイブもそこからダウンロードできます。というか、Maven2 に慣れてると、手動でダウンロード&…

GroovyChart と戯れて (0) : Groovy + JFreeChart

Griffon 0.9 のリリースとともに知ったのですが、JFreeChart のチャートを Groovy のビルダーを使って構築するライブラリ「GroovyChart」ってのがあるようです。Griffon を使う分には「Charts Plugin」というプラグインをインストールすれば簡単に使えるよう…

GroovyChart と戯れて (3) : GroovyChart は日本語に対応してるのか?それはやってみなくちゃ分からない。

さて、「Examples of using JFreeChart」には「円グラフ (Pie Chart)」のサンプルもあったので、これも動かしてみましょう(以降 import 文は省略): def largeFont = new Font('Arial', Font.BOLD, 15) def pieChart = new ChartBuilder().piechart3d(titl…

ちょっとお気に入りのコード

最近、ちょっとお気に入りの Groovy コード。 def pojo = ... def props = [name1:'value1', name2:'value2', name3:'value3'] props.each{ String name, value -> if(pojo.hasProperty(name)){ pojo[name] = value } } 単に pojo オブジェクトに Map からプ…

ビルダーの本末転倒な使い方 Revolution

前にやった「ビルダーの本末転倒な使い方」、「ビルダーの本末転倒な使い方 Reloaded」って、よく考えたら、「ビルダーをイベントハンドラと思えば単なる Push 解析」ですねぇ。ってことで、サンプルコードをちょっと SAXParser 風にしてみると class PushPa…

Groovy プロジェクトを Maven2 でコンパイルしてみたら・・・

なんか、やたらとコンパイルエラーがでますねぇ・・・(^ ^;) ほとんどライブラリのダウンロード(+ちょっとしたスクリプト)にしか使ってなかったので、問題ないかと思ってたけど、あまり気持ちのいいものじゃないですねぇ。IntelliJ IDEA 上でコンパイル&…

ビルダーの本末転倒な使い方 Reloaded

「XML 文書を入力としてこのビルダーでツリー構造を構築させる方法」を Closure 使って実装する件(→)、冷静に考えれば案外簡単に出来ました。 def xml2builder = new XmlToBuilderReloaded() xml2builder.parseText(xml) class XmlToBuilderReloaded{ fina…

ビルダーの本末転倒な使い方

Groovy のビルダーを使っていてチョット思ったことをメモ。ビルダーは、XML のようなツリー構造を構築するのに便利なツールです。 例えば以下のような XML 文書は*1 <table customer='c' invoice='i'> <join c='invoice_id' i='id' /> <and> <greater i.total='1000' /> <like c.name='%Bill%' >desription</like> </and> </table> 次のようなビルダーで構築できます: def builder = new MarkupBuilder()…

@Delegate アノテーションの異常な使い方

@Delegate アノテーションをチョット使ってみて思ったことをメモ。 第2弾。正常な使い方 まずは @Delegate の正常な使い方。 interface Animal{ def bark() } class Dog implements Animal{ def bark(){ println 'ワンワン!' } } class AnimalMobileSuit{ @…

メモ

Groovy for Domain-specific Languages作者: Fergal Dearle出版社/メーカー: Packt Publishing発売日: 2010/05/30メディア: ペーパーバックこの商品を含むブログ (9件) を見る