Esempio n. 1
0
        public CDefinitionProprieteDynamique
        (
            string strNomConvivial,
            string strNomPropriete,
            CTypeResultatExpression type,
            bool bHasSubProprietes,
            bool bIsReadOnly,
            string strRubrique
        )
        {
            m_strNomConvivial = strNomConvivial.Trim() == ""?strNomPropriete:strNomConvivial;
            string strCle         = "";
            string strPropSansCle = "";

            if (DecomposeNomProprieteUnique(strNomPropriete, ref strCle, ref strPropSansCle))
            {
                //Si la propriété contient déjà un type, et que ce n'est pas le même
                //que le type de moi même, et qu'on n'appelle pas directement
                //le constructeur de CDefintionProrieteDynamique mais celui d'une classe
                //dérivée (dans ce cas CLEType != BS). En effet, on peut appeller un
                //new CDefinitionProprieteDynamique directement en lui passant le CLETYPE,
                //Mais qu'il ne s'agisse pas de BS. Dans ce cas, si pas de vérif, on créera
                //une propriété avec #BS|#PP|Libelle par exemple si on a passé #PP comme nom
                //de propriété
                if (strCle != CleType && CleType != c_strCleType)
                {
                    strNomPropriete = c_strCaractereStartCleType + CleType + c_strCaractereEndCleType + strNomPropriete;
                }
            }
            else
            {
                strNomPropriete = c_strCaractereStartCleType + CleType + c_strCaractereEndCleType + strNomPropriete;
            }
            m_strNomPropriete   = strNomPropriete;
            m_typeDonnee        = type;
            m_bHasSubProprietes = bHasSubProprietes;
            m_bIsReadOnly       = bIsReadOnly;
            m_strRubrique       = strRubrique == null?"":strRubrique;
        }
Esempio n. 2
0
        /// ///////////////////////////////////////////////////////////
        public override CResultAErreur Serialize(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }
            result = base.Serialize(serializer);
            if (!result)
            {
                return(result);
            }
            bool bHasTypeSource = m_objetPourAnalyseSource != null;

            serializer.TraiteBool(ref bHasTypeSource);
            if (bHasTypeSource)
            {
                switch (serializer.Mode)
                {
                case ModeSerialisation.Ecriture:
                    CTypeResultatExpression tp = m_objetPourAnalyseSource.TypeResultatExpression;
                    result = tp.Serialize(serializer);
                    break;

                case ModeSerialisation.Lecture:
                    CTypeResultatExpression tpLecture = new CTypeResultatExpression();
                    result = tpLecture.Serialize(serializer);
                    m_objetPourAnalyseSource = new CObjetPourSousProprietes(tpLecture);
                    break;
                }
            }
            else
            {
                m_objetPourAnalyseSource = null;
            }
            return(result);
        }
Esempio n. 3
0
 ///////////////////////////////////////////////
 public void SetTypeDonnee(CTypeResultatExpression typeResultat)
 {
     m_typeDonnee = typeResultat;
 }
        /// ///////////////////////////////////////////////////////////
        public override CResultAErreur VerifieParametres()
        {
            CResultAErreur    result = CResultAErreur.True;
            CInfo2iExpression info   = GetInfos();

            /*SC LE 9/1 : le nombre de paramètre est donnée par les définitions de paramètres
             * if ( info.NbParametres != Parametres.Count )
             * {
             *      string strMes = "Le nombre de paramètres est incorrect ("+info.NbParametres.ToString()+" attendu";
             *      if ( info.NbParametres > 1 )
             *              strMes+="s";
             *      result.EmpileErreur(strMes);
             *      return result;
             * }*/
            bool bSurchargeTrouvee = false;

            foreach (CInfo2iDefinitionParametres defPar in info.InfosParametres)
            {
                if (defPar.TypesDonnees.Length <= Parametres.Count)
                {
                    bSurchargeTrouvee = true;
                    int nParametre = 0;
                    foreach (C2iExpression exp in Parametres)
                    {
                        nParametre++;
                        if (exp == null)
                        {
                            result.EmpileErreur(I.T("The @1 parameter is null|105", nParametre.ToString()));
                            return(result);
                        }
                        else
                        {
                            if (nParametre <= defPar.TypesDonnees.Length)
                            {
                                CTypeResultatExpression typeAttendu = defPar.TypesDonnees[nParametre - 1];

                                if (exp.TypeDonnee != null && !exp.TypeDonnee.CanConvertTo(typeAttendu))
                                {
                                    bSurchargeTrouvee = false;
                                    break;
                                }
                            }
                            else if (GetNbParametresNecessaires() != -1)
                            {
                                bSurchargeTrouvee = false;
                                break;
                            }
                        }
                    }
                }
                if (bSurchargeTrouvee)
                {
                    break;
                }
            }
            if (!bSurchargeTrouvee)
            {
                result.EmpileErreur(I.T("No '@1' function overload match paramters|106", info.Texte));
            }
            return(result);
        }
 /// //////////////////////////////////////////
 protected CTypeResultatExpression(CTypeResultatExpression tp, bool bIsArrayOfTypeNatif)
 {
     m_typeExpressionNatif = tp;
     m_typeDotNetNatif     = null;
     m_bIsArray            = bIsArrayOfTypeNatif;
 }
 /// //////////////////////////////////////////
 public CTypeResultatExpression(Type tp, bool bIsArrayOfTypeNatif)
 {
     m_typeDotNetNatif     = tp;
     m_bIsArray            = bIsArrayOfTypeNatif;
     m_typeExpressionNatif = null;
 }
Esempio n. 7
0
 /// ///////////////////////////////////////////////////////
 public CInfo2iExpression(int nNiveau, string strIdExpression, string strTexte, CTypeResultatExpression typeDonnee, string strDescription, string strCategorie)
 {
     Init(nNiveau, strIdExpression, strTexte, typeDonnee, strDescription, strCategorie);
 }
 //-------------------------------------------------------------------------
 public CInfoUnParametreExpression(string strNom, Type tp, bool bIsSortieSequence)
 {
     NomParametre     = strNom;
     TypeDonnee       = new CTypeResultatExpression(tp, false);
     IsSortieSequence = bIsSortieSequence;
 }
 //-------------------------------------------------------------------------
 public CInfoUnParametreExpression(string strNom, Type tp)
 {
     NomParametre = strNom;
     TypeDonnee   = new CTypeResultatExpression(tp, false);
 }
 //-------------------------------------------------------------------------
 public CInfoUnParametreExpression(string strNom, CTypeResultatExpression typeDonnee, bool bIsSortieSequence)
 {
     NomParametre     = strNom;
     TypeDonnee       = typeDonnee;
     IsSortieSequence = bIsSortieSequence;
 }
 //-------------------------------------------------------------------------
 public CInfoUnParametreExpression(string strNom, CTypeResultatExpression typeDonnee)
 {
     NomParametre = strNom;
     TypeDonnee   = typeDonnee;
 }