java.lang.Object
java.beans.Encoder
- 直系の既知のサブクラス:
XMLEncoder
public class Encoder extends Object
Encoder
は、公開APIに関して複数のJavaBeansの状態をエンコードするファイルまたはストリームを作成する際に使用できるクラスです。 Encoder
は、永続デリゲートとともに、オブジェクト・グラフを作成するために使用できる一連のStatement
とExpression
に分割します。 通常、サブクラスは、ユーザーが読める書式、たとえばJavaソース・コードやXMLとして、これらの式の構文を提供します。 - 導入されたバージョン:
- 1.4
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明このストリームによって作成された、その環境におけるoldInstance
の試験値を返します。このストリームの例外ハンドラを取得します。getPersistenceDelegate
(Class<?> type) 指定された型の持続的な委譲を返します。このインスタンスのエントリを削除し、古いエントリを返します。void
setExceptionListener
(ExceptionListener exceptionListener) このストリームの例外ハンドラをexceptionListener
に設定します。void
setPersistenceDelegate
(Class<?> type, PersistenceDelegate delegate) 指定された永続的な委譲を指定されたタイプに関連付けます。void
writeExpression
(Expression oldExp) 実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。protected void
指定されたオブジェクトを出力ストリームに書き込みます。void
writeStatement
(Statement oldStm) ストリームにoldStm
文を書き込みます。
-
コンストラクタの詳細
-
Encoder
public Encoder()Encoder
を構築します。
-
-
メソッドの詳細
-
writeObject
protected void writeObject(Object o) 指定されたオブジェクトを出力ストリームに書き込みます。 直列化された書式は、一連の式を示します。式の組み合わせの結果、入力ストリームの読込み時に等価のオブジェクトが作成されます。 デフォルトでは、オブジェクトは引数なしのコンストラクタ(その状態はIntrospectorが返す設定メソッドと取得メソッドの照合によって定義される)を持つJavaBeanになります。- パラメータ:
o
- ストリームに書き込まれるオブジェクト。- 関連項目:
-
setExceptionListener
public void setExceptionListener(ExceptionListener exceptionListener) このストリームの例外ハンドラをexceptionListener
に設定します。 このストリームが回復可能な例外をキャッチすると、この例外ハンドラに通知されます。- パラメータ:
exceptionListener
- このストリームの例外ハンドラ。null
の場合は、デフォルトの例外リスナーが使用されます。- 関連項目:
-
getExceptionListener
public ExceptionListener getExceptionListener()このストリームの例外ハンドラを取得します。- 戻り値:
- このストリームの例外ハンドラ。明示的に設定されていない場合、デフォルトの例外リスナーが返される。
- 関連項目:
-
getPersistenceDelegate
public PersistenceDelegate getPersistenceDelegate(Class<?> type) 指定された型の持続的な委譲を返します。 持続的な委譲は、次のルールを正しく適用することによって計算されます。-
持続的な委譲が
setPersistenceDelegate(java.lang.Class<?>, java.beans.PersistenceDelegate)
メソッドを使用して指定された型関連付けられている場合は、それが返されます。 -
永続デリゲートは、指定された型の完全修飾名と"PersistenceDelegate"の後置子で構成される名前で参照されます。 たとえば、
Bean
クラスの持続的な委譲は、BeanPersistenceDelegate
という名前で同じパッケージ内にある必要があります。public class Bean { ... } public class BeanPersistenceDelegate { ... }
Bean
クラスの場合は、BeanPersistenceDelegate
クラスのインスタンスが返されます。 -
型が
null
である場合は、null
値をエンコードする内部共有の持続的な委譲が返されます。 -
型が
enum
宣言の場合、名前でこの列挙型の定数をエンコードする共有内部永続デリゲートが返されます。 - 型がプリミティブ型または対応するラッパーである場合は、指定された型の値をエンコードする内部共有の持続的な委譲が返されます。
- array型の場合、内部共有の持続的な委譲が返されます。この委譲は、適切な型および長さを持つ配列をエンコードし、個々の要素をプロパティと同様にエンコードします。
-
proxy型の場合は、
Proxy.newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler)
メソッドを使用してプロキシ・インスタンスをエンコードする内部共有の持続的な委譲が返されます。 -
この型の
BeanInfo
にpersistenceDelegate属性が定義されたBeanDescriptor
がある場合は、この名前付き属性の値が返されます。 -
それ以外の場合、デフォルトの持続的な委譲が返されます。 デフォルトの持続性委譲は、型がJavaBeanであると見なします。すなわち、デフォルトコンストラクタを持ち、その状態が
Introspector
クラスによって返されるsetterメソッドとgetterメソッドペアの照合によって特色付けられることを示します。 デフォルトコンストラクタは、ConstructorProperties
注釈を持つ、パラメータの数がもっとも多いコンストラクタです。ConstructorProperties
注釈の付けられたコンストラクタがない場合、引数なしのコンストラクタ(パラメータのないコンストラクタ)が使用されます。 たとえば次のコードでは、Foo
クラスでは引数なしのコンストラクタが使用され、Bar
クラスでは2つのパラメータを持つコンストラクタが使用されます。public class Foo { public Foo() { ... } public Foo(int x) { ... } } public class Bar { public Bar() { ... } @ConstructorProperties({"x"}) public Bar(int x) { ... } @ConstructorProperties({"x", "y"}) public Bar(int x, int y) { ... } }
- パラメータ:
type
- オブジェクトのクラス- 戻り値:
- 指定された型の持続的な委譲
- 関連項目:
-
持続的な委譲が
-
setPersistenceDelegate
public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate) 指定された永続的な委譲を指定されたタイプに関連付けます。- パラメータ:
type
- 指定された持続的な委譲が適用されるオブジェクトのクラスdelegate
- 指定された型のインスタンスの持続的な委譲- 関連項目:
-
remove
このインスタンスのエントリを削除し、古いエントリを返します。- パラメータ:
oldInstance
- 削除されるエントリ。- 戻り値:
- 削除されたエントリ。
- 関連項目:
-
get
このストリームによって作成された、その環境におけるoldInstance
の試験値を返します。 持続的な委譲は、この値の初期化によって出力時に等価オブジェクトを作成するのか、あるいは新しいオブジェクトをインスタンス化する必要があるのかどうかを、mutatesTo
メソッドを使って判断します。 この値がストリームにとって未知の値である場合、戻り値はnullになります。- パラメータ:
oldInstance
- 検索されるインスタンス。- 戻り値:
- 未知のオブジェクトの場合null。
-
writeStatement
public void writeStatement(Statement oldStm) ストリームにoldStm
文を書き込みます。oldStm
は、完全に呼出し元の環境で書き込まれる必要があります。これは、ターゲットとすべての引数が、書き込まれるオブジェクト・グラフの一部になっていなければならないということです。 これらの式は、何が起こったかを示す一連の式、すなわち、出力ストリームにオリジナルと同様のオブジェクト・グラフを生成する方法を示す式になります。このメソッドを実装すると、ストリームの読込み時にその環境内の式となる、2番目の式が生成されます。 この式を取得するには、ターゲット上の
writeObject
とすべての引数を呼び出し、その結果を使って新しい式を構築します。- パラメータ:
oldStm
- ストリームに書き込まれる式。
-
writeExpression
public void writeExpression(Expression oldExp) 実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。 書き込まれていない場合は、writeStatement
と同様の手順で式が複製され、writeObject
の呼出しにより、複製された式の値とこの式の値が照合されます。- パラメータ:
oldExp
- ストリームに書き込まれる式。
-