ドキュメント・インスタンスは、JDeveloper内でファイルが開かれるか作成されると、作成されます。作成されるドキュメント・オブジェクトのクラスは、そのファイルのタイプによって異なります。
ドキュメント・インスタンスは、Factoryデザイン・パターンを実装するノード・ファクトリによって作成されます。 ファイルが開かれるか作成されると、IDEはそのURLまたはXMLをノード・ファクトリに渡します。 ノード・ファクトリでは、Recognizer
インタフェースのインスタンスであるレコグナイザにノード作成を委任します。ノード・ファクトリには、登録されたレコグナイザのリストがあり、URLを認識するリスト内の最初のレコグナイザがそのノードを作成します。
ノード・ファクトリの機能は、NodeFactory
クラスの様々なstaticメソッドにより提供されます。
ノード・ファクトリは、カスタム・レコグナイザを追加することにより拡張できます。JDeveloperでは、次の2つの事前定義レコグナイザがあります。
URLRecognizer
のシングルトン・インスタンス)は、ファイルの拡張子をノード・クラスにマップします。拡張子によりJDeveloperは、カスタム・ファイル・タイプのノード・クラスを定義し、そのファイル・タイプおよびノード・クラスをURLレコグナイザに登録することで、そのファイル・タイプを認識できるようになります。 ファイル拡張子を持つURLが、ノード・ファクトリのstaticメソッドfindOrCreate
に渡されると、カスタム・ノード・クラスのインスタンスが返されます。
XMLRecognizer
のシングルトン・インスタンス)でも、ファイル拡張子をノード・クラスにマップしますが、さらにXMLコンテンツ内のDOCTYPEタグもノード・クラスにマップします。拡張子により、いずれかのマッピングを使用して、カスタム・ノード・クラスを登録できます。XMLレコグナイザは、まずファイル拡張子が既存のものであるかどうかを調べます。既存の拡張子でなければ、ファイルを読み込んでルート要素を見つけます。ファイル拡張子またはルート要素のいずれかが認識されると、該当するノード・クラスのインスタンスが返されます。
ノード・ファクトリは、作成するすべてのノードをキャッシュします。 staticメソッドfindOrCreate
は、指定したURLのノードがすでに存在する場合、既存のノードに対して別の参照を返し、存在しない場合は新規ノードを作成します。
oracle.ide.model.Recognizer
oracle.ide.model.NodeFactory
oracle.ide.net.URLRecognizer
oracle.ide.xml.XMLRecognizer
Copyright © 1997, 2004, Oracle. All rights reserved.