com.yamicha.php.serial
クラス PHPSerialize

java.lang.Object
  上位を拡張 com.yamicha.php.serial.PHPSerialize
直系の既知のサブクラス:
PHPSessionSerialize

public class PHPSerialize
extends java.lang.Object

PHPData をシリアル化するクラスです。ここでシリアル化したデータは、不正な値が混ざっていない限り、PHP の unserialize 関数で復元できることが保証されます。


フィールドの概要
protected  java.lang.String code
          文字コードを表します。
 
コンストラクタの概要
PHPSerialize()
          文字コードを ascii として PHPSerialize を構築します。
PHPSerialize(java.lang.String c)
          指定した文字コードで PHPSerialize を構築します。
 
メソッドの概要
 PHPData copy(PHPData d)
          PHPData データをコピーします。
 byte[] execute(PHPData pd)
          以前に prepare メソッドによって準備しておいたデータをシリアル化し、結果を byte[] 配列に格納して返します。
 PHPData prepare(PHPData d)
          変換を前もって準備します。
protected  PHPData referenceChange(PHPData d)
          参照を変換するメソッドです。
 PHPData reset(PHPData pd)
          参照をリセットします。
protected  int searchNumber(PHPReference r, PHPData d)
           
protected  int[] searchNumber(PHPReference r, PHPData parent, PHPData name, PHPData value, int[] apos)
           
protected  ReferenceResult searchObject(PHPReference r, PHPData d)
           
protected  ReferenceResult searchObject(PHPReference r, PHPData parent, PHPData name, PHPData value, int pos)
           
protected  ReferenceResult searchReference(PHPData d)
           
protected  ReferenceResult searchReference(PHPData parent, PHPData name, PHPData value, int pos)
           
 byte[] serialize(PHPData pd)
          データをシリアル化し、結果を byte[] 配列に格納して返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

code

protected java.lang.String code
文字コードを表します。

コンストラクタの詳細

PHPSerialize

public PHPSerialize()
文字コードを ascii として PHPSerialize を構築します。


PHPSerialize

public PHPSerialize(java.lang.String c)
指定した文字コードで PHPSerialize を構築します。

パラメータ:
c - 文字コード
メソッドの詳細

serialize

public byte[] serialize(PHPData pd)
                 throws PHPSerializeException
データをシリアル化し、結果を byte[] 配列に格納して返します。

パラメータ:
pd - PHPData 型のデータ
戻り値:
変換後のデータ。このデータは PHP の unserialize にて復元できる
例外:
PHPSerializeException

execute

public byte[] execute(PHPData pd)
               throws PHPSerializeException
以前に prepare メソッドによって準備しておいたデータをシリアル化し、結果を byte[] 配列に格納して返します。

パラメータ:
pd - PHPData 型のデータ。ただし、事前に prepare を実行しておくこと
戻り値:
変換後のデータ。このデータは PHP の unserialize にて復元できる
例外:
PHPSerializeException

reset

public PHPData reset(PHPData pd)
参照をリセットします。事前に prepare を行ったデータに変更を加えた場合には、必ずこのメソッドを通してから serialize 変換してください。

パラメータ:
pd - PHPData 型のデータ。このデータが直接変更される
戻り値:
変換後のデータ。ただし、引数と同じものが返るだけである

prepare

public PHPData prepare(PHPData d)
変換を前もって準備します。準備後のデータは変更しないでください。変更した場合は、reset メソッドを呼び出した後で、再び prepare する必要があります。
データを準備した場合、変換は execute メソッドで行います。あらかじめ変換しているため、serialize メソッドより高速に動作します。

パラメータ:
d - 変換を準備する PHPData 型のデータ
戻り値:
変換後のデータ

copy

public PHPData copy(PHPData d)
PHPData データをコピーします。データが参照を含んでいる場合には、必ずこのメソッドを使ってください。

パラメータ:
d - コピー元のデータ
戻り値:
コピーされたデータ

referenceChange

protected PHPData referenceChange(PHPData d)
参照を変換するメソッドです。具体的には、多重参照を解決し、番号をセットします。
searchObject、searchReference、searchNumber などはこのメソッドが内部で使用するために提供されているメソッドです。

パラメータ:
d - 参照を変換するデータ。このデータが直接変更される
戻り値:
変換したデータ。ただし、引数の変数がそのまま返るだけである

searchReference

protected ReferenceResult searchReference(PHPData d)

searchReference

protected ReferenceResult searchReference(PHPData parent,
                                          PHPData name,
                                          PHPData value,
                                          int pos)

searchObject

protected ReferenceResult searchObject(PHPReference r,
                                       PHPData d)

searchObject

protected ReferenceResult searchObject(PHPReference r,
                                       PHPData parent,
                                       PHPData name,
                                       PHPData value,
                                       int pos)

searchNumber

protected int searchNumber(PHPReference r,
                           PHPData d)

searchNumber

protected int[] searchNumber(PHPReference r,
                             PHPData parent,
                             PHPData name,
                             PHPData value,
                             int[] apos)