com.yamicha.php.serial
クラス PHPGeneralData

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

public class PHPGeneralData
extends java.lang.Object
implements PHPData

PHP 普遍型をラップするクラスです。

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

フィールドの概要
protected  java.lang.Object data
          現在ラップしているデータを表します。
protected  int type
          ラップしているデータが何であるかを表します。
 
コンストラクタの概要
PHPGeneralData(boolean b)
          boolean 型のデータを使い、PHP Boolean 型を登録することでクラスを初期化します。
PHPGeneralData(byte[] b)
          Java byte[] 型のデータを使い、PHP String 型を登録することでクラスを初期化します。
PHPGeneralData(double d)
          double 型のデータを使い、PHP Float 型を登録することでクラスを初期化します。
PHPGeneralData(int i)
          int 型のデータを使い、PHP Integer 型を登録することでクラスを初期化します。
PHPGeneralData(java.lang.String s)
          Java String 型のデータを使い、PHP String 型を登録することでクラスを初期化します。
PHPGeneralData(java.lang.String s, java.lang.String enc)
          Java String 型のデータと指定文字コードを使い、PHP String 型を登録することでクラスを初期化します。
 
メソッドの概要
 PHPData copy()
          この PHPData 型をコピーしたデータを返します。
 boolean equals(java.lang.Object o)
          データを比較します。
 boolean getBoolean()
          データを boolean 型として取得します。
 byte[] getBytes()
          データを byte[] 型として取得します。
 byte[] getBytes(java.lang.String enc)
          データを byte[] 型として取得します。
 int getDataType()
          この PHPData オブジェクトが表すデータ型を返します。
 double getFloat()
          データを double 型として取得します。
 int getInt()
          データを int 型として取得します。
 java.lang.Object getObject()
          データを Object 型として取得します。
 int getPHPType()
          この PHPData オブジェクトに格納された PHP データ型を返します。
 java.lang.String getString()
          データを String 型として取得します。
 java.lang.String getString(java.lang.String code)
          データを String 型として取得します。
 java.lang.String getTreeString(int nest, PHPData[] pd)
          この PHPData を表す文字列を返します。
 byte[] serialize(java.lang.String code)
          この PHPData 型をシリアライズします。
 void setBoolean(boolean b)
          boolean 型のデータを PHP Boolean として登録します。
 void setBytes(byte[] b)
          Java byte[] 型のデータを PHP String 型として登録します。
 void setFloat(double d)
          double 型のデータを PHP Float として登録します。
 void setInt(int i)
          int 型のデータを PHP Integer として登録します。
 void setString(java.lang.String s)
          String 型のデータを PHP String として登録します。
 java.lang.String toString()
           
 
クラス java.lang.Object から継承されたメソッド
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

data

protected java.lang.Object data
現在ラップしているデータを表します。


type

protected int type
ラップしているデータが何であるかを表します。PHPConstant クラスの PHP_ で始まる定数です。

コンストラクタの詳細

PHPGeneralData

public PHPGeneralData(int i)
int 型のデータを使い、PHP Integer 型を登録することでクラスを初期化します。

パラメータ:
i - 整数データ

PHPGeneralData

public PHPGeneralData(double d)
double 型のデータを使い、PHP Float 型を登録することでクラスを初期化します。

パラメータ:
d - 小数データ

PHPGeneralData

public PHPGeneralData(boolean b)
boolean 型のデータを使い、PHP Boolean 型を登録することでクラスを初期化します。

パラメータ:
b - ブーリアンデータ

PHPGeneralData

public PHPGeneralData(java.lang.String s)
Java String 型のデータを使い、PHP String 型を登録することでクラスを初期化します。この場合の PHP 型は PHP_STRING_JAVA です。
この方法で登録されたデータは、シリアライズ時に指定したエンコードによってバイト配列に変換されます。

パラメータ:
s - 文字列データ

PHPGeneralData

public PHPGeneralData(byte[] b)
Java byte[] 型のデータを使い、PHP String 型を登録することでクラスを初期化します。この場合の PHP 型は PHP_STRING です。
この方法で登録されたデータは、シリアライズ時にそのまま使われるためバイナリデータを使用できますが、getString メソッドのエンコード指定なし版で String としてデータを取得した場合、デフォルトの文字セットで変換されます。

パラメータ:
b - 文字列あるいはバイナリデータ

PHPGeneralData

public PHPGeneralData(java.lang.String s,
                      java.lang.String enc)
Java String 型のデータと指定文字コードを使い、PHP String 型を登録することでクラスを初期化します。この場合の PHP 型は PHP_STRING であり、byte[] データとして扱われます。
この方法で登録されたデータは、シリアライズ時にそのまま使われるため、エンコードを気にする必要はありませんが、getString メソッドのエンコード指定なし版で String としてデータを取得した場合、デフォルトの文字セットで変換されるため、文字コードには注意が必要です。
エンコードが不正な場合、この PHPGeneralData の値は不定になります。
このメソッドの最も分かりやすい使い方として、マルチバイト文字で名づけられたハッシュ変数やオブジェクトの変数データを取得することがあります。
 // PHPArray から「変数」という名前のハッシュデータを取得したい。データは EUC-JP でエンコードされている
 PHPArray pa = ...;
 PHPData pd = pa.getValue(new PHPGeneralData("変数" , "EUC-JP"));
 // ...
 

パラメータ:
s - 文字列
enc - その文字列の変換に用いる文字コード
メソッドの詳細

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_ で始まる定数で返される

serialize

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

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

setInt

public void setInt(int i)
int 型のデータを PHP Integer として登録します。

パラメータ:
i - 整数データ

setFloat

public void setFloat(double d)
double 型のデータを PHP Float として登録します。PHP では小数型は Float だけですが、このクラスでは Java double である点に注意してください。

パラメータ:
d - 小数データ

setBoolean

public void setBoolean(boolean b)
boolean 型のデータを PHP Boolean として登録します。

パラメータ:
b - ブーリアンデータ

setString

public void setString(java.lang.String s)
String 型のデータを PHP String として登録します。この場合の PHP 型は PHP_STRING_JAVA です。
この方法で登録されたデータは、シリアライズ時に指定したエンコードによってバイト配列に変換されます。

パラメータ:
s - 文字列データ

setBytes

public void setBytes(byte[] b)
Java byte[] 型のデータを PHP String 型として登録します。この場合の PHP 型は PHP_STRING です。
この方法で登録されたデータは、シリアライズ時にそのまま使われるためバイナリデータを使用できますが、getString メソッドのエンコード指定なし版で String としてデータを取得した場合、デフォルトの文字セットで変換されます。

パラメータ:
b - 文字列あるいはバイナリデータ

getInt

public int getInt()
データを int 型として取得します。変換できないデータの場合は 0 を返します。

戻り値:
登録されているデータ

getFloat

public double getFloat()
データを double 型として取得します。変換できないデータの場合は 0 を返します。

戻り値:
登録されているデータ

getBoolean

public boolean getBoolean()
データを boolean 型として取得します。変換できないデータの場合は false を返します。

戻り値:
登録されているデータ

getString

public java.lang.String getString()
データを String 型として取得します。byte[] 配列はデフォルト文字コードで変換されます。

戻り値:
登録されているデータ

getString

public java.lang.String getString(java.lang.String code)
データを String 型として取得します。

パラメータ:
code - 変換に使う文字コード
戻り値:
登録されているデータ

getBytes

public byte[] getBytes()
データを byte[] 型として取得します。String 型はデフォルト文字コードで変換されます。 整数型や小数型などは1バイトに切り詰められます。

戻り値:
登録されているデータ

getBytes

public byte[] getBytes(java.lang.String enc)
データを byte[] 型として取得します。String 型は指定した文字コードで byte[] に変換されます。

パラメータ:
enc - 文字コード。String型の場合のみ有効
戻り値:
登録されているデータ

getObject

public java.lang.Object getObject()
データを Object 型として取得します。

戻り値:
登録されているデータ

equals

public boolean equals(java.lang.Object o)
データを比較します。ただし、中身のデータが同じであれば、同じとみなされます。

オーバーライド:
クラス java.lang.Object 内の equals
パラメータ:
o - 比較するオブジェクト
戻り値:
等しければ true

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
戻り値:
文字列表現

copy

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

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