Mono.CSharp.CSharpCodeGenerator.OutputTypeAttributes C# (CSharp) Method

OutputTypeAttributes() private method

private OutputTypeAttributes ( CodeTypeDeclaration declaration ) : void
declaration CodeTypeDeclaration
return void
		private void OutputTypeAttributes (CodeTypeDeclaration declaration)
		{
			TextWriter output = Output;
			TypeAttributes attributes = declaration.TypeAttributes;

			switch (attributes & TypeAttributes.VisibilityMask) {
				case TypeAttributes.Public:
				case TypeAttributes.NestedPublic:
					output.Write ("public ");
					break;
				case TypeAttributes.NestedPrivate:
					output.Write ("private ");
					break;
#if NET_2_0
				case TypeAttributes.NotPublic:
				case TypeAttributes.NestedFamANDAssem:
				case TypeAttributes.NestedAssembly:
					output.Write ("internal ");
					break; 
				case TypeAttributes.NestedFamily:
					output.Write ("protected ");
					break;
				case TypeAttributes.NestedFamORAssem:
					output.Write ("protected internal ");
					break;
#endif
			}

			if (declaration.IsStruct) {
#if NET_2_0
				if (declaration.IsPartial) {
					output.Write ("partial ");
				}
#endif
				output.Write ("struct ");
			} else if (declaration.IsEnum) {
				output.Write ("enum ");
			} else {
				if ((attributes & TypeAttributes.Interface) != 0) {
#if NET_2_0
					if (declaration.IsPartial) {
						output.Write ("partial ");
					}
#endif
					output.Write ("interface ");
				} else {
					if ((attributes & TypeAttributes.Sealed) != 0)
						output.Write ("sealed ");
					if ((attributes & TypeAttributes.Abstract) != 0)
						output.Write ("abstract ");
#if NET_2_0
					if (declaration.IsPartial) {
						output.Write ("partial ");
					}
#endif
					output.Write ("class ");
				}
			}
		}
CSharpCodeGenerator