public override void WritePBXValue(int indentLevel, IDictionary<IPBXElement, String> map, Object value)
{
Type type = value.GetType ();
if (type == typeof(int)) {
this.Write ("{0}", value);
} else if (type == typeof(String)) {
this.Write ("\"{0}\"", value);
} else if (typeof(IPBXElement).IsAssignableFrom (type)) {
this.Write ("{0} /* {1} */", map [(IPBXElement)value], ((IPBXElement)value).Description);
} else if (typeof(IList).IsAssignableFrom (type)) {
this.WritePBXList (indentLevel, map, (IList)value);
} else if (typeof(IDictionary).IsAssignableFrom (type)) {
this.WritePBXDictionary (indentLevel, map, (IDictionary)value);
} else {
throw new NotSupportedException ();
}
}