using System; namespace Umbraco.Core.Models.PublishedContent { /// /// Provides a base class for IPublishedProperty implementations which converts and caches /// the value source to the actual value to use when rendering content. /// internal abstract class PublishedPropertyBase : IPublishedProperty { public readonly PublishedPropertyType PropertyType; protected PublishedPropertyBase(PublishedPropertyType propertyType) { if (propertyType == null) throw new ArgumentNullException("propertyType"); PropertyType = propertyType; } public string Alias { get { return PropertyType.PropertyTypeAlias; } } // these have to be provided by the actual implementation public abstract bool HasValue { get; } public abstract object RawValue { get; } public abstract object Value { get; } public abstract object XPathValue { get; } } }