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); }
private SyntaxTokenList ConcatWithSealed(SyntaxTokenList source) { return(TokenList(source.Concat(new[] { Token(SyntaxKind.SealedKeyword) }))); }