public string CSharpName(MetaConstant mconst, MetaModel mmodel, ClassKind kind = ClassKind.None, bool fullName = false)
        {
            string result = mconst.Name;

            if (fullName)
            {
                string fullNamePrefix;
                switch (kind)
                {
                case ClassKind.BuilderInstance:
                    fullNamePrefix = this.CSharpName(mmodel, this.ToModelKind(kind), !this.ContainsDeclaration(mmodel, mconst));
                    result         = fullNamePrefix + ".instance." + result;
                    break;

                case ClassKind.ImmutableInstance:
                case ClassKind.FactoryMethod:
                case ClassKind.Implementation:
                    fullNamePrefix = this.CSharpName(mmodel, this.ToModelKind(kind), !this.ContainsDeclaration(mmodel, mconst));
                    result         = fullNamePrefix + "." + result;
                    break;

                case ClassKind.Immutable:
                case ClassKind.Builder:
                case ClassKind.ImmutableOperation:
                case ClassKind.BuilderOperation:
                    if (mconst.DotNetName != null)
                    {
                        result = mconst.DotNetName;
                    }
                    else
                    {
                        fullNamePrefix = this.CSharpName(mconst.Namespace, this.ToNamespaceKind(kind), fullName);
                        result         = "global::" + fullNamePrefix + "." + result;
                    }
                    break;

                default:
                    fullNamePrefix = this.CSharpName(mconst.Namespace, this.ToNamespaceKind(kind), fullName);
                    result         = "global::" + fullNamePrefix + "." + result;
                    break;
                }
            }
            return(result);
        }
Exemple #2
0
     /// <summary>
 	/// Implements the constructor: MetaConstant()
 	/// Direct superclasses: global::MetaDslx.Core.MetaTypedElement, global::MetaDslx.Core.MetaDeclaration
 	/// All superclasses: global::MetaDslx.Core.MetaTypedElement, global::MetaDslx.Core.MetaDeclaration, global::MetaDslx.Core.MetaNamedElement, global::MetaDslx.Core.MetaDocumentedElement, global::MetaDslx.Core.MetaAnnotatedElement
     /// </summary>
     public virtual void MetaConstant(MetaConstant @this)
     {
         this.MetaTypedElement(@this);
         this.MetaDeclaration(@this);
     }