- java.lang.Object
-
- java.beans.Encoder
-
- 直系の既知のサブクラス:
XMLEncoder
public class Encoder extends Object
Encoderは、公開APIに関して複数のJavaBeansの状態をエンコードするファイルまたはストリームを作成する際に使用できるクラスです。Encoderは、永続デリゲートとともに、オブジェクト・グラフを作成するために使用できる一連のStatementとExpressionに分割します。 通常、サブクラスは、ユーザーが読める書式、たとえばJavaソース・コードやXMLとして、これらの式の構文を提供します。- 導入されたバージョン:
- 1.4
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 Encoder()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Objectget(Object oldInstance)このストリームによって作成された、その環境におけるoldInstanceの試験値を返します。ExceptionListenergetExceptionListener()このストリームの例外ハンドラを取得します。PersistenceDelegategetPersistenceDelegate(Class<?> type)指定された型の持続的な委譲を返します。Objectremove(Object oldInstance)このインスタンスのエントリを削除し、古いエントリを返します。voidsetExceptionListener(ExceptionListener exceptionListener)このストリームの例外ハンドラをexceptionListenerに設定します。voidsetPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)指定された永続的な委譲を指定されたタイプに関連付けます。voidwriteExpression(Expression oldExp)実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。protected voidwriteObject(Object o)指定されたオブジェクトを出力ストリームに書き込みます。voidwriteStatement(Statement oldStm)ストリームにoldStm文を書き込みます。
-
-
-
メソッドの詳細
-
writeObject
protected void writeObject(Object o)
指定されたオブジェクトを出力ストリームに書き込みます。 直列化された書式は、一連の式を示します。式の組み合わせの結果、入力ストリームの読込み時に等価のオブジェクトが作成されます。 デフォルトでは、オブジェクトは引数なしのコンストラクタ(その状態はIntrospectorが返す設定メソッドと取得メソッドの照合によって定義される)を持つJavaBeanになります。- パラメータ:
o- ストリームに書き込まれるオブジェクト。- 関連項目:
XMLDecoder.readObject()
-
setExceptionListener
public void setExceptionListener(ExceptionListener exceptionListener)
このストリームの例外ハンドラをexceptionListenerに設定します。 このストリームが回復可能な例外をキャッチすると、この例外ハンドラに通知されます。- パラメータ:
exceptionListener- このストリームの例外ハンドラ。nullの場合は、デフォルトの例外リスナーが使用されます。- 関連項目:
getExceptionListener()
-
getExceptionListener
public ExceptionListener getExceptionListener()
このストリームの例外ハンドラを取得します。- 戻り値:
- このストリームの例外ハンドラ。明示的に設定されていない場合、デフォルトの例外リスナーが返される。
- 関連項目:
setExceptionListener(java.beans.ExceptionListener)
-
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(java.lang.Class<?>, java.beans.PersistenceDelegate),Introspector.getBeanInfo(java.lang.Class<?>),BeanInfo.getBeanDescriptor()
-
持続的な委譲が
-
setPersistenceDelegate
public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
指定された永続的な委譲を指定されたタイプに関連付けます。- パラメータ:
type- 指定された持続的な委譲が適用されるオブジェクトのクラスdelegate- 指定された型のインスタンスの持続的な委譲- 関連項目:
getPersistenceDelegate(java.lang.Class<?>),Introspector.getBeanInfo(java.lang.Class<?>),BeanInfo.getBeanDescriptor()
-
remove
public Object remove(Object oldInstance)
このインスタンスのエントリを削除し、古いエントリを返します。- パラメータ:
oldInstance- 削除されるエントリ。- 戻り値:
- 削除されたエントリ。
- 関連項目:
get(java.lang.Object)
-
get
public Object get(Object oldInstance)
このストリームによって作成された、その環境における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- ストリームに書き込まれる式。
-
-