Files
FileTime2/src/Core/FileTime.Core.ContentAccess/SubContentProviderBase.cs
2023-09-04 18:05:01 +02:00

43 lines
1.6 KiB
C#

using FileTime.Core.Enums;
using FileTime.Core.Models;
using FileTime.Core.Timeline;
namespace FileTime.Core.ContentAccess;
public abstract class SubContentProviderBase : ContentProviderBase
{
public IContentProvider ParentContentProvider { get; }
protected SubContentProviderBase(
IContentProvider parentContentProvider,
string name,
ITimelessContentProvider timelessContentProvider) : base(name, timelessContentProvider)
{
ParentContentProvider = parentContentProvider;
}
public override async Task<IItem> GetItemByNativePathAsync(
NativePath nativePath,
PointInTime pointInTime,
bool forceResolve = false,
AbsolutePathType forceResolvePathType = AbsolutePathType.Unknown,
ItemInitializationSettings itemInitializationSettings = default)
=> await ParentContentProvider.GetItemByNativePathAsync(
nativePath,
pointInTime,
forceResolve,
forceResolvePathType,
itemInitializationSettings);
public override async ValueTask<NativePath> GetNativePathAsync(FullName fullName)
=> await ParentContentProvider.GetNativePathAsync(fullName);
public override FullName GetFullName(NativePath nativePath)
=> ParentContentProvider.GetFullName(nativePath);
public override async Task<bool> CanHandlePathAsync(NativePath path)
=> await ParentContentProvider.CanHandlePathAsync(path);
public override async ValueTask<NativePath?> GetSupportedPathPart(NativePath nativePath)
=> await ParentContentProvider.GetSupportedPathPart(nativePath);
}