public static void SetInfo(C2iExpression formule, CInfo2iExpression info) { if (formule != null) { m_cache[formule.GetType()] = info; } }
public static CInfo2iExpression GetCache(C2iExpression formule) { if (formule != null) { CInfo2iExpression info = null; m_cache.TryGetValue(formule.GetType(), out info); return(info); } return(null); }
public static CDessineurExpressionGraphique GetDessineur(CRepresentationExpressionGraphique expression) { C2iExpression formule = expression.Formule; CDessineurExpressionGraphique dessineur = null; if (formule != null) { Type tp = formule.GetType(); while (tp != null) { if (m_dicDessineurs.TryGetValue(tp, out dessineur)) return dessineur; tp = tp.BaseType; } } return DefaultInstance; }
/// /////////////////////////////////////////////////////////// public override CResultAErreur VerifieParametres() { CResultAErreur result = CResultAErreur.True; if (m_definitionMethode != null) { if (ObjetPourAnalyseSourceConnu == null) { return(result); } CInfoMethodeDynamique info = new CInfoMethodeDynamique(ObjetPourAnalyseSourceConnu.TypeResultatExpression.TypeDotNetNatif, DefinitionMethode.NomProprieteSansCleTypeChamp); CInfoParametreMethodeDynamique[] parametres = info.InfosParametres; if (parametres.Length != Parametres.Count) { result.EmpileErreur(I.T("The number parameters @1 method is incorrect|121", DefinitionMethode.NomProprieteSansCleTypeChamp)); return(result); } int nParam = 0; foreach (CInfoParametreMethodeDynamique defPar in parametres) { C2iExpression expression = Parametres2i[nParam]; if (expression != null && expression.TypeDonnee == null) { result.EmpileErreur(I.T("the @1 parameter is invalide in method @2|20125", expression.GetString(), DefinitionMethode.NomProprieteSansCleTypeChamp)); } else if (expression == null || expression.GetType() != typeof(C2iExpressionNull) && !expression.TypeDonnee.CanConvertTo(new CTypeResultatExpression(defPar.TypeParametre, false))) { result.EmpileErreur(I.T("The @1 method parameters doesn't correspond|122", DefinitionMethode.NomProprieteSansCleTypeChamp)); break; } nParam++; } } else if (DefinitionFonction != null) { IEnumerable <CParametreFonctionDynamique> parametres = DefinitionFonction.ParametresDeLaFonction; if (parametres.Count() != Parametres.Count) { result.EmpileErreur(I.T("The number parameters @1 method is incorrect|121", DefinitionFonction.NomProprieteSansCleTypeChamp)); return(result); } int nParam = 0; foreach (CParametreFonctionDynamique defPar in parametres) { C2iExpression expression = Parametres2i[nParam]; if (expression != null && expression.TypeDonnee == null) { result.EmpileErreur(I.T("the @1 parameter is invalide in method @2|20125", expression.GetString(), defPar.Nom)); } else if (expression == null || expression.GetType() != typeof(C2iExpressionNull) && !expression.TypeDonnee.CanConvertTo(defPar.TypeResultatExpression)) { result.EmpileErreur(I.T("The @1 method parameters doesn't correspond|122", DefinitionFonction.NomProprieteSansCleTypeChamp)); break; } nParam++; } } else if (m_strNomMethode.Length > 0) { result.EmpileErreur(I.T("Unknown method @1|20126", m_strNomMethode)); } else { result.EmpileErreur(I.T("Unknown method @1|20126", DefinitionFonction.NomProprieteSansCleTypeChamp)); } return(result); }