/** * This returns the {@link #getDefaultId(EStructuralFeature) default identifier} of the {@link #feature feature} * if it's present, * or dash-separated concatenation of the default identifier of each {@link #parentReferences parent reference}. * This key that must uniquely identify this descriptor * among the other descriptors from the same {@link IItemPropertySource#getPropertyDescriptor(Object, Object) property source}. */ public String getId(Object object) { if (feature != null) { return getDefaultId(feature); } else if (parentReferences != null && parentReferences.length != 0) { StringBuffer result = new StringBuffer(getDefaultId(parentReferences[0])); for (int i = 1; i < parentReferences.length; ++i) { result.append('-'); result.append(getDefaultId(parentReferences[i])); } return result.toString(); } else { return displayName; } }