public class JavaScriptUtility extends Object
修飾子とタイプ | フィールドと説明 |
---|---|
static ThreadLocal<Boolean> |
NO_CACHE
内部においてJavaBeansに関するメタデータのキャッシュを行いたくない場合には、このフラグを設定して下さい.
|
static String |
NON_CONVERT_CHARSET
文字コード変換を行わずに、バイト配列を扱う為の文字コード
|
static int |
SAMPLE_DATA_ARRAY_LENGTH_DEFAULT
newInstanceFilledSampleData(Class, String) メソッドで利用される、 サンプルデータが配列の場合の要素数。 |
static boolean |
SAMPLE_DATA_FOR_BOOLEAN_DEFAULT
newInstanceFilledSampleData(Class, String) メソッドで利用される、 java.lang.Boolean用のサンプルデータ初期値。 |
static long |
SAMPLE_DATA_FOR_DATE_MILLIS_DEFAULT
newInstanceFilledSampleData(Class, String) メソッドで利用される、 java.util.Date用のサンプルデータ初期値(ミリ秒)。 |
static double |
SAMPLE_DATA_FOR_NUMBER_DEFAULT
newInstanceFilledSampleData(Class, String) メソッドで利用される、 java.lang.Number用のサンプルデータ初期値。 |
static String |
SAMPLE_DATA_FOR_STRING_DEFAULT
newInstanceFilledSampleData(Class, String) メソッドで利用される、 java.lang.String用のサンプルデータ初期値。 |
修飾子とタイプ | メソッドと説明 |
---|---|
static void |
addExcludeClass4newInstanceFilledSampleData(Class<?> excludeConvertClass)
newInstanceFilledSampleData(Class, String) 等のメソッドで、 サンプルデータ設定済みインスタンスの生成を行わないようするクラスを追加します。 |
static Object |
executeFunction(String pagePath,
String functionName,
Class<?> returnType,
Object... args)
JavaScript関数を実行します。
|
static void |
executeVoidFunction(String pagePath,
String functionName,
Object... args)
JavaScript関数を実行します。
|
static Map<String,PropertyDescriptor> |
getBeanPropertyMap(Class<?> beanClass)
JavaBeanクラスのプロパティ情報を取得します。
|
static Map<String,Field> |
getPublicFieldMap(Class<?> clazz)
引数で指定されたクラスのPublicフィールドに関する情報を格納したMapを返却します。
|
static void |
initializeSampleData(String str,
Number num,
Boolean bool,
Date date,
int arrayLength)
newInstanceFilledSampleData(Class, String) メソッドで利用されるサンプルデータを初期化します。 |
static Object |
javaBeanToJS(Object bean)
JavaオブジェクトをJavaScriptオブジェクトに変換します。
|
static Object |
jsToJavaBean(Object jsObject,
Class<?> beanType)
JavaScriptオブジェクトをJavaオブジェクトに変換します。
|
static Object |
jsToJavaBean(Object jsObject,
String beanClassName)
JavaScriptオブジェクトをJavaオブジェクトに変換します。
|
static Object |
jsToJavaBean(Object jsObject,
String beanClassName,
ClassLoader classLoader)
JavaScriptオブジェクトをJavaオブジェクトに変換します。
|
static Object |
newInstanceFilledSampleData(Class<?> beanType,
String sampleValue)
指定されたクラスの サンプルデータ設定済みインスタンスを生成します。
|
static Object |
newInstanceFilledSampleData(String beanClassName,
ClassLoader classLoader,
String sampleValue)
指定されたクラスの サンプルデータ設定済みインスタンスを生成します。
|
static Object |
newInstanceFilledSampleData(String beanClassName,
String sampleValue)
指定されたクラスの サンプルデータ設定済みインスタンスを生成します。
|
public static final String NON_CONVERT_CHARSET
public static final ThreadLocal<Boolean> NO_CACHE
public static final String SAMPLE_DATA_FOR_STRING_DEFAULT
newInstanceFilledSampleData(Class, String)
メソッドで利用される、 java.lang.String用のサンプルデータ初期値。public static final double SAMPLE_DATA_FOR_NUMBER_DEFAULT
newInstanceFilledSampleData(Class, String)
メソッドで利用される、 java.lang.Number用のサンプルデータ初期値。public static final boolean SAMPLE_DATA_FOR_BOOLEAN_DEFAULT
newInstanceFilledSampleData(Class, String)
メソッドで利用される、 java.lang.Boolean用のサンプルデータ初期値。public static final long SAMPLE_DATA_FOR_DATE_MILLIS_DEFAULT
newInstanceFilledSampleData(Class, String)
メソッドで利用される、 java.util.Date用のサンプルデータ初期値(ミリ秒)。public static final int SAMPLE_DATA_ARRAY_LENGTH_DEFAULT
newInstanceFilledSampleData(Class, String)
メソッドで利用される、 サンプルデータが配列の場合の要素数。public static void addExcludeClass4newInstanceFilledSampleData(Class<?> excludeConvertClass)
newInstanceFilledSampleData(Class, String)
等のメソッドで、 サンプルデータ設定済みインスタンスの生成を行わないようするクラスを追加します。excludeClassList4newInstanceFilledSampleData
- サンプルデータ設定済みインスタンスの生成を行わないようするクラスJavaScriptUtility#newInstanceFilledSampleData(Class, String)}
,
JavaScriptUtility#newInstanceFilledSampleData(String, String)}
,
JavaScriptUtility#newInstanceFilledSampleData(String, ClassLoader, String)}
public static Object executeFunction(String pagePath, String functionName, Class<?> returnType, Object... args) throws IllegalConversionException, Exception
javaBeanToJS(Object)
を利用しています。jsToJavaBean(Object, Class)
を利用しています。javaBeanToJS(Object)
、および、 jsToJavaBean(Object, Class)
の説明を参照してください。 変換後のJavaクラスを配列で指定する場合、
例えば、Memberクラスの配列を変換後のクラスに指定する場合は以下のようになります。
(Member[]) JavaScriptUtility.executeFunction(pagePath, functionName, Member[].class, args);
pagePath
- ページパス(拡張子なし)functionName
- 実行関数名returnType
- 関数返却値の変換後のJavaクラスargs
- 関数の引数IllegalConversionException
- Java形式 から JavaScript形式への変換、または、 JavaScript形式 から Java形式への変換に失敗した場合。Exception
- JavaScript関数の実行時にエラーが発生した場合。public static void executeVoidFunction(String pagePath, String functionName, Object... args) throws IllegalConversionException, Exception
executeFunction(pagePath, functionName, void.class, args)
を呼び出すことに相当します。pagePath
- ページパス(拡張子なし)functionName
- 実行関数名args
- 関数の引数IllegalConversionException
- Java形式からJavaScript形式への変換に失敗した場合。Exception
- JavaScript関数の実行時にエラーが発生した場合。executeFunction(String, String, Class, Object...)
public static Map<String,PropertyDescriptor> getBeanPropertyMap(Class<?> beanClass) throws IntrospectionException
PropertyDescriptor
」 の形式です。beanClass
- JavaBeanクラスPropertyDescriptor
」の形式)IntrospectionException
- イントロスペクション中に例外が発生した場合public static Map<String,Field> getPublicFieldMap(Class<?> clazz)
Field
です。clazz
- 対象クラスField
」の形式)public static void initializeSampleData(String str, Number num, Boolean bool, Date date, int arrayLength)
newInstanceFilledSampleData(Class, String)
メソッドで利用されるサンプルデータを初期化します。str
- java.lang.String用のサンプルデータ。空文字設定不可。SAMPLE_DATA_FOR_STRING_DEFAULT
が設定されます。num
- java.lang.Number用のサンプルデータ。SAMPLE_DATA_FOR_NUMBER_DEFAULT
)が設定されます。bool
- java.lang.Boolean用のサンプルデータ。SAMPLE_DATA_FOR_BOOLEAN_DEFAULT
)が設定されます。date
- java.util.Dateの用のサンプルデータ。SAMPLE_DATA_FOR_DATE_MILLIS_DEFAULT
)が設定されます。arrayLength
- サンプルデータが配列の場合の要素数。SAMPLE_DATA_ARRAY_LENGTH_DEFAULT
が設定されます。public static Object javaBeanToJS(Object bean) throws IntrospectionException, IOException, IllegalAccessException, InvocationTargetException
Java | JavaScript | |
---|---|---|
null | → | null |
java.lang.String | → | String |
java.lang.Number | → | Number |
java.lang.Boolean | → | Boolean |
java.util.Date | → | Date |
java.util.Calendar | ||
byte[] | → | String (バイナリ) |
javax.activation.DataHandler | ||
配列 | → | Array |
bean
- 変換対象のJavaオブジェクトIntrospectionException
- イントロスペクション中に例外が発生した場合IllegalAccessException
- 引数に渡されたJavaBeanのGetterにアクセスできない場合InvocationTargetException
- 引数に渡されたJavaBeanのGetterが例外をスローする場合IOException
- バイナリデータの変換に失敗した場合public static Object jsToJavaBean(Object jsObject, Class<?> beanType) throws IllegalConversionException, IOException, InstantiationException, IllegalAccessException, IntrospectionException
JavaScript | Java | 備考 | |
---|---|---|---|
null | → | null | - |
undefined | |||
String | → | java.lang.String | - |
java.lang.Character | 先頭1文字をCharacterに変換します。 | ||
String (バイナリ) | → | byte[] | 「String (バイナリ)」とは、 JavaScriptAPIの「Fileオブジェクト」や「VirtualFileオブジェクト」の「load()関数」などで 取得できるファイルデータ(バイナリ)の事を意味します。 |
javax.activation.DataHandler | |||
Number | → | java.lang.Number | java.lang.Numberのサブクラスが指定された場合は、 その型に変換されます。 変換可能なjava.lang.Numberのサブクラスは以下の6クラスです。
|
Boolean | → | java.lang.Boolean | - |
Date | → | java.util.Date | - |
java.util.Calendar | |||
Array | → | 配列 | JavaScriptのArray要素の型がすべて同じであり、 かつ、その型がJavaの配列要素の型に変換可能でなければなりません。 |
任意のJavaScriptオブジェクト | → | java.lang.String | JavaScriptオブジェクトの文字列表現が変換可能な場合に限る。 |
java.lang.Number | |||
java.lang.Boolean |
jsObject
- 変換対象のJavaScriptオブジェクトbeanType
- 変換後のJavaクラスIllegalConversionException
- 変換処理に失敗した場合InstantiationException
- 指定された変換後のJavaクラスが、抽象クラス、インタフェース、配列クラス、プリミティブ型、または void
を表す場合。または、指定された変換後のJavaクラスが無引数コンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合IllegalAccessException
- 指定された変換後のJavaクラス、またはその無引数コンストラクタにアクセスできない場合。または、JavaBeanプロパティのSetterメソッドにアクセスできない場合。IntrospectionException
- イントロスペクション中に例外が発生した場合IOException
- バイナリデータの変換に失敗した場合public static Object jsToJavaBean(Object jsObject, String beanClassName) throws IllegalConversionException, IOException, InstantiationException, IllegalAccessException, IntrospectionException, ClassNotFoundException
jsToJavaBean(jsObject, beanClassName, java.lang.Thread.currentThread().getContextClassLoader())
を呼び出すことに相当します。jsObject
- 変換対象のJavaScriptオブジェクトbeanClassName
- 変換後のJavaクラス名IllegalConversionException
- 変換処理に失敗した場合InstantiationException
- 指定された変換後のJavaクラスが、抽象クラス、インタフェース、配列クラス、プリミティブ型、または void
を表す場合。または、指定された変換後のJavaクラスが無引数コンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合IllegalAccessException
- 指定された変換後のJavaクラス、またはその無引数コンストラクタにアクセスできない場合。または、JavaBeanプロパティのSetterメソッドにアクセスできない場合。IntrospectionException
- イントロスペクション中に例外が発生した場合ClassNotFoundException
- 指定された変換後のJavaクラスが見つからなかった場合IOException
- バイナリデータの変換に失敗した場合jsToJavaBean(Object, String, ClassLoader)
,
jsToJavaBean(Object, Class)
,
Class#getName()}
public static Object jsToJavaBean(Object jsObject, String beanClassName, ClassLoader classLoader) throws IllegalConversionException, IOException, InstantiationException, IllegalAccessException, IntrospectionException, ClassNotFoundException
jsObject
- 変換対象のJavaScriptオブジェクトbeanClassName
- 変換後のJavaクラス名classLoader
- 変換後のJavaクラスをロードする為のクラスローダIllegalConversionException
- 変換処理に失敗した場合InstantiationException
- 指定された変換後のJavaクラスが、抽象クラス、インタフェース、配列クラス、プリミティブ型、または void
を表す場合。または、指定された変換後のJavaクラスが無引数コンストラクタを保持しない場合、あるいはインスタンスの生成がほかの理由で失敗した場合IllegalAccessException
- 指定された変換後のJavaクラス、またはその無引数コンストラクタにアクセスできない場合。または、JavaBeanプロパティのSetterメソッドにアクセスできない場合。IntrospectionException
- イントロスペクション中に例外が発生した場合ClassNotFoundException
- 指定された変換後のJavaクラスが見つからなかった場合IOException
- バイナリデータの変換に失敗した場合jsToJavaBean(Object, Class)
,
Class#getName()}
public static Object newInstanceFilledSampleData(Class<?> beanType, String sampleValue) throws IntrospectionException, IllegalAccessException, InvocationTargetException
initializeSampleData(String, Number, Boolean, Date, int)
で設定可能です。Javaクラス | サンプルデータ | 備考 |
---|---|---|
java.lang.String | SAMPLE_DATA_FOR_STRING_DEFAULT |
引数「sampleValue」が指定されている場合は、その値が設定されます。 JavaBeanプロパティの場合は「prop_プロパティ名」形式で設定されます。 |
java.lang.Character | java.lang.Stringのサンプルデータ1文字目を元に生成 | - |
java.lang.Number | new Double(SAMPLE_DATA_FOR_NUMBER_DEFAULT ) |
- |
java.lang.Boolean | Boolean.valueOf(SAMPLE_DATA_FOR_BOOLEAN_DEFAULT ) |
- |
java.util.Date | new Date(SAMPLE_DATA_FOR_DATE_MILLIS_DEFAULT ) |
「Mon June 19 2008 12:34:56 GMT+0900 (JST)」をあらわします。 |
java.util.Calendar | java.util.Dateのサンプルデータを元に生成 | - |
クラスA ├─プロパティ a : <A> ├─プロパティ b : <B> ├─プロパティ wrap : <String> ├─プロパティ a' : <A[]> └─プロパティ b' : <B[]> クラスB ├─プロパティ a : <A> ├─プロパティ b : <B> ├─プロパティ c : <C> ├─プロパティ wrap : <String> ├─プロパティ a' : <A[]> ├─プロパティ b' : <B[]> └─プロパティ c' : <C[]> クラスC ├─プロパティ a : <A> ├─プロパティ b : <B> ├─プロパティ c : <C> ├─プロパティ wrap : <String> ├─プロパティ a' : <A[]> ├─プロパティ b' : <B[]> └─プロパティ c' : <C[]>
newInstanceFilledSampleData(クラスA, "サンプル");
を実行した場合の返却値は以下のようになります。
返却値 ・・・① ├─ a = null (∵自身と同じクラス) ├─ b ・・・② │ ├─ a = null (∵①で走査済み) │ ├─ b = null (∵自身と同じクラス) │ ├─ c ・・・③ │ │ ├─ a = null (∵①で走査済み) │ │ ├─ b = null (∵②で走査済み) │ │ ├─ c = null (∵自身と同じクラス) │ │ ├─ wrap = "prop_wrap" │ │ ├─ a' = 空の配列 (∵①で走査済み) │ │ ├─ b' = 空の配列 (∵②で走査済み) │ │ └─ c' = 空の配列 (∵③で走査済み) │ ├─ wrap = "prop_wrap" │ ├─ a' = 空の配列 (∵①で走査済み) │ ├─ b' = 空の配列 (∵②で走査済み) │ └─ c' = 空の配列 (∵③で走査済み) ├─ wrap = "prop_wrap" ├─ a' = 空の配列 (∵①で走査済み) └─ b' = 空の配列 (∵②で走査済み)
beanType
- 生成するインスタンスのクラスsampleValue
- 指定されたクラスがjava.lang.String、または、java.lang.Characterだった場合のサンプルデータの値。IntrospectionException
- イントロスペクション中に例外が発生した場合IllegalAccessException
- 指定されたクラス、またはその無引数コンストラクタにアクセスできない場合。または、JavaBeanプロパティのSetterメソッドにアクセスできない場合InvocationTargetException
- JavaBeanのSetterが例外をスローする場合initializeSampleData(String, Number, Boolean, Date, int)
public static Object newInstanceFilledSampleData(String beanClassName, ClassLoader classLoader, String sampleValue) throws IntrospectionException, IllegalAccessException, InvocationTargetException, ClassNotFoundException
beanClassName
- 生成するインスタンスのクラス名。classLoader
- beanClassNameで指定されるクラスをロードする為のクラスローダsampleValue
- 指定されたクラスがjava.lang.String、または、java.lang.Characterだった場合のサンプルデータの値。IntrospectionException
- イントロスペクション中に例外が発生した場合IllegalAccessException
- 指定されたクラス、またはその無引数コンストラクタにアクセスできない場合。または、JavaBeanプロパティのSetterメソッドにアクセスできない場合InvocationTargetException
- JavaBeanのSetterが例外をスローする場合ClassNotFoundException
- 指定されたクラスが見つからなかった場合newInstanceFilledSampleData(Class, String)
,
Class#getName()}
public static Object newInstanceFilledSampleData(String beanClassName, String sampleValue) throws IntrospectionException, IllegalAccessException, InvocationTargetException, ClassNotFoundException
newInstanceFilledSampleData(beanClassName, Thread.currentThread().getContextClassLoader(), sampleValue)
を呼び出すことに相当します。beanClassName
- 生成するインスタンスのクラス名。sampleValue
- 指定されたクラスがjava.lang.String、または、java.lang.Characterだった場合のサンプルデータの値。IntrospectionException
- イントロスペクション中に例外が発生した場合IllegalAccessException
- 指定されたクラス、またはその無引数コンストラクタにアクセスできない場合。または、JavaBeanプロパティのSetterメソッドにアクセスできない場合InvocationTargetException
- JavaBeanのSetterが例外をスローする場合ClassNotFoundException
- 指定されたクラスが見つからなかった場合newInstanceFilledSampleData(String, ClassLoader, String)
,
Class#getName()}
Copyright © 2012 NTT DATA INTRAMART CORPORATION