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;
37 * @param klass {@link java.lang.Class}型
39 private JsTypes(Class<? extends JsValue> klass){
42 if(JsComposition.class.isAssignableFrom(this.klass)){
43 this.isComposition = true;
45 this.isComposition = false;
52 * {@link java.lang.Class}型から対応する型列挙を返す。
54 * @param carg 任意のjava.lang.Class型変数
55 * @return 型列挙。JSON型に由来しないクラスが指定されたときはnull
56 * @throws NullPointerException 引数がnull
58 public static JsTypes getJsTypes(Class<?> carg)
59 throws NullPointerException{
60 if(carg == null) throw new NullPointerException();
62 for(JsTypes types : VALUE_ARRAY){
63 if(types.klass == carg) return types;
70 * 対応する{@link java.lang.Class}型を返す。
72 * @return java.lang.Class型
74 public Class<? extends JsValue> getJsClass(){
79 * このJSON型が子要素を持ちうるか判定する。
81 * <p>子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
83 * @return 子要素を持ちうるならtrue
85 public boolean isComposition(){
86 return this.isComposition;