if (!eObject.eIsSet(eAttribute))
{
return true;
}
boolean result = true;
EDataType eDataType = eAttribute.getEAttributeType();
EValidator rootValidator = getRootEValidator(context);
Object value = eObject.eGet(eAttribute);
if (FeatureMapUtil.isFeatureMap(eAttribute))
{
@SuppressWarnings("unchecked") Collection<FeatureMap.Entry> featureMap = (Collection<FeatureMap.Entry>)value;
EClass eClass = eObject.eClass();
Map<EStructuralFeature, DiagnosticChain> entryFeatureToDiagnosticChainMap = null;
for (Iterator<FeatureMap.Entry> i = featureMap.iterator(); i.hasNext() && (result || diagnostics != null); )
{
FeatureMap.Entry entry = i.next();
EStructuralFeature entryFeature = entry.getEStructuralFeature();
if (entryFeature instanceof EAttribute &&
ExtendedMetaData.INSTANCE.getAffiliation(eClass, entryFeature) == eAttribute)
{
EDataType entryType = (EDataType)entryFeature.getEType();
Object entryValue = entry.getValue();
boolean entryIsValid = rootValidator.validate(entryType, entryValue, null, context);
if (!entryIsValid)
{
result = false;