public void setValue(Object[] value) { checkWritable(); try { if (hasCollectionFragment()) { ((CollectionFragment) fragment).set(type.normalize(value)); } else { ((SimpleFragment) fragment).put(key, type.normalize(value)); } } catch (IllegalArgumentException e) { throw new IllegalArgumentException("item of list property '" + name + "': " + e.getMessage()); } // mark fragment dirty! }