Example #1
0
        public ClassComposer SetAccessModifier(AccessModifierTypes newType)
        {
            dynamic         twm       = CurrentNode;
            SyntaxTokenList modifiers = twm.Modifiers;

            for (int i = modifiers.Count - 1; i >= 0; i--)
            {
                var m = modifiers.ElementAt(i);
                switch (m.Kind())
                {
                case SyntaxKind.PrivateKeyword:
                case SyntaxKind.ProtectedKeyword:
                case SyntaxKind.InternalKeyword:
                case SyntaxKind.PublicKeyword:
                    modifiers = modifiers.RemoveAt(i);
                    break;
                }
            }

            switch (newType)
            {
            case AccessModifierTypes.PRIVATE:
                modifiers = modifiers.Add(SyntaxFactory.Token(SyntaxKind.PrivateKeyword));
                break;

            case AccessModifierTypes.PROTECTED:
                modifiers = modifiers.Add(SyntaxFactory.Token(SyntaxKind.ProtectedKeyword));
                break;

            case AccessModifierTypes.PRIVATE_PROTECTED:
                modifiers = SyntaxFactory.TokenList(modifiers.Concat(new[] { SyntaxFactory.Token(SyntaxKind.PrivateKeyword), SyntaxFactory.Token(SyntaxKind.ProtectedKeyword) }));
                break;

            case AccessModifierTypes.INTERNAL:
                modifiers = modifiers.Add(SyntaxFactory.Token(SyntaxKind.InternalKeyword));
                break;

            case AccessModifierTypes.PROTECTED_INTERNAL:
                modifiers = SyntaxFactory.TokenList(modifiers.Concat(new[] { SyntaxFactory.Token(SyntaxKind.ProtectedKeyword), SyntaxFactory.Token(SyntaxKind.InternalKeyword) }));
                break;

            case AccessModifierTypes.PUBLIC:
                modifiers = modifiers.Add(SyntaxFactory.Token(SyntaxKind.PublicKeyword));
                break;
            }


            SyntaxNode newNode = twm.WithModifiers(modifiers);

            Replace(twm, newNode, null);

            return(this);
        }
Example #2
0
 private SyntaxTokenList ConcatWithSealed(SyntaxTokenList source)
 {
     return(TokenList(source.Concat(new[] { Token(SyntaxKind.SealedKeyword) })));
 }