クラス BmsType
- Object
-
- BmsType
-
public final class BmsType extends Object
メタ情報・チャンネルのデータ型を表します。当クラスが提供する機能は、データ型の情報参照、データの変換テスト、データ変換です。当クラスが提供する機能は、 主に
BmsContentから使用され、BMSコンテンツのデータに関する制御処理に用いられます。データ型一覧
データ型はBMSライブラリ側で規定されており、下記が全てです。
「データ型名(実際のデータ型名)」で表記します。- 関連項目:
BmsMeta,BmsChannel
-
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static BmsTypeARRAY1616進数値配列型static BmsTypeARRAY3636進数値配列型static BmsTypeBASE1616進数値型static BmsTypeBASE3636進数値型static BmsTypeINTEGER整数型static intNTYPE_ARRAYネイティブデータ型がBmsArrayであることを示します。static intNTYPE_DOUBLEネイティブデータ型がDoubleであることを示します。static intNTYPE_LONGネイティブデータ型がLongであることを示します。static intNTYPE_OBJECTネイティブデータ型がObjectであることを示します。static intNTYPE_STRINGネイティブデータ型がStringであることを示します。static BmsTypeNUMERIC実数型static BmsTypeOBJECT任意型static BmsTypeSTRING文字列型
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 Objectcast(Object src)指定オブジェクトをBMSデータ型が示す形式に変換します。static Objectcast(Object src, BmsType require)指定オブジェクトをBMSデータ型が示す形式に変換します。booleanequals(Object obj)BMSデータ型が同一かどうかを判定します。StringgetName()データ型の名称を取得します。intgetNativeType()BMSデータ型を示すためのデータのネイティブなデータ型を取得します。PatterngetPattern()文字列解析時の許容正規表現パターンを取得します。intgetRadix()数値データの基数を取得します。booleanisArrayType()BMSデータ型が配列型であるかどうかを取得します。booleanisNumberType()BMSデータ型が数値型であるかどうかを取得します。booleanisValueType()BMSデータ型が値型であるかどうかを取得します。static BmsTypeREGEX(String pattern)正規表現文字列型booleantest(String data)指定文字列が許容正規表現パターンにマッチするかどうかをテストします。StringtoString()データ型の名称を返します。
-
-
-
フィールドの詳細
-
NTYPE_LONG
public static final int NTYPE_LONG
ネイティブデータ型がLongであることを示します。- 関連項目:
- 定数フィールド値
-
NTYPE_DOUBLE
public static final int NTYPE_DOUBLE
ネイティブデータ型がDoubleであることを示します。- 関連項目:
- 定数フィールド値
-
NTYPE_STRING
public static final int NTYPE_STRING
ネイティブデータ型がStringであることを示します。- 関連項目:
- 定数フィールド値
-
NTYPE_ARRAY
public static final int NTYPE_ARRAY
ネイティブデータ型がBmsArrayであることを示します。- 関連項目:
- 定数フィールド値
-
NTYPE_OBJECT
public static final int NTYPE_OBJECT
ネイティブデータ型がObjectであることを示します。- 関連項目:
- 定数フィールド値
-
INTEGER
public static final BmsType INTEGER
整数型このデータ型の値は内部的にはlong型として扱われ、値の範囲は
Long.MIN_VALUEからLong.MAX_VALUEとなります。文字列で許可される表現は [\+\-]?[0-9]+ となり、前後の空白文字は許可されません。文字列の内容が 値の範囲を超えている場合の変換後の値は未定義です。
-
NUMERIC
public static final BmsType NUMERIC
実数型このデータ型の値は内部的にはdouble型として扱われ、値の範囲は
Double.MIN_VALUEからDouble.MAX_VALUEとなります。文字列で許可される表現は [\\+\\-]?[0-9]+(\\.[0-9]+)?([eE][\\+\\-]?[0-9]+)? となり、前後の空白文字は許可されません。 小数点以下の記述は必須ではありません。文字列の内容が値の範囲を超えている場合、および小数点以下の精度が double型で表現不可能な場合の変換後の値は未定義です。
-
STRING
public static final BmsType STRING
文字列型このデータ型の値は内部的にはStringとして扱われます。文字列の長さはStringが取り得る最大の長さまで 表現可能です。
-
BASE16
public static final BmsType BASE16
16進数値型このデータ型では、1個の16進数値を表現できます。数値は2文字で表現可能な0(00)~255(FF)までとなり、 その範囲を超える数値は表現できません。
castによるデータ変換において、文字列から変換する際は基数が16になることに 注意してください。例えば、変換元データが"80"の場合の出力はlong型の128Lになります。
-
BASE36
public static final BmsType BASE36
36進数値型このデータ型では、1個の36進数値を表現できます。数値は2文字で表現可能な0(00)~1295(ZZ)までとなり、 その範囲を超える数値は表現できません。
castによるデータ変換において、文字列から変換する際は基数が36になることに 注意してください。例えば、変換元データが"80"の場合の出力はlong型の288Lになります。
-
ARRAY16
public static final BmsType ARRAY16
-
ARRAY36
public static final BmsType ARRAY36
-
OBJECT
public static final BmsType OBJECT
-
-
メソッドの詳細
-
REGEX
public static BmsType REGEX(String pattern)
正規表現文字列型STRINGとは異なり、正規表現による書式の制約がある文字列型です。 それ以外の振る舞いは文字列型と同様です。- パラメータ:
pattern- 正規表現パターン- 戻り値:
- 指定した正規表現パターン制約のある文字列型
- 例外:
NullPointerException- patternがnullPatternSyntaxException- 正規表現の構文が無効である場合
-
equals
public boolean equals(Object obj)
BMSデータ型が同一かどうかを判定します。ネイティブデータ型、および文字列解析時の許容正規表現パターンが一致するものを同一と見なします。
-
getName
public final String getName()
データ型の名称を取得します。- 戻り値:
- データ型の名称
-
getPattern
public final Pattern getPattern()
文字列解析時の許容正規表現パターンを取得します。- 戻り値:
- 文字列解析時の許容正規表現パターン
-
getRadix
public final int getRadix()
数値データの基数を取得します。このメソッドが返す基数は、文字列から当該データ型へ変換する際に、期待する基数を返します。
INTEGER/NUMERICは10、BASE16/ARRAY16は16、BASE36/ARRAY36は36を返し、 それ以外の型は全て0を示します。- 戻り値:
- 数値データの基数
-
getNativeType
public final int getNativeType()
BMSデータ型を示すためのデータのネイティブなデータ型を取得します。- 戻り値:
- ネイティブデータ型
-
isNumberType
public final boolean isNumberType()
- 戻り値:
- 数値型である場合はtrue
-
isArrayType
public final boolean isArrayType()
BMSデータ型が配列型であるかどうかを取得します。ネイティブデータ型が
NTYPE_ARRAYを示すBMS型が該当します。- 戻り値:
- 配列型である場合はtrue
-
isValueType
public final boolean isValueType()
BMSデータ型が値型であるかどうかを取得します。BMSデータ型における「値型」とは、「配列型」「任意型」ではないデータ型全てを示します。
- 戻り値:
- 値型である場合はtrue
-
test
public final boolean test(String data)
指定文字列が許容正規表現パターンにマッチするかどうかをテストします。- パラメータ:
data- テストする文字列- 戻り値:
- マッチする場合はtrue
- 例外:
NullPointerException- dataがnull
-
cast
public final Object cast(Object src)
指定オブジェクトをBMSデータ型が示す形式に変換します。変換後のデータ型は、BMSデータ型が示すネイティブデータ型によって決まります。
このメソッドの変換処理では、BMSデータ型ごとに保有する許容正規表現パターンの影響を受けません。 変換元オブジェクトのデータ型から、BMSデータ型のネイティブデータ型への純粋なデータ変換処理を 提供するのみであることに注意してください。但し、BMSデータ型に設定された値の表現可能範囲の チェックは行われ、これに違反する場合は変換失敗となり例外がスローされます。
任意型への変換を行った場合、変換処理は行われず、戻り値はsrcと同じ参照を返します。
- パラメータ:
src- 変換元オブジェクト- 戻り値:
- 変換後オブジェクト
- 例外:
NullPointerException- srcがnullClassCastException- srcの変換に失敗、または数値が表現可能範囲を超えた
-
cast
public static Object cast(Object src, BmsType require)
指定オブジェクトをBMSデータ型が示す形式に変換します。変換後のデータ型は、要求データ型が示すネイティブデータ型によって決まります。
このメソッドの変換処理では、要求データ型が保有する許容正規表現パターンの影響を受けません。 変換元オブジェクトのデータ型から、要求データ型のネイティブデータ型への純粋なデータ変換処理を 提供するのみであることに注意してください。但し、要求データ型に設定された値の表現可能範囲の チェックは行われ、これに違反する場合は変換失敗となり例外がスローされます。
任意型への変換を行った場合、変換処理は行われず、戻り値はsrcと同じ参照を返します。
- パラメータ:
src- 変換元オブジェクトrequire- 要求データ型- 戻り値:
- 変換後オブジェクト
- 例外:
NullPointerException- srcがnullNullPointerException- requireがnullClassCastException- srcの変換に失敗、またはrequireの表現可能範囲を超えた
-
-