第10章

リソースセットの検索

この章では、リソースセットのコンテンツを検索する方法について説明します。この章の節は次のとおりです。

 
Top of page

検索タブについて

[検索]タブは、リソースセット内でオブジェクトを検索する機能を提供します。[検索]タブでは、オブジェクトを見つけるための検索フィルタを指定できます。ファイル名またはディレクトリ名で検索したり、リソースセット内の特定の文字列パターンを探したりできます。 探しているオブジェクトが見つかったら、変更したり、検索をビューとして保存したりできます。

[検索]タブは、正規表現検索を完全にサポートします。

For more information    正規表現に関する構文とリファレンス情報については、ユーティリティツールのテキスト検索のための正規表現に関する節を参照してください。

 
Top of page

リソースセットの検索

Procedure リソースセットを検索する

  1. exteNd Directorナビゲーションペインで、[リソース]タブを選択します。

  2. [検索]タブをクリックします。

    Search1

  3. 次のように指定します。

    フィールド

    指定する内容

    リソースセット

    検索操作のターゲットリソースセット。

    ファイル名

    検索するファイル名のリストを指定する正規表現。

    ディレクトリ

    検索に含む必要のあるディレクトリを指定する正規表現。

    リソースセット内の単一のディレクトリのみを検索する場合は、ドロップダウンリストから選択します。

    データ

    ターゲットリソースセットのファイル内で検索する文字列パターンを指定する正規表現。

    複数のフィールドの値を指定する場合、フィールド値はAND演算子で結合できます。

  4. [検索]をクリックします。

    [検索]タブは、検索フィルタに一致するファイルのリストをフォルダごとに整理して表示します。 たとえば、次の検索は、文字列helpを含むすべてのHTMLソースファイルを見つけます。

    Search2

    ディスクから読み込まれた項目は編集することができ、黒で表示されます。 JARファイルから読み込まれた項目は編集することができません。 これらの項目は、青で表示され、[RO](読み込み専用)が付いています。

Procedure 検索条件を消去する

Procedure [検索]タブに表示された項目を開く

 
Top of page

ビューとしての検索の保存

同じ検索操作を頻繁に実行する場合は、検索をビューとして保存することを考慮する必要があります。 この方法では、検索条件を毎回指定せずに、好みの頻度で検索を実行できます。

検索をビューとして保存すると、[検索]タブはリソースセット内のmy-viewsフォルダにビュー定義ファイルを作成します。ビュー定義ファイルは、ビューに含める項目を指定するXMLファイルです。

ビューの手動作成   ビューは、ビュー定義ファイルを手動で編集して作成することもできます。 ビューの手動定義の詳細については、カスタムビューの定義を参照してください。

Procedure 検索をビューとして保存する

  1. [検索]タブで、[保存]をクリックします。

    Search3

    [保存]ダイアログが表示されます。

    Search4

  2. ビュー定義XMLファイルの名前を指定します。

  3. [保存]をクリックします。

 
Top of page

検索APIの操作

[検索]タブは、exteNd Director付属の基礎となる検索APIを使用します。多くのアプリケーションには、この検索機能で十分です。 ただし、場合により、リソースセットのコンテンツをプログラムで検索する必要があります。 これを実行するには、検索APIで次のオブジェクトを使用する必要があります。

オブジェクト

説明

実装クラス

検索オブジェクト

検索操作を実行します。検索条件に一致するリソース要素(EboResourcElementオブジェクト)のベクトルを戻します。

EboResourceSearch

検索テンプレート

検索のフィルタに使用される特性のパターンまたはセットを定義します。

EboResourceElementTemplate

検索コンパレータ

テンプレートをリソース要素のターゲットオブジェクトに比較します。

  • EboResourceElementComparator

  • EboResourceClassElementComparator

  • EboResourceREGEXPElementComparator

すべての検索実装クラスは、com.sssw.fw.resource.searchパッケージに配置されます。

動作   「検索オブジェクト」は、リソースセットのターゲットオブジェクトを繰り返して各オブジェクトを検索テンプレートと比較し、検索操作を実行します。「検索テンプレート」は、検索のフィルタに使用されるパターンまたは特性を定義します。たとえば、検索テンプレートは、検索するファイル名、ディレクトリ名、ディスクパス、またはバイトの文字列を指定できます。検索が実行されると、リソース要素の各ターゲットオブジェクトにテンプレートを比較します。オブジェクトが同等の場合、ターゲットオブジェクトが検索結果に追加されます。検索オブジェクトは、リソース要素オブジェクトのベクトルで結果を戻します。

検索テンプレートの設定方法   検索のために検索テンプレートオブジェクトを設定するには、いくつかの方法があります。

検索コンパレータは、ターゲットオブジェクトにテンプレートを比較して、一致するか確認します。 検索APIは、3つの検索コンパレータを含みます。

コンパレータ

説明

EboResourceElementComparator

StringクラスのindexOf()メソッドを使用する比較をサポートします。

EboResourceClassElementComparator

StringクラスのindexOf()メソッドを使用する比較をサポートします。このコンパレータは、.classで終わる項目をフィルタアウトします。

EboResourceREGEXPElementComparator

正規表現を使用する比較をサポートします。

 
Top of section

例1: 内部検索テンプレートオブジェクトの使用

文字列FireRuleを含むリソースセットのすべてのXMLファイルを検索するとします。 これを実行する1つの方法は、EboResourceSearchクラスに作成された内部テンプレートオブジェクトを使用することです。 この実行方法を示すコードスニペットは、次のとおりです。

  EboResourceSearch resourceSetSearch = new EboResourceSearch();
  resourceSetSearch.setComparator( 
      new EboResourceREGEXPElementComparator() );
  resourceSetSearch.getTemplate().setFileName( ".xml" );
  resourceSetSearch.getTemplate().setBytes( "FireRule" );
  Vector v = resourceSetSearch.search( resourceSet );

このコード例では、検索コンパレータとしてEboResourceREGEXPElementComparatorを使用します。これは、正規表現比較のための検索コンパレータです。

 
Top of section

例2: 独自の検索テンプレートオブジェクトの使用

組み込み検索テンプレートオブジェクトの代わりに、独自の検索テンプレートオブジェクトを定義し、検索オブジェクトにその使用を指示することもできます。 この場合、テンプレートオブジェクトをインスタンス化し、使用する値をテンプレートに入力して、検索オブジェクトに渡します。この実行方法を示す例は、次のとおりです。

  EboResourceSearch resourceSetSearch = new EboResourceSearch();
  resourceSetSearch.setComparator( 
      new EboResourceREGEXPElementComparator() );
  EboResourceElementTemplate template = new EboResourceElementTemplate();
  template.setFileName( ".xml" );
  template.setBytes( "FireRule" );
  resourceSetSearch.setTemplate( template );
  Vector v = resourceSetSearch.search( resourceSet );

 
Top of section

例3: 検索要求のシリアル化

検索をビューとして保存する場合は、検索要求をシリアル化する必要があります。 検索をシリアル化するには、次のDTDに準拠するXMLを作成する必要があります。

  <?xml version="1.0" encoding="UTF-8"?>
  <!ELEMENT search EMPTY>
  <!ATTLIST search
    bytes CDATA #IMPLIED
    directoryName CDATA #IMPLIED
    diskPath CDATA #IMPLIED
    javaPackage CDATA #IMPLIED
    fileName CDATA #IMPLIED > 

文字列FireRuleを含むリソースセットのすべてのXMLファイルを検索するとします。この検索に必要なXML文字列は、次のようになります。

  <search fileName=・xml・bytes="FireRule" />

このXMLをプログラムで作成するには、次のコードを使用します。

  EboResourceSearch resourceSetSearch = new EboResourceSearch();
  resourceSetSearch.setComparator( 
     new EboResourceREGEXPElementComparator() );
  resourceSetSearch.setTemplate( "<search fileName=\・xml\・bytes=\"FireRule\" />" );
  Vector v = resourceSetSearch.search( resourceSet );


Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...