private void WriteText(string source, TextAccessor text)
{
if (text.Mapping is PrimitiveMapping)
{
PrimitiveMapping mapping = (PrimitiveMapping)text.Mapping;
Writer.Write("WriteValue(");
if (text.Mapping is EnumMapping)
{
WriteEnumValue((EnumMapping)text.Mapping, source);
}
else
{
WritePrimitiveValue(mapping.TypeDesc, source, false);
}
Writer.WriteLine(");");
}
else if (text.Mapping is SpecialMapping)
{
SpecialMapping mapping = (SpecialMapping)text.Mapping;
switch (mapping.TypeDesc.Kind)
{
case TypeKind.Node:
Writer.Write(source);
Writer.WriteLine(".WriteTo(Writer);");
break;
default:
throw new InvalidOperationException(SR.XmlInternalError);
}
}
}