class ObservableList extends AbstractObservableValue<List<? extends E>> implements List<E>,
                                                                                                   SettableValue<List<? extends E>> {

  @Override
  public void clear() {
    if (myInnerList.isEmpty()) {
      return;
    }

    myInnerList.clear();
    notifyContentsChanged();
  }

  public  ObservableList();
  public  ObservableList(@NotNull Iterable<? extends E> otherCollection);

}