2017-07-21 17:04:14 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
2021-02-18 11:06:02 +01:00
|
|
|
|
namespace Umbraco.Cms.Core.Models.PublishedContent
|
2017-07-21 17:04:14 +02:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2017-09-25 08:59:32 +02:00
|
|
|
|
/// Provides an abstract base class for <c>IPublishedElement</c> implementations that
|
|
|
|
|
|
/// wrap and extend another <c>IPublishedElement</c>.
|
2017-07-21 17:04:14 +02:00
|
|
|
|
/// </summary>
|
2017-09-25 08:59:32 +02:00
|
|
|
|
public abstract class PublishedElementWrapped : IPublishedElement
|
2017-07-21 17:04:14 +02:00
|
|
|
|
{
|
2017-09-25 08:59:32 +02:00
|
|
|
|
private readonly IPublishedElement _content;
|
2021-05-06 10:58:45 +02:00
|
|
|
|
private readonly IPublishedValueFallback _publishedValueFallback;
|
2017-07-21 17:04:14 +02:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2017-09-25 08:59:32 +02:00
|
|
|
|
/// Initializes a new instance of the <see cref="PublishedElementWrapped"/> class
|
|
|
|
|
|
/// with an <c>IPublishedElement</c> instance to wrap.
|
2017-07-21 17:04:14 +02:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="content">The content to wrap.</param>
|
2021-05-06 10:58:45 +02:00
|
|
|
|
/// <param name="publishedValueFallback">The published value fallback.</param>
|
|
|
|
|
|
protected PublishedElementWrapped(IPublishedElement content, IPublishedValueFallback publishedValueFallback)
|
2017-07-21 17:04:14 +02:00
|
|
|
|
{
|
2017-08-24 21:24:14 +02:00
|
|
|
|
_content = content;
|
2021-05-06 10:58:45 +02:00
|
|
|
|
_publishedValueFallback = publishedValueFallback;
|
2017-07-21 17:04:14 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Gets the wrapped content.
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns>The wrapped content, that was passed as an argument to the constructor.</returns>
|
2017-09-25 08:59:32 +02:00
|
|
|
|
public IPublishedElement Unwrap() => _content;
|
2017-07-21 17:04:14 +02:00
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
2019-04-15 13:04:14 +02:00
|
|
|
|
public IPublishedContentType ContentType => _content.ContentType;
|
2017-07-21 17:04:14 +02:00
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
2017-08-24 21:24:14 +02:00
|
|
|
|
public Guid Key => _content.Key;
|
2017-07-21 17:04:14 +02:00
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
2022-02-09 13:24:35 +01:00
|
|
|
|
public IEnumerable<IPublishedProperty>? Properties => _content.Properties;
|
2017-07-21 17:04:14 +02:00
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
2022-02-09 13:24:35 +01:00
|
|
|
|
public IPublishedProperty? GetProperty(string alias) => _content.GetProperty(alias);
|
2017-07-21 17:04:14 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|