//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Syndication { using System; using System.Collections.Generic; using System.Xml; using System.Runtime.Serialization; using System.Globalization; using System.Xml.Serialization; using System.Xml.Schema; using System.Diagnostics.CodeAnalysis; using DiagnosticUtility = System.ServiceModel.DiagnosticUtility; using System.Runtime.CompilerServices; [TypeForwardedFrom("System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")] [DataContract] public abstract class SyndicationItemFormatter { SyndicationItem item; protected SyndicationItemFormatter() { this.item = null; } protected SyndicationItemFormatter(SyndicationItem itemToWrite) { if (itemToWrite == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("itemToWrite"); } this.item = itemToWrite; } public SyndicationItem Item { get { return this.item; } } public abstract String Version { get; } public abstract bool CanRead(XmlReader reader); public abstract void ReadFrom(XmlReader reader); public override string ToString() { return String.Format(CultureInfo.CurrentCulture, "{0}, SyndicationVersion={1}", this.GetType(), this.Version); } public abstract void WriteTo(XmlWriter writer); internal protected virtual void SetItem(SyndicationItem item) { if (item == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("item"); } this.item = item; } internal static void CreateBufferIfRequiredAndWriteNode(ref XmlBuffer buffer, ref XmlDictionaryWriter extWriter, XmlDictionaryReader reader, int maxExtensionSize) { SyndicationFeedFormatter.CreateBufferIfRequiredAndWriteNode(ref buffer, ref extWriter, reader, maxExtensionSize); } internal static SyndicationItem CreateItemInstance(Type itemType) { if (itemType.Equals(typeof(SyndicationItem))) { return new SyndicationItem(); } else { return (SyndicationItem)Activator.CreateInstance(itemType); } } internal static void LoadElementExtensions(XmlBuffer buffer, XmlDictionaryWriter writer, SyndicationItem item) { SyndicationFeedFormatter.LoadElementExtensions(buffer, writer, item); } internal static void LoadElementExtensions(XmlBuffer buffer, XmlDictionaryWriter writer, SyndicationCategory category) { SyndicationFeedFormatter.LoadElementExtensions(buffer, writer, category); } internal static void LoadElementExtensions(XmlBuffer buffer, XmlDictionaryWriter writer, SyndicationLink link) { SyndicationFeedFormatter.LoadElementExtensions(buffer, writer, link); } internal static void LoadElementExtensions(XmlBuffer buffer, XmlDictionaryWriter writer, SyndicationPerson person) { SyndicationFeedFormatter.LoadElementExtensions(buffer, writer, person); } protected static SyndicationCategory CreateCategory(SyndicationItem item) { return SyndicationFeedFormatter.CreateCategory(item); } protected static SyndicationLink CreateLink(SyndicationItem item) { return SyndicationFeedFormatter.CreateLink(item); } protected static SyndicationPerson CreatePerson(SyndicationItem item) { return SyndicationFeedFormatter.CreatePerson(item); } protected static void LoadElementExtensions(XmlReader reader, SyndicationItem item, int maxExtensionSize) { SyndicationFeedFormatter.LoadElementExtensions(reader, item, maxExtensionSize); } protected static void LoadElementExtensions(XmlReader reader, SyndicationCategory category, int maxExtensionSize) { SyndicationFeedFormatter.LoadElementExtensions(reader, category, maxExtensionSize); } protected static void LoadElementExtensions(XmlReader reader, SyndicationLink link, int maxExtensionSize) { SyndicationFeedFormatter.LoadElementExtensions(reader, link, maxExtensionSize); } protected static void LoadElementExtensions(XmlReader reader, SyndicationPerson person, int maxExtensionSize) { SyndicationFeedFormatter.LoadElementExtensions(reader, person, maxExtensionSize); } protected static bool TryParseAttribute(string name, string ns, string value, SyndicationItem item, string version) { return SyndicationFeedFormatter.TryParseAttribute(name, ns, value, item, version); } protected static bool TryParseAttribute(string name, string ns, string value, SyndicationCategory category, string version) { return SyndicationFeedFormatter.TryParseAttribute(name, ns, value, category, version); } protected static bool TryParseAttribute(string name, string ns, string value, SyndicationLink link, string version) { return SyndicationFeedFormatter.TryParseAttribute(name, ns, value, link, version); } protected static bool TryParseAttribute(string name, string ns, string value, SyndicationPerson person, string version) { return SyndicationFeedFormatter.TryParseAttribute(name, ns, value, person, version); } protected static bool TryParseContent(XmlReader reader, SyndicationItem item, string contentType, string version, out SyndicationContent content) { return SyndicationFeedFormatter.TryParseContent(reader, item, contentType, version, out content); } protected static bool TryParseElement(XmlReader reader, SyndicationItem item, string version) { return SyndicationFeedFormatter.TryParseElement(reader, item, version); } protected static bool TryParseElement(XmlReader reader, SyndicationCategory category, string version) { return SyndicationFeedFormatter.TryParseElement(reader, category, version); } protected static bool TryParseElement(XmlReader reader, SyndicationLink link, string version) { return SyndicationFeedFormatter.TryParseElement(reader, link, version); } protected static bool TryParseElement(XmlReader reader, SyndicationPerson person, string version) { return SyndicationFeedFormatter.TryParseElement(reader, person, version); } protected static void WriteAttributeExtensions(XmlWriter writer, SyndicationItem item, string version) { SyndicationFeedFormatter.WriteAttributeExtensions(writer, item, version); } protected static void WriteAttributeExtensions(XmlWriter writer, SyndicationCategory category, string version) { SyndicationFeedFormatter.WriteAttributeExtensions(writer, category, version); } protected static void WriteAttributeExtensions(XmlWriter writer, SyndicationLink link, string version) { SyndicationFeedFormatter.WriteAttributeExtensions(writer, link, version); } protected static void WriteAttributeExtensions(XmlWriter writer, SyndicationPerson person, string version) { SyndicationFeedFormatter.WriteAttributeExtensions(writer, person, version); } protected static void WriteElementExtensions(XmlWriter writer, SyndicationItem item, string version) { SyndicationFeedFormatter.WriteElementExtensions(writer, item, version); } protected abstract SyndicationItem CreateItemInstance(); protected void WriteElementExtensions(XmlWriter writer, SyndicationCategory category, string version) { SyndicationFeedFormatter.WriteElementExtensions(writer, category, version); } protected void WriteElementExtensions(XmlWriter writer, SyndicationLink link, string version) { SyndicationFeedFormatter.WriteElementExtensions(writer, link, version); } protected void WriteElementExtensions(XmlWriter writer, SyndicationPerson person, string version) { SyndicationFeedFormatter.WriteElementExtensions(writer, person, version); } } }