4 * License : The MIT License
5 * Copyright(c) 2010 olyutorskii
8 package jp.sourceforge.jovsonz;
16 NUMBER (JsNumber .class),
18 STRING (JsString .class),
20 BOOLEAN (JsBoolean.class),
22 ARRAY (JsArray .class),
24 OBJECT (JsObject .class),
29 private static final JsTypes[] VALUE_ARRAY = values();
31 private final Class<? extends JsValue> klass;
32 private final boolean isComposition;
36 * @param klass {@link java.lang.Class}型
38 private JsTypes(Class<? extends JsValue> klass){
41 if(JsComposition.class.isAssignableFrom(this.klass)){
42 this.isComposition = true;
44 this.isComposition = false;
51 * {@link java.lang.Class}型から対応する型列挙を返す。
52 * @param carg 任意のjava.lang.Class型変数
53 * @return 型列挙。JSON型に由来しないクラスが指定されたときはnull
54 * @throws NullPointerException 引数がnull
56 public static JsTypes getJsTypes(Class<?> carg)
57 throws NullPointerException{
58 if(carg == null) throw new NullPointerException();
60 for(JsTypes types : VALUE_ARRAY){
61 if(types.klass == carg) return types;
68 * 対応する{@link java.lang.Class}型を返す。
69 * @return java.lang.Class型
71 public Class<? extends JsValue> getJsClass(){
76 * このJSON型が子要素を持ちうるか判定する。
77 * 子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
78 * @return 子要素を持ちうるならtrue
80 public boolean isComposition(){
81 return this.isComposition;