/// ////////////////////////////////////////////////////////////////////////////////// public override CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours) { CArbreDefinitionsDynamiques newArbre = new CArbreDefinitionsDynamiques(DefinitionPropriete); arbreEnCours.AddSousArbre(newArbre); return(newArbre); }
/// //////////////////////////////////// ///////////////////////////////// public override CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours) { CArbreDefinitionsDynamiques arbre = base.GetArbreProprietesAccedees(arbreEnCours); if (DefinitionMethode != null && ObjetPourAnalyseSourceConnu != null) { MethodInfo info = ObjetPourAnalyseSourceConnu.TypeResultatExpression.TypeDotNetNatif.GetMethod(DefinitionMethode.NomProprieteSansCleTypeChamp); if (info != null) { object[] attribs = info.GetCustomAttributes(typeof(OptimizedByAttribute), true); if (attribs.Length > 0) { OptimizedByAttribute optim = (OptimizedByAttribute)attribs[0]; foreach (string strProp in optim.Proprietes) { arbreEnCours.AddSousProprieteString(strProp); } } } } else if (FonctionDynamique != null && FonctionDynamique.Formule != null) { FonctionDynamique.Formule.GetArbreProprietesAccedees(arbre); } return(arbre); }
/// ////////////////////////////////////////////////////////////////////////////////// public override CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours) { if (Parametres.Count == 1) { return(Parametres2i[0].GetArbreProprietesAccedees(arbreEnCours)); } return(arbreEnCours); }
/// ////////////////////////////////////////////////////////////////////////////////// public virtual CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours) { foreach (C2iExpression exp in Parametres) { exp.GetArbreProprietesAccedees(arbreEnCours); } return(arbreEnCours); }
/// ////////////////////////////////////////////////////////////////////////////////// public override CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours) { if (Parametres.Count != 2) { return(arbreEnCours); } CArbreDefinitionsDynamiques arbreObjet = Parametres2i[0].GetArbreProprietesAccedees(arbreEnCours); return(Parametres2i[1].GetArbreProprietesAccedees(arbreObjet)); }
//---------------------------------------------------------- /// <summary> /// Le data du result contient la valeur de la propriété pour l'objet /// </summary> /// <param name="objet"></param> /// <param name="strPropriete"></param> /// <returns></returns> public static string[] GetProprietesAccedees(Type typeSource, string strProprieteComplete) { string strSuitePropriete = ""; List <string> lstProps = new List <string>(); string strProprieteCompleteOriginale = strProprieteComplete; string strChemin = ""; do { strSuitePropriete = ""; string[] strProprietes = strProprieteComplete.Split('.'); string strPropriete = strProprietes[0]; if (strProprieteComplete.Length > strPropriete.Length) { strSuitePropriete = strProprieteComplete.Substring(strPropriete.Length + 1); } string strCleType = ""; string strProprieteSansCle = ""; if (CDefinitionMethodeDynamique.DecomposeNomProprieteUnique(strPropriete, ref strCleType, ref strProprieteSansCle)) { Type tpInterpreteur = null; if (m_tableCleTypeToTypeInterpreteur.TryGetValue(strCleType.ToUpper(), out tpInterpreteur)) { IInterpreteurProprieteDynamiqueAccedantADautresProprietes interpreteur = Activator.CreateInstance(tpInterpreteur) as IInterpreteurProprieteDynamiqueAccedantADautresProprietes; if (interpreteur != null) { CArbreDefinitionsDynamiques arbreProps = new CArbreDefinitionsDynamiques(null); interpreteur.AddProprietesAccedees(arbreProps, typeSource, strProprieteSansCle); foreach (string strProp in arbreProps.GetListeProprietesAccedees()) { lstProps.Add(strChemin + strProp); } } else { lstProps.Add(strChemin + strPropriete); } strChemin += strPropriete + "."; } else { strChemin += strPropriete + "."; } strProprieteComplete = strSuitePropriete; } else { return(lstProps.ToArray()); } }while (strSuitePropriete.Length > 0); return(lstProps.ToArray()); }
/// ///////////////////////////////////////////////////////////////////// public void RemoveSousArbre(CArbreDefinitionsDynamiques arbre) { m_listeSousArbres.Remove(arbre); }
/// ///////////////////////////////////////////////////////////////////// public void AddSousArbre(CArbreDefinitionsDynamiques arbre) { m_listeSousArbres.Add(arbre); }