ReadOnlyHasValue implements HasValue<ValueChangeEvent<V>, V>, Serializable { @Override public void setReadOnly(boolean readOnly) { if (!readOnly) { throw new IllegalArgumentException("Not Writable"); } } ReadOnlyHasValue(SerializableConsumer<V> valueProcessor,
            V emptyValue);  ReadOnlyHasValue(SerializableConsumer<V> valueProcessor); @Override void setValue(V value); @Override V getValue(); @Override Registration addValueChangeListener(
            ValueChangeListener<? super ValueChangeEvent<V>> listener); @Override boolean isRequiredIndicatorVisible(); @Override void setRequiredIndicatorVisible(boolean requiredIndicatorVisible); @Override void setReadOnly(boolean readOnly); @Override boolean isReadOnly(); @Override V getEmptyValue();  }
@Test(expected = IllegalArgumentException.class) public void testRO() { hasValue.setReadOnly(false); }