| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- //------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------
- namespace System.ServiceModel.Syndication
- {
- using System.Collections.Generic;
- using System.Xml;
- using System.Collections.ObjectModel;
- using System.Xml.Serialization;
- using System.Runtime.Serialization;
- using System.Runtime.CompilerServices;
- // NOTE: This class implements Clone so if you add any members, please update the copy ctor
- [TypeForwardedFrom("System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
- public class SyndicationLink : IExtensibleSyndicationObject
- {
- Uri baseUri;
- ExtensibleSyndicationObject extensions = new ExtensibleSyndicationObject();
- long length;
- string mediaType;
- string relationshipType;
- string title;
- Uri uri;
- public SyndicationLink(Uri uri)
- : this(uri, null, null, null, 0)
- {
- }
- public SyndicationLink(Uri uri, string relationshipType, string title, string mediaType, long length)
- {
- if (length < 0)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("length"));
- }
- this.baseUri = null;
- this.uri = uri;
- this.title = title;
- this.relationshipType = relationshipType;
- this.mediaType = mediaType;
- this.length = length;
- }
- public SyndicationLink()
- : this(null, null, null, null, 0)
- {
- }
- protected SyndicationLink(SyndicationLink source)
- {
- if (source == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source");
- }
- this.length = source.length;
- this.mediaType = source.mediaType;
- this.relationshipType = source.relationshipType;
- this.title = source.title;
- this.baseUri = source.baseUri;
- this.uri = source.uri;
- this.extensions = source.extensions.Clone();
- }
- public Dictionary<XmlQualifiedName, string> AttributeExtensions
- {
- get { return this.extensions.AttributeExtensions; }
- }
- public Uri BaseUri
- {
- get { return this.baseUri; }
- set { this.baseUri = value; }
- }
- public SyndicationElementExtensionCollection ElementExtensions
- {
- get { return this.extensions.ElementExtensions; }
- }
- public long Length
- {
- get { return this.length; }
- set
- {
- if (value < 0)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value"));
- }
- this.length = value;
- }
- }
- public string MediaType
- {
- get { return mediaType; }
- set { mediaType = value; }
- }
- public string RelationshipType
- {
- get { return relationshipType; }
- set { relationshipType = value; }
- }
- public string Title
- {
- get { return title; }
- set { title = value; }
- }
- public Uri Uri
- {
- get { return uri; }
- set { this.uri = value; }
- }
- public static SyndicationLink CreateAlternateLink(Uri uri)
- {
- return CreateAlternateLink(uri, null);
- }
- public static SyndicationLink CreateAlternateLink(Uri uri, string mediaType)
- {
- return new SyndicationLink(uri, Atom10Constants.AlternateTag, null, mediaType, 0);
- }
- public static SyndicationLink CreateMediaEnclosureLink(Uri uri, string mediaType, long length)
- {
- return new SyndicationLink(uri, Rss20Constants.EnclosureTag, null, mediaType, length);
- }
- public static SyndicationLink CreateSelfLink(Uri uri)
- {
- return CreateSelfLink(uri, null);
- }
- public static SyndicationLink CreateSelfLink(Uri uri, string mediaType)
- {
- return new SyndicationLink(uri, Atom10Constants.SelfTag, null, mediaType, 0);
- }
- public virtual SyndicationLink Clone()
- {
- return new SyndicationLink(this);
- }
- public Uri GetAbsoluteUri()
- {
- if (this.uri != null)
- {
- if (this.uri.IsAbsoluteUri)
- {
- return this.uri;
- }
- else if (this.baseUri != null)
- {
- return new Uri(this.baseUri, this.uri);
- }
- else
- {
- return null;
- }
- }
- else
- {
- return null;
- }
- }
- protected internal virtual bool TryParseAttribute(string name, string ns, string value, string version)
- {
- return false;
- }
- protected internal virtual bool TryParseElement(XmlReader reader, string version)
- {
- return false;
- }
- protected internal virtual void WriteAttributeExtensions(XmlWriter writer, string version)
- {
- this.extensions.WriteAttributeExtensions(writer);
- }
- protected internal virtual void WriteElementExtensions(XmlWriter writer, string version)
- {
- this.extensions.WriteElementExtensions(writer);
- }
- internal void LoadElementExtensions(XmlReader readerOverUnparsedExtensions, int maxExtensionSize)
- {
- this.extensions.LoadElementExtensions(readerOverUnparsedExtensions, maxExtensionSize);
- }
- internal void LoadElementExtensions(XmlBuffer buffer)
- {
- this.extensions.LoadElementExtensions(buffer);
- }
- }
- }
|