Beispiel #1
0
  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);
  }
Beispiel #2
0
  /**
   * @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);
          }
        }
      }
    }
  }