public class Encoder extends Object
Encoder
は、公開 API に関して複数の JavaBeans の状態をエンコードするファイルまたはストリームを作成する際に使用できるクラスです。Encoder
は、持続的な委譲とともに、オブジェクトグラフを一連の Statements
とそれを作成するのに使用される Expression
に分解します。通常、サブクラスは、ユーザーが読める書式、たとえば Java ソースコードや XML として、これらの式の構文を提供します。コンストラクタと説明 |
---|
Encoder() |
修飾子と型 | メソッドと説明 |
---|---|
Object |
get(Object oldInstance)
このストリームによって作成された、その環境における
oldInstance の試験値を返します。 |
ExceptionListener |
getExceptionListener()
このストリームの例外ハンドラを取得します。
|
PersistenceDelegate |
getPersistenceDelegate(Class<?> type)
指定された型の持続的な委譲を返します。
|
Object |
remove(Object oldInstance)
このインスタンスのエントリを削除し、古いエントリを返します。
|
void |
setExceptionListener(ExceptionListener exceptionListener)
このストリームの例外ハンドラを
exceptionListener に設定します。 |
void |
setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
指定された永続的な委譲を指定されたタイプに関連付けます。
|
void |
writeExpression(Expression oldExp)
実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。
|
protected void |
writeObject(Object o)
指定されたオブジェクトを出力ストリームに書き込みます。
|
void |
writeStatement(Statement oldStm)
ストリームに
oldStm 文を書き込みます。 |
protected void writeObject(Object o)
o
- ストリームに書き込まれるオブジェクト。XMLDecoder.readObject()
public void setExceptionListener(ExceptionListener exceptionListener)
exceptionListener
に設定します。このストリームが回復可能な例外をキャッチすると、この例外ハンドラに通知されます。exceptionListener
- このストリームの例外ハンドラ。null
の場合は、デフォルトの例外リスナーが使用されます。getExceptionListener()
public ExceptionListener getExceptionListener()
setExceptionListener(java.beans.ExceptionListener)
public PersistenceDelegate getPersistenceDelegate(Class<?> type)
setPersistenceDelegate(java.lang.Class<?>, java.beans.PersistenceDelegate)
メソッドを使用して指定された型関連付けられている場合は、それが返されます。
Bean
クラスの持続的な委譲は、BeanPersistenceDelegate
という名前で同じパッケージ内にある必要があります。
public class Bean { ... } public class BeanPersistenceDelegate { ... }
Bean
クラスの場合は、BeanPersistenceDelegate
クラスのインスタンスが返されます。
null
である場合は、null
値をエンコードする内部共有の持続的な委譲が返されます。
enum
型の場合は、この列挙値の定数をその名前によってエンコードする内部共有の持続的な委譲が返されます。
Proxy.newProxyInstance(java.lang.ClassLoader, java.lang.Class<?>[], java.lang.reflect.InvocationHandler)
メソッドを使用してプロキシインスタンスをエンコードする内部共有の持続的な委譲が返されます。
BeanInfo
に persistenceDelegate 属性が定義された BeanDescriptor
がある場合は、この名前付き属性の値が返されます。
Introspector
クラスによって返される設定メソッドと取得メソッドの照合によって特色付けられることを示します。デフォルトのコンストラクタは、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()
public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
type
- 指定された持続的な委譲が適用されるオブジェクトのクラスdelegate
- 指定された型のインスタンスの持続的な委譲getPersistenceDelegate(java.lang.Class<?>)
, Introspector.getBeanInfo(java.lang.Class<?>)
, BeanInfo.getBeanDescriptor()
public Object remove(Object oldInstance)
oldInstance
- 削除されるエントリ。get(java.lang.Object)
public Object get(Object oldInstance)
oldInstance
の試験値を返します。持続的な委譲は、この値の初期化によって出力時に等価オブジェクトを作成するのか、あるいは新しいオブジェクトをインスタンス化する必要があるのかどうかを、mutatesTo
メソッドを使って判断します。この値がストリームにとって未知の値である場合、戻り値は null になります。oldInstance
- 検索されるインスタンス。public void writeStatement(Statement oldStm)
oldStm
文を書き込みます。oldStm
は、完全に呼び出し元の環境で書き込まれる必要があります。これは、ターゲットとすべての引数が、書き込まれるオブジェクトグラフの一部になっていなければならないということです。これらの式は、何が起こったかを示す一連の式、すなわち、出力ストリームにオリジナルと同様のオブジェクトグラフを生成する方法を示す式になります。
このメソッドを実装すると、ストリームの読み込み時にその環境内の式となる、2 番目の式が生成されます。この式を取得するには、ターゲット上の writeObject
とすべての引数を呼び出し、その結果を使って新しい式を構築します。
oldStm
- ストリームに書き込まれる式。public void writeExpression(Expression oldExp)
writeStatement
と同様の手順で式が複製され、writeObject
の呼び出しにより、複製された式の値とこの式の値が照合されます。oldExp
- ストリームに書き込まれる式。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.