Esempio n. 1
0
        public bool validate(EDataType eDataType, Object value, DiagnosticChain diagnostics, Dictionary <object, object> context)
        {
            Object eValidator = eValidatorRegistry[eDataType.eContainer() as EPackage];

            if (eValidator == null)
            {
                //TODO default case
                eValidator = null;// eValidatorRegistry.get(null);
            }

            return(doValidate((EValidator)eValidator, eDataType, value, diagnostics, context));
        }
        public virtual bool validate(EDataType eDataType, object value, DiagnosticChain diagnostics, Dictionary <object, object> context)
        {
            if (!eDataType.isInstance(value))
            {
                if (value == null)
                {
                    return(true);
                }
                else
                {
                    if (diagnostics != null)
                    {
                        reportDataValueTypeViolation(eDataType, value, diagnostics, context);
                    }
                    return(false);
                }
            }

            if (eDataType.eContainer() == getEPackage())
            {
                return(validate(eDataType.getClassifierID(), value, diagnostics, context));
            }
            else
            {
                return(true);

                /*TODO
                 * return
                 * new DynamicEDataTypeValidator(eDataType)
                 * {
                 * // Ensure that the class loader for this class will be used downstream.
                 * //
                 * }.validate(eDataType, value, diagnostics, context);
                 */
            }
        }