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
クラスによって返される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()
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, 2014, Oracle and/or its affiliates. All rights reserved.