ItemResolver.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #nullable disable
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Library;
  4. using MediaBrowser.Controller.Resolvers;
  5. namespace Emby.Server.Implementations.Library.Resolvers
  6. {
  7. /// <summary>
  8. /// Class ItemResolver.
  9. /// </summary>
  10. /// <typeparam name="T"></typeparam>
  11. public abstract class ItemResolver<T> : IItemResolver
  12. where T : BaseItem, new()
  13. {
  14. /// <summary>
  15. /// Gets the priority.
  16. /// </summary>
  17. /// <value>The priority.</value>
  18. public virtual ResolverPriority Priority => ResolverPriority.First;
  19. /// <summary>
  20. /// Resolves the specified args.
  21. /// </summary>
  22. /// <param name="args">The args.</param>
  23. /// <returns>`0.</returns>
  24. protected virtual T Resolve(ItemResolveArgs args)
  25. {
  26. return null;
  27. }
  28. /// <summary>
  29. /// Sets initial values on the newly resolved item.
  30. /// </summary>
  31. /// <param name="item">The item.</param>
  32. /// <param name="args">The args.</param>
  33. protected virtual void SetInitialItemValues(T item, ItemResolveArgs args)
  34. {
  35. }
  36. /// <summary>
  37. /// Resolves the path.
  38. /// </summary>
  39. /// <param name="args">The args.</param>
  40. /// <returns>BaseItem.</returns>
  41. BaseItem IItemResolver.ResolvePath(ItemResolveArgs args)
  42. {
  43. var item = Resolve(args);
  44. if (item != null)
  45. {
  46. SetInitialItemValues(item, args);
  47. }
  48. return item;
  49. }
  50. }
  51. }