예제 #1
0
        /// //////////////////////////////////////////////////////////////////////////////////
        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);
        }
예제 #3
0
 /// //////////////////////////////////////////////////////////////////////////////////
 public override CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours)
 {
     if (Parametres.Count == 1)
     {
         return(Parametres2i[0].GetArbreProprietesAccedees(arbreEnCours));
     }
     return(arbreEnCours);
 }
예제 #4
0
 /// //////////////////////////////////////////////////////////////////////////////////
 public virtual CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours)
 {
     foreach (C2iExpression exp in Parametres)
     {
         exp.GetArbreProprietesAccedees(arbreEnCours);
     }
     return(arbreEnCours);
 }
예제 #5
0
        /// //////////////////////////////////////////////////////////////////////////////////
        public override CArbreDefinitionsDynamiques GetArbreProprietesAccedees(CArbreDefinitionsDynamiques arbreEnCours)
        {
            if (Parametres.Count != 2)
            {
                return(arbreEnCours);
            }
            CArbreDefinitionsDynamiques arbreObjet = Parametres2i[0].GetArbreProprietesAccedees(arbreEnCours);

            return(Parametres2i[1].GetArbreProprietesAccedees(arbreObjet));
        }
예제 #6
0
        //----------------------------------------------------------
        /// <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);
 }