public bool validate_UniqueID(EObject eObject, DiagnosticChain diagnostics, Dictionary <object, object> context) { bool result = true; String id = EcoreUtil.getID(eObject); if (id != null) { Resource resource = eObject.eResource(); if (resource != null) { EObject otherEObject = resource.getEObject(id); if (eObject != otherEObject && otherEObject != null) { result = false; if (diagnostics != null) { diagnostics.add (createDiagnostic (BasicDiagnostic.ERROR, DIAGNOSTIC_SOURCE, EOBJECT__UNIQUE_ID, "_UI_DuplicateID_diagnostic", new Object[] { id, getObjectLabel(eObject, context), getObjectLabel(otherEObject, context) }, new Object[] { eObject, otherEObject, id }, context)); } } } } return(result); }
public bool validate_EveryReferenceIsContained(EObject eObject, DiagnosticChain diagnostics, Dictionary <object, object> context) { bool result = true; if (eObject.eResource() != null) { foreach (EReference reference in eObject.eClass().eAllReferences) { if (eObject.eIsSet(reference)) { EObject eCrossReferenceObject = eObject.eGet(reference) as EObject; if (eCrossReferenceObject.eResource() == null && !eCrossReferenceObject.eIsProxy() && !reference.transient) { result = false; if (diagnostics != null) { diagnostics.add (createDiagnostic (BasicDiagnostic.ERROR, DIAGNOSTIC_SOURCE, EOBJECT__EVERY_REFERENCE_IS_CONTAINED, "_UI_DanglingReference_diagnostic", new Object[] { getFeatureLabel(reference, context), getObjectLabel(eObject, context), getObjectLabel(eCrossReferenceObject, context) }, new Object[] { eObject, reference, eCrossReferenceObject }, context)); } else { break; } } } } /* * for (EContentsEList.FeatureIterator<EObject> i = (EContentsEList.FeatureIterator<EObject>)eObject.eCrossReferences().iterator(); i.hasNext();) * { * EObject eCrossReferenceObject = i.next(); * if (eCrossReferenceObject.eResource() == null && !eCrossReferenceObject.eIsProxy() && !i.feature().isTransient()) * { * result = false; * if (diagnostics != null) * { * diagnostics.add * (createDiagnostic * (BasicDiagnostic.ERROR, * DIAGNOSTIC_SOURCE, * EOBJECT__EVERY_REFERENCE_IS_CONTAINED, * "_UI_DanglingReference_diagnostic", * new Object[] * { * getFeatureLabel(i.feature(), context), * getObjectLabel(eObject, context), * getObjectLabel(eCrossReferenceObject, context) * }, * new Object[] { eObject, i.feature(), eCrossReferenceObject }, * context)); * } * else * { * break; * } * } * } */ } return(result); }