Beispiel #1
0
 public static string GetModifier(AccessModifier? access, MemberModifier? modifier)
 {
     if (modifier == null)
         return access.ToString().ToLower();
     else
         return string.Format("{0} {1}", access.ToString().ToLower(), modifier.ToString().ToLower());
 }
Beispiel #2
0
        protected virtual SpecificationDefinition GetSpecificationDefinition(MemberModifier memberModifier)
        {
            switch (memberModifier)
            {
            case MemberModifier.Virtual:
                return(SpecificationDefinition.Virtual);

            case MemberModifier.Override:
                return(SpecificationDefinition.Override);

            case MemberModifier.New:
                return(SpecificationDefinition.New);

            case MemberModifier.NewVirtual:
                return(SpecificationDefinition.New | SpecificationDefinition.Virtual);

            default:
                throw new ArgumentOutOfRangeException("memberModifier");
            }
        }
Beispiel #3
0
        public void EmitConstructor(Action <CodeBlockBuilder> methodBody,
                                    Action <ParameterBuilder> parameters,
                                    AccessModifier accessModifier = AccessModifier.Private,
                                    MemberModifier methodModifers = MemberModifier.None,
                                    IEnumerable <Action <ExpressionBuilder> > baseArguments = null,
                                    IEnumerable <string> summary    = null,
                                    Action <DocBuilder> docs        = null,
                                    IEnumerable <string> attributes = null)
        {
            this.EmitMemberSpacing();

            this.EmitMemberComments(accessModifier, summary, docs);

            if (attributes != null)
            {
                foreach (var attributeName in attributes)
                {
                    this.writer.WriteLine($"[{attributeName}]");
                }
            }

            string parameterList = parameters != null
                                    ? ParameterBuilder.Apply(parameters)
                                    : "";

            this.writer.WriteLine($"{accessModifier.Emit()} {RenderMemberModifiers(methodModifers)}{this.name}({parameterList})");

            if (baseArguments != null)
            {
                this.writer.IncreaseIndent();
                this.writer.Write(": base(");
                ExpressionBuilder.EmitArguments(this.writer, baseArguments);
                this.writer.WriteLine(")");
                this.writer.DecreaseIndent();
            }

            using (var bodyEmitter = new CodeBlockBuilder(this.writer.GetSubWriter()))
            {
                methodBody(bodyEmitter);
            }
        }
Beispiel #4
0
        public void EmitProperty(string type,
                                 string name,
                                 AccessModifier accessModifier    = AccessModifier.Private,
                                 MemberModifier methodModifers    = MemberModifier.None,
                                 Action <CodeBlockBuilder> getter = null,
                                 Action <CodeBlockBuilder> setter = null,
                                 IEnumerable <string> summary     = null,
                                 Action <DocBuilder> docs         = null)
        {
            this.EmitMemberSpacing();

            this.EmitMemberComments(accessModifier, summary, docs);

            this.writer.WriteLine($"{accessModifier.Emit()} {RenderMemberModifiers(methodModifers)}{type} {name}");
            this.writer.WriteLine("{");
            this.writer.IncreaseIndent();

            if (getter != null)
            {
                this.writer.WriteLine("get");
                using (var getBuilder = new CodeBlockBuilder(this.writer))
                {
                    getter(getBuilder);
                }
            }

            if (setter != null)
            {
                this.writer.WriteLine("set");
                using (var setBuilder = new CodeBlockBuilder(this.writer))
                {
                    setter(setBuilder);
                }
            }

            this.writer.DecreaseIndent();
            this.writer.WriteLine("}");
        }
Beispiel #5
0
        public void EmitProperty(string type,
                                 string name,
                                 AccessModifier accessModifier = AccessModifier.Private,
                                 MemberModifier methodModifers = MemberModifier.None,
                                 AccessModifier?getter         = null,
                                 AccessModifier?setter         = null,
                                 IEnumerable <string> summary  = null,
                                 Action <DocBuilder> docs      = null)
        {
            this.EmitMemberSpacing();

            this.EmitMemberComments(accessModifier, summary, docs);

            this.writer.WriteLine($"{accessModifier.Emit()} {RenderMemberModifiers(methodModifers)}{type} {name}");
            this.writer.WriteLine("{");
            this.writer.IncreaseIndent();

            if (getter != null)
            {
                if (getter.HasValue && getter.Value != accessModifier)
                {
                    this.writer.Write(getter.Value.Emit() + " ");
                }
                this.writer.WriteLine("get;");
            }

            if (setter != null)
            {
                if (setter.HasValue && setter.Value != accessModifier)
                {
                    this.writer.Write(setter.Value.Emit() + " ");
                }
                this.writer.WriteLine("set;");
            }

            this.writer.DecreaseIndent();
            this.writer.WriteLine("}");
        }
        public CodegenPropertyWGraph(
            string name,
            Type returnType,
            string returnTypeName,
            string optionalComment,
            CodegenBlock getterBlock,
            CodegenBlock setterBlock,
            bool isPublic,
            MemberModifier modifiers)
        {
            if (returnType == null && returnTypeName == null) {
                throw new ArgumentException("Invalid null return type");
            }

            Name = name;
            GetterBlock = getterBlock;
            SetterBlock = setterBlock;
            IsPublic = isPublic;
            Modifiers = modifiers;
            ReturnType = returnType;
            ReturnTypeName = returnTypeName;
            OptionalComment = optionalComment;
        }
Beispiel #7
0
        public void CanEmitMethodDeclaration(
            string expectedCode,
            MemberVisibility visibility,
            MemberModifier modifier,
            Delegate signaturePrototype)
        {
            //-- arrange

            var method = new MethodMember(signaturePrototype.GetMethodInfo());

            method.Name       = "TestMethod";
            method.Visibility = visibility;
            method.Modifier   = modifier;

            var emitterUnderTest = new MethodSyntaxEmitter(method);

            //-- act

            var actualSyntax = emitterUnderTest.EmitSyntax();

            //-- assert

            actualSyntax.Should().BeEquivalentToCode(expectedCode);
        }
Beispiel #8
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public FieldMember(TypeMember declaringType, MemberVisibility visibility, MemberModifier modifier, TypeMember type, string name)
            : base(declaringType, visibility, modifier, name)
        {
            this.Type = type;
        }
        private void ModifyButtonClick(object obj)
        {
            if (IsAllDataValid())
            {
                using (MemberModifier memberModifier = modifierFactory.CreateMemberModifier())
                {
                    if (IsAttributesProfileChecked)
                    {
                        memberModifier.ModifyProfile(AttributesProfileText);
                    }

                    if (IsAttributesClassChecked)
                    {
                        memberModifier.ModifyClass((AttributesClassText));
                    }

                    if (IsPositionRotationChecked)
                    {
                        memberModifier.ModifyRotation(Convert.ToDouble(PositionRotationText));
                        memberModifier.ModifyPositionRotationEnum(SelectedDataInPositionRotationComboBox);
                    }

                    if (IsPositionVerticalChecked)
                    {
                        memberModifier.ModifyPlaneEnum(SelectedDataInPositionVerticalComboBox);
                        memberModifier.ModifyPlaneOffset(Convert.ToDouble(PositionVerticalText));
                    }

                    if (IsPositionHorizontalChecked)
                    {
                        memberModifier.ModifyDepthEnum(SelectedDataInPositionHorizontalComboBox);
                        memberModifier.ModifyDepthOffset(Convert.ToDouble(PositionHorizontalText));
                    }

                    if (IsPositionLevelsTopChecked)
                    {
                        memberModifier.ModifyTopPosition(Convert.ToDouble(PositionLevelsTop));
                    }

                    if (IsPositionLevelsBottomChecked)
                    {
                        memberModifier.ModifyBottomPosition(Convert.ToDouble(PositionLevelsBottom));
                    }

                    if (IsAttributesFinishChecked)
                    {
                        memberModifier.ModifyFinish(AttributesFinishText);
                    }

                    if (IsAttributesMaterialChecked)
                    {
                        memberModifier.ModifyMaterial(AttributesMaterialText);
                    }

                    if (IsAttributesNameChecked)
                    {
                        memberModifier.ModifyName(AttributesNameText);
                    }

                    memberModifier.Regen();
                }
            }
        }
Beispiel #10
0
 public FluentModifier2(MemberModifier modifier)
 {
     GetContextOrThrow().PeekStateOrThrow <MemberModifierState>().Modifier = modifier;
 }
Beispiel #11
0
 public FluentModifier(MemberModifier modifier)
 {
     CodeGeneratorContext.GetContextOrThrow().PeekStateOrThrow <MemberTraitsContext>().Modifier = modifier;
 }
Beispiel #12
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        protected AbstractMember(TypeMember declaringType, MemberVisibility visibility, MemberModifier modifier, string name)
            : this(visibility, modifier, name)
        {
            this.DeclaringType = declaringType;
        }
Beispiel #13
0
 public static string GetVisualBasicModifier(AccessModifier? access, MemberModifier? modifier)
 {
     return !modifier.HasValue
                ? GetVisualBasicModifier(access.ToString())
                : String.Format("{0} {1}", GetVisualBasicModifier(access.ToString()), modifier);
 }
Beispiel #14
0
 public static string GetModifier(AccessModifier? access, MemberModifier? modifier)
 {
     return !modifier.HasValue
                ? access.ToString().ToLower()
                : String.Format("{0} {1}", access.ToString().ToLower(), modifier.ToString().ToLower());
 }
Beispiel #15
0
 public static MemberModifier Disable(
     this MemberModifier modifier,
     MemberModifier flag)
 {
     return(modifier & ~flag);
 }
Beispiel #16
0
 public static MemberModifier Enable(
     this MemberModifier modifier,
     MemberModifier flag)
 {
     return(modifier | flag);
 }
Beispiel #17
0
 public static bool IsStatic(this MemberModifier modifier)
 {
     return((modifier & MemberModifier.STATIC) == MemberModifier.STATIC);
 }
Beispiel #18
0
 public static bool IsVirtual(this MemberModifier modifier)
 {
     return((modifier & MemberModifier.VIRTUAL) == MemberModifier.VIRTUAL);
 }
Beispiel #19
0
 public static bool IsOverride(this MemberModifier modifier)
 {
     return((modifier & MemberModifier.OVERRIDE) == MemberModifier.OVERRIDE);
 }
Beispiel #20
0
        //-----------------------------------------------------------------------------------------------------------------------------------------------------

        public EventMember(MemberVisibility visibility, MemberModifier modifier, TypeMember delegateType, string name)
            : base(visibility, modifier, name)
        {
            this.DelegateType = delegateType;
        }
        public static string FormatModifiers(MemberModifier value)
        {
            var modifiers = "";

            if (value.HasFlag(MemberModifier.Public))
                modifiers = "public";
            else if (value.HasFlag(MemberModifier.Protected) && value.HasFlag(MemberModifier.Internal))
                modifiers = "protected internal";
            else if (value.HasFlag(MemberModifier.Protected))
                modifiers = "protected";
            else if (value.HasFlag(MemberModifier.Internal))
                modifiers = "internal";
            else if (value.HasFlag(MemberModifier.Private))
                modifiers = "private";

            if (value.HasFlag(MemberModifier.Abstract))
                modifiers += " abstract";
            else if (value.HasFlag(MemberModifier.Sealed))
                modifiers += " sealed";
            if (value.HasFlag(MemberModifier.Override))
                modifiers += " override";
            if (value.HasFlag(MemberModifier.Virtual))
                modifiers += " virtual";
            if (value.HasFlag(MemberModifier.Static))
                modifiers += " static";
            if (value.HasFlag(MemberModifier.ReadOnly))
                modifiers += " readonly";

            return modifiers;
        }