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 ");
}
}
}