BT

InfoQ ホームページ ニュース Java用のLINQ現る

Java用のLINQ現る

ブックマーク
Anders Norasは先週JavaZoneにおいて、Java用のLINQと名付けられたQuaereライブラリを発表した(source)。Quaere(サイト・英語)はIterableとQueryableインターフェースを実装している、あらゆるストラクチャに対応するクエリ機能を備えたDSLである。

Nnoras氏はQuaereの機能を下記のように述べている。

  • Iterableインターフェースを実装したデータ、もしくは配列ストラクチャに対するクエリ実行能力
  • 通常のJavaコードを用いたクエリ言語を可能にさせる内部DSL(静的インポートと流動性インターフェースに基づいている)quaere.jar file(とその依存物)にリファレンスを追加するのみでプロセッシングとコード生成のステップは必要とされない
  • リストリクション、セレクション、プロジェクション、セット、パーティショニング、グルーピング、オーダリング、数量化、集合化、コンバージョンオペレーターを含む膨大な数のクエリオペレータ
  • lambda表現へのサポート
  • 匿名のクラスをダイナミックに定義しインスタンス化する機能
  • Java 1.5とそれ以降のバージョンに対応する新たなキーワード

下記は製品リストから製品名リストの受け取りの一例である。

List products = Arrays.asList(Product.getAllProducts()); 
Iterable productNames =
 from("p").in(products).
 select("p.getProductName()");

Quaereは現在一つの実装(オブジェクト用)しか備えていないが、部分的にHibernate用の実装が行われている。Hibernate実装はデモにおいて2,3時間しか費やさなかったように迅速に進行するべきであることをAnders氏は述べている。

何人かはjoSQLが類似したAPIであることを言及(source)している。Anders氏自身もその類似点を提示している(source)が、いくつかの相違点も指摘している。

  • Quaereは”ビジネス問題”を用いるとより良い結合性をもたらす。
  • Quaereクエリは更にコンパクトでタイプの安全性を備えている。
  • Quaereは新たなクエリエンジンのシームレスな追加を許容する拡張可能な言語である。

最後に、Noras氏はQuaereに関するよくある疑問(source)に答えるためCodehausにそのためのプロジェクトを発足(サイト・英語)した。

原文はこちらです:http://www.infoq.com/news/2007/09/quaere-linq

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。