/Xtensive.Storage/Xtensive.Storage.Rse/Providers/Compilable/AliasProvider.cs

https://code.google.com/p/dataobjectsdotnet/ · C# · 51 lines · 25 code · 7 blank · 19 comment · 0 complexity · 9382a06e35b869db4156187ce91b65ea MD5 · raw file

  1. // Copyright (C) 2003-2010 Xtensive LLC.
  2. // All rights reserved.
  3. // For conditions of distribution and use, see license.
  4. // Created by: Alexey Kochetov
  5. // Created: 2008.07.03
  6. using System;
  7. using Xtensive.Core.Collections;
  8. using Xtensive.Core.Internals.DocTemplates;
  9. using Xtensive.Storage.Rse.Providers.Compilable;
  10. namespace Xtensive.Storage.Rse.Providers.Compilable
  11. {
  12. /// <summary>
  13. /// Aliases the <see cref="UnaryProvider.Source"/> with specified <see cref="Alias"/>.
  14. /// </summary>
  15. [Serializable]
  16. public sealed class AliasProvider : UnaryProvider
  17. {
  18. /// <summary>
  19. /// Alias of the result.
  20. /// </summary>
  21. public string Alias { get; private set; }
  22. /// <inheritdoc/>
  23. protected override RecordSetHeader BuildHeader()
  24. {
  25. return base.BuildHeader().Alias(Alias);
  26. }
  27. /// <inheritdoc/>
  28. public override string ParametersToString()
  29. {
  30. return Alias;
  31. }
  32. // Constructors
  33. /// <summary>
  34. /// <see cref="ClassDocTemplate.Ctor" copy="true"/>
  35. /// </summary>
  36. /// <param name="source">The <see cref="UnaryProvider.Source"/> property value.</param>
  37. /// <param name="alias">The <see cref="Alias"/> property value.</param>
  38. public AliasProvider(CompilableProvider source, string alias)
  39. : base(ProviderType.Alias, source)
  40. {
  41. Alias = alias;
  42. }
  43. }
  44. }