|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectshohaku.core.lang.ValueOf
文字列を基本的なデータ型とその集合に変換する機能を提供します。
機能を最小限にまとめた、基本的なデータ構造を記述する簡易言語です。
またデータ型を文字列に変換する機能も提供します。これによりデータの永続化も可能です。
構文例:以下はリストの要素に、数値、リスト、マップ、リストを入れ子にするセット、が定義されています。
[ 98741123L, [12G, 1234.67800G], {1234='火', 1234.56='炎'}, (`文`,`字`, ['春','夏','秋','冬']) ]
実行例:実行は以下のように簡単です。
Map map = (Map) ValueOf.decode("{1='火', 2='炎', 3='焔'}");
以下に文法の概要を一覧します。
文法の詳細に関しては、対応する各データ型の関数を参照してください。
文法概要: | |||
1. | 数値 | [-][0|0x|0b][0-9A-F.+-e][u|U|s|S|i|I|l|L|f|F|d|D|h|H|g|G] | 例: 123U, -0x10FFL, 1-E4, 82385920.3242G |
2. | 文字列 | 'string' | 例: '春夏秋冬', '\u6625の桜' |
3. | 文字 | `char` | 例: 'あ', '\u6625' |
4. | 論理 | true|false | 例: true, false |
5. | Null | null | 例: null |
6. | 日付 | /yyyy-mm-dd[T| ]hh:mi:ss.zzz[+|-]00:00[l|L|d|D|g|G]/ | 例: /2007-05-23T09:51:29.345+09:00/, /2007-05-23 09:51:29/, /2007-05-23/ |
7. | リスト | [ element, ... ] | 例: [ 12345.678D, /2007-05-23/, '春夏秋冬', `夏` ] |
8. | セット | ( element, ... ) | 例: ( 12345.678D, /2007-05-23/, '春夏秋冬', `夏` ) |
9. | マップ | { kay=value, ... } | 例: { 0=12345.678D, 1=/2007-05-23/, 2='春夏秋冬', 3=`夏` } |
[ $max(0, #num#), #foo# ]
Map context = { num=1, foo="火" }
Map macros = { max= new Closure() {
public Object evaluate(Object p) {
final List args = (List) p;
return Math.max(args.get(0).intValue(), args.get(1).intValue());
}
}
List list = (List) ValueOf.macro("[ $max(0, #num#), #foo# ]", macros, context);
out: list ==> [1, "火"]
文法概要: | |||
1. | マクロ関数 | $[_:a-zA-Z0-9]+(element, ...) | 例: $indexOf(#str#, `a`), $String:concat('春', '冬') |
2. | 変数 | #[^#]+# | 例: #name#, #a:0.Z# |
コンストラクタの概要 | |
ValueOf()
|
メソッドの概要 | |
static java.lang.Object |
decode(java.lang.String src)
データを生成して返却します。 |
static java.math.BigDecimal |
decodeBigDecimal(java.lang.String src)
文字列を BigDecimal に変換します。 |
static java.math.BigInteger |
decodeBigInteger(java.lang.String src)
拡張規則で文字列を BigInteger に変換します。 |
static java.lang.Boolean |
decodeBoolean(java.lang.String src)
拡張規則で文字列を Boolean に変換します。 |
static java.lang.Byte |
decodeByte(java.lang.String src)
拡張規則で文字列を Byte に変換します。 |
static java.lang.Character |
decodeCharacter(java.lang.String src)
Unicode escapes の文字表現を文字型へ変換して返却します。 |
static java.lang.Object |
decodeDateTime(java.lang.String src)
文字列を日付オブジェクトに変換して返却します。 |
static java.lang.Double |
decodeDouble(java.lang.String src)
文字列を Double に変換します。 |
static java.lang.Float |
decodeFloat(java.lang.String src)
文字列を Float に変換します。 |
static java.lang.Integer |
decodeInteger(java.lang.String src)
拡張規則で文字列を Integer に変換します。 |
static java.util.List |
decodeList(java.lang.String src)
リストを生成して返却します。 |
static java.lang.Long |
decodeLong(java.lang.String src)
拡張規則で文字列を Long に変換します。 |
static java.util.Map |
decodeMap(java.lang.String src)
マップを生成して返却します。 |
static java.lang.Object |
decodeNull(java.lang.String src)
Java と同等の規則で文字列を Null に変換します。 |
static java.lang.Number |
decodeNumber(java.lang.String src)
拡張規則で文字列を数値オブジェクトに変換します。 |
static java.util.Set |
decodeSet(java.lang.String src)
セットを生成して返却します。 |
static java.lang.Short |
decodeShort(java.lang.String src)
拡張規則で文字列を Short に変換します。 |
static java.lang.String |
decodeString(java.lang.String src)
Unicode escapes の文字表現を文字列型へ変換して返却します。 |
static java.lang.String |
encode(java.lang.Object src)
オブジェクトから文字列を生成して返却します。 |
static java.lang.String |
encodeBigDecimal(java.math.BigDecimal src)
拡張規則で BigDecimal を文字列に変換します。 |
static java.lang.String |
encodeBigInteger(java.math.BigInteger src)
拡張規則で BigInteger を文字列に変換します。 |
static java.lang.String |
encodeBoolean(java.lang.Boolean src)
Boolean を文字列に変換します。 |
static java.lang.String |
encodeByte(java.lang.Byte src)
拡張規則で Byte を文字列に変換します。 |
static java.lang.String |
encodeCharacter(java.lang.Character src)
文字を Unicode escapes の文字列表現へ変換して返却します。 |
static java.lang.String |
encodeDateTime(java.util.Calendar cal)
カレンダーの情報を日付時刻文字列に変換します。 |
static java.lang.String |
encodeDateTime(java.util.Date date)
日付オブジェクトの情報を日付時刻文字列に変換します。 |
static java.lang.String |
encodeDateTime(java.lang.Long millis)
1970-01-01 からのミリ秒の情報を日付時刻文字列に変換します。 |
static java.lang.String |
encodeDouble(java.lang.Double src)
拡張規則で Double を文字列に変換します。 |
static java.lang.String |
encodeFloat(java.lang.Float src)
拡張規則で Float を文字列に変換します。 |
static java.lang.String |
encodeInteger(java.lang.Integer src)
拡張規則で Integer を文字列に変換します。 |
static java.lang.String |
encodeList(java.util.List src)
リストを文字列表現へ変換して返却します。 |
static java.lang.String |
encodeLong(java.lang.Long src)
拡張規則で Long を文字列に変換します。 |
static java.lang.String |
encodeMap(java.util.Map src)
マップを文字列表現へ変換して返却します。 |
static java.lang.String |
encodeNull()
Null を示す文字列に変換します。 |
static java.lang.String |
encodeNumber(java.lang.Number src)
拡張規則で Number を文字列に変換します。 |
static java.lang.String |
encodeSet(java.util.Set src)
セットを文字列表現へ変換して返却します。 |
static java.lang.String |
encodeShort(java.lang.Short src)
拡張規則で Short を文字列に変換します。 |
static java.lang.String |
encodeString(java.lang.String src)
文字列を Unicode escapes の文字表現へ変換して返却します。 |
static java.lang.Object |
macro(java.lang.String src,
java.util.Map macros,
java.util.Map context)
データを生成して返却します、マクロ関数と変数を利用可能としています。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public ValueOf()
メソッドの詳細 |
public static java.lang.Object decode(java.lang.String src)
src
- 生成元の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.math.BigDecimal decodeBigDecimal(java.lang.String src)
src
- 生成元の文字列
public static java.math.BigInteger decodeBigInteger(java.lang.String src)
src
- 生成元の文字列
public static java.lang.Boolean decodeBoolean(java.lang.String src)
src
- 生成元の文字列
public static java.lang.Byte decodeByte(java.lang.String src)
src
- 生成元の文字列
public static java.lang.Character decodeCharacter(java.lang.String src)
src
- Unicode escapes 形式の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.lang.Object decodeDateTime(java.lang.String src)
src
- 生成元の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.lang.Double decodeDouble(java.lang.String src)
src
- 生成元の文字列
public static java.lang.Float decodeFloat(java.lang.String src)
src
- 生成元の文字列
public static java.lang.Integer decodeInteger(java.lang.String src)
src
- 生成元の文字列
public static java.util.List decodeList(java.lang.String src)
src
- 生成元の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.lang.Long decodeLong(java.lang.String src)
src
- 生成元の文字列
public static java.util.Map decodeMap(java.lang.String src)
src
- 生成元の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.lang.Object decodeNull(java.lang.String src)
src
- 生成元の文字列
public static java.lang.Number decodeNumber(java.lang.String src)
src
- 生成元の文字列
public static java.util.Set decodeSet(java.lang.String src)
src
- 生成元の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.lang.Short decodeShort(java.lang.String src)
src
- 生成元の文字列
public static java.lang.String decodeString(java.lang.String src)
src
- Unicode escapes 形式の文字列
java.lang.IllegalArgumentException
- 構文が不正の場合public static java.lang.String encode(java.lang.Object src)
src
- 生成元のオブジェクト
java.lang.IllegalArgumentException
- データが不正の場合public static java.lang.String encodeBigDecimal(java.math.BigDecimal src)
src
- 数値オブジェクト
public static java.lang.String encodeBigInteger(java.math.BigInteger src)
src
- 数値オブジェクト
public static java.lang.String encodeBoolean(java.lang.Boolean src)
src
- Boolean オブジェクト
public static java.lang.String encodeByte(java.lang.Byte src)
src
- 数値オブジェクト
public static java.lang.String encodeCharacter(java.lang.Character src)
src
- 変換元の文字
public static java.lang.String encodeDateTime(java.util.Calendar cal)
cal
-
public static java.lang.String encodeDateTime(java.util.Date date)
date
-
public static java.lang.String encodeDateTime(java.lang.Long millis)
millis
- 1970-01-01 からのミリ秒
public static java.lang.String encodeDouble(java.lang.Double src)
src
- 数値オブジェクト
public static java.lang.String encodeFloat(java.lang.Float src)
src
- 数値オブジェクト
public static java.lang.String encodeInteger(java.lang.Integer src)
src
- 数値オブジェクト
public static java.lang.String encodeList(java.util.List src)
src
- リスト
public static java.lang.String encodeLong(java.lang.Long src)
src
- 数値オブジェクト
public static java.lang.String encodeMap(java.util.Map src)
src
- マップ
public static java.lang.String encodeNull()
public static java.lang.String encodeNumber(java.lang.Number src)
src
- 数値オブジェクト
public static java.lang.String encodeSet(java.util.Set src)
src
- セット
public static java.lang.String encodeShort(java.lang.Short src)
src
- 数値オブジェクト
public static java.lang.String encodeString(java.lang.String src)
src
- 変換元の文字列
public static java.lang.Object macro(java.lang.String src, java.util.Map macros, java.util.Map context)
src
- 生成元の文字列macros
- マクロ名とマクロのマップ、構造は Map<String, Closure> である必要があります。context
- 変数のマップ、構造は Map<String, Object> である必要があります。
java.lang.IllegalArgumentException
- 構文が不正の場合
|
|||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |