com.yamicha.php.serial
クラス PHPReference

java.lang.Object
  上位を拡張 com.yamicha.php.serial.PHPReference
すべての実装されたインタフェース:
PHPData, java.io.Serializable, java.lang.Cloneable

public class PHPReference
extends java.lang.Object
implements PHPData

PHP 参照型をラップするクラスです。
PHPReference 型では、参照はデータのポインタを使って解決されます。

関連項目:
直列化された形式

フィールドの概要
protected  PHPData data
          この PHPReference 型が表す参照先の PHPData です。
protected  int number
          変換の際、内部で使用される参照番号です。
 
コンストラクタの概要
PHPReference(PHPData o)
          参照先ポインタを渡し、新しく PHPReference を構築します。
 
メソッドの概要
 PHPData copy()
          この PHPData 型をコピーしたデータを返します。
 boolean equals(PHPData o)
          オブジェクト同士を比較します。
 int getDataType()
          この PHPData オブジェクトが表すデータ型を返します。
 int getNumber()
          番号を取得します。
 PHPData getObject()
          この PHPReference が表す参照先のオブジェクトを返します。
 int getPHPType()
          この PHPData オブジェクトに格納された PHP データ型を返します。
 PHPReference getReference()
          この PHPReference が表す参照先のオブジェクトを返します。
 PHPReference getReference(PHPReference r)
          指定した PHPReference が表す参照先のオブジェクトを返します。
 PHPData getReferenceObject()
          この PHPReference が表す参照先のオブジェクトを返します。
 PHPData getReferenceObject(PHPReference r)
          この PHPReference が表す参照先のオブジェクトを返します。
 java.lang.String getTreeString(int nest, PHPData[] pd)
          この PHPData を表す文字列を返します。
 boolean isDefined()
          番号が定義されているかを調べます。
 void reset()
          番号をリセットし、0 を設定します。
 byte[] serialize(java.lang.String code)
          この PHPData 型をシリアライズします。
 void setNumber(int n)
          内部で使用されるメソッドです。
 java.lang.String toString()
           
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

data

protected PHPData data
この PHPReference 型が表す参照先の PHPData です。


number

protected int number
変換の際、内部で使用される参照番号です。具体的には、変換する PHPData の中でこの参照が何番目にあるのかを表します。

コンストラクタの詳細

PHPReference

public PHPReference(PHPData o)
参照先ポインタを渡し、新しく PHPReference を構築します。

パラメータ:
o - この PHPReference が表す参照先
メソッドの詳細

getDataType

public int getDataType()
インタフェース PHPData の記述:
この PHPData オブジェクトが表すデータ型を返します。
例えば PHPConstant.TYPE_GENERAL が返されれば、このオブジェクトは普遍型であり、PHPGeneralData 型にキャストできます。

定義:
インタフェース PHPData 内の getDataType
戻り値:
このオブジェクトが表すデータ型。PHPConstant の TYPE_ で始まる定数で返される
関連項目:
PHPConstant

getPHPType

public int getPHPType()
インタフェース PHPData の記述:
この PHPData オブジェクトに格納された PHP データ型を返します。
例えば PHPConstant.PHP_STRING が返されれば、これは文字列型です。ただし、文字列に関しては特殊であり、PHP_STRING 及び PHP_STRING_JAVA の2つの定数が用意されています。
これは、PHP 変数としての扱いは同じであるものの、前者は byte[] 配列で、後者は String 型で文字列を管理していることを表します。

定義:
インタフェース PHPData 内の getPHPType
戻り値:
このオブジェクトに格納された PHP データ型。PHPConstant の PHP_ で始まる定数で返される

getNumber

public int getNumber()
番号を取得します。内部で使用されるメソッドです。 通常は使用する必要はありませんが、PHPSerialize.prepare メソッドを使った後でこのメソッドを使うと、この参照が変換後にどのような数値になるかを調べることができます。

戻り値:
この参照の番号

setNumber

public void setNumber(int n)
内部で使用されるメソッドです。 ユーザーはこのメソッドを使って値を設定してはいけません。正しい変換が行われなくなります。

パラメータ:
n - 新しい番号

reset

public void reset()
番号をリセットし、0 を設定します。


isDefined

public boolean isDefined()
番号が定義されているかを調べます。reset() メソッドを使うと未定義に戻ります。

戻り値:
番号が定義されていれば true

serialize

public byte[] serialize(java.lang.String code)
                 throws PHPSerializeException
インタフェース PHPData の記述:
この PHPData 型をシリアライズします。
リファレンス変換は行われませんので、リファレンス型を含むデータに用いると失敗します。 ただし、事前に PHPSerialize.prepare を実行したデータを変換する場合は、この限りではありません。
通常は PHPSerialize のインスタンスを生成し、その serialize メソッドから変換を行ってください。

定義:
インタフェース PHPData 内の serialize
パラメータ:
code - 文字列をバイトに変換する際に使用する文字コード
戻り値:
変換後のバイト配列
例外:
PHPSerializeException

getObject

public PHPData getObject()
この PHPReference が表す参照先のオブジェクトを返します。参照が参照されていることもあります。

戻り値:
参照先オブジェクト

getReference

public PHPReference getReference()
この PHPReference が表す参照先のオブジェクトを返します。参照が参照されている場合には、最もオブジェクトに近い参照が返されます。循環参照は null が返ります。

戻り値:
参照先オブジェクト。多重参照の場合は実体に最も近いリファレンス

getReferenceObject

public PHPData getReferenceObject()
この PHPReference が表す参照先のオブジェクトを返します。参照が参照されている場合には、参照をたどった上でオブジェクトが返されます。循環参照は null が返ります。

戻り値:
参照先オブジェクト。多重参照の場合もオブジェクト

getReference

public PHPReference getReference(PHPReference r)
指定した PHPReference が表す参照先のオブジェクトを返します。参照が参照されている場合には、最もオブジェクトに近い参照が返されます。循環参照は null が返ります。
このメソッドは多重参照解決のため、内部で使用されています。通常は引数なし版を使ってください。

パラメータ:
r - 参照元オブジェクト
戻り値:
参照先オブジェクト。多重参照の場合は実体に最も近いリファレンス

getReferenceObject

public PHPData getReferenceObject(PHPReference r)
この PHPReference が表す参照先のオブジェクトを返します。参照が参照されている場合には、参照をたどった上でオブジェクトが返されます。循環参照は null が返ります。
このメソッドは多重参照解決のため、内部で使用されています。通常は引数なし版を使ってください。

パラメータ:
r - 参照元オブジェクト
戻り値:
参照先オブジェクト。多重参照の場合もオブジェクト

equals

public boolean equals(PHPData o)
オブジェクト同士を比較します。この場合の比較は少々特殊であり、渡された値が参照先である場合に true を返します。

パラメータ:
o - 比較するオブジェクト
戻り値:
オブジェクトが参照先の場合のみ true

copy

public PHPData copy()
インタフェース PHPData の記述:
この PHPData 型をコピーしたデータを返します。
ただし、リファレンスのコピーは正しく動作しませんので、リファレンスを含むオブジェクトをコピーする場合には、必ず PHPSerialize.copy メソッドを使用する必要があります。

定義:
インタフェース PHPData 内の copy

toString

public java.lang.String toString()
オーバーライド:
クラス java.lang.Object 内の toString

getTreeString

public java.lang.String getTreeString(int nest,
                                      PHPData[] pd)
インタフェース PHPData の記述:
この PHPData を表す文字列を返します。 toString() メソッドにより内部で使用されていますので、普段は toString() メソッドを使ってください。

定義:
インタフェース PHPData 内の getTreeString
パラメータ:
nest - 階層の深さ
pd - これまでに読み込んだ PHPData
戻り値:
文字列表現