2 * composition type value
4 * License : The MIT License
5 * Copyright(c) 2010 olyutorskii
8 package jp.sourceforge.jovsonz;
11 * 子要素を持つJSON型の抽象インタフェース。
13 * <p>JSON最上位構造であるための必要条件。
15 * <p>子要素を持ちうるJSON型はOBJECT型かARRAY型のみ。
19 public interface JsComposition<E> extends JsValue, Iterable<E> {
24 * <p>OBJECT型の場合は直下のPAIR総数。</p>
26 * <p>ARRAY型の場合は直下の子要素総数。</p>
30 public abstract int size();
37 public abstract boolean isEmpty();
42 public abstract void clear();
45 * このValueおよび子孫に変更があったか判定する。
47 * <p>Value生成直後はfalseでなければならない。
50 * 再セーブの必要があるかどうかの判定などを目的とする。
52 * <p>変更が可能なValueはOBJECT型かARRAY型のみ。
56 public abstract boolean hasChanged();
59 * このValueおよび子孫に変更がなかったことにする。
61 public abstract void setUnchanged();