public Object set(EStructuralFeature feature, int index, Object value) { if (feature.isMany()) { CDOList list = getList(feature); return list.set(index, value); } return setValue(feature, value); }
/** * @see #write(CDODataOutput, int) * @since 3.0 */ public void convertEObjects(CDOIDProvider idProvider) { if (!(containerID instanceof CDOID)) { containerID = idProvider.provideCDOID(containerID); } EStructuralFeature[] features = getAllPersistentFeatures(); for (int i = 0; i < features.length; i++) { EStructuralFeature feature = features[i]; if (feature.isMany()) { CDOList list = getValueAsList(i); if (list != null) { boolean isFeatureMap = FeatureMapUtil.isFeatureMap(feature); for (int j = 0; j < list.size(); j++) { Object value = list.get(j, false); EStructuralFeature innerFeature = feature; // Prepare for possible feature map if (isFeatureMap) { Entry entry = (FeatureMap.Entry) value; innerFeature = entry.getEStructuralFeature(); value = entry.getValue(); } if (value != null && innerFeature instanceof EReference) { CDOID newValue = idProvider.provideCDOID(value); if (newValue != value) { list.set(j, newValue); } } } } } else { checkNoFeatureMap(feature); Object value = getValue(i); if (value != null && feature instanceof EReference) { CDOID newValue = idProvider.provideCDOID(value); if (newValue != value) { setValue(i, newValue); } } } } }