IVariableSet.cs
上传用户:husern
上传日期:2022-03-24
资源大小:534k
文件大小:4k
源码类别:

编辑器/阅读器

开发平台:

C#

  1. // -- FILE ------------------------------------------------------------------
  2. // name       : IVariableSet.cs
  3. // project    : Itenso Web User Forms
  4. // created    : Jani Giannoudis - 2008.10.30
  5. // language   : c#
  6. // environment: .NET 2.0
  7. // copyright  : (c) 2008 by Itenso GmbH, Switzerland
  8. // --------------------------------------------------------------------------
  9. using System;
  10. using System.Collections.Generic;
  11. namespace Itenso.WebUserForms.Data.Variable
  12. {
  13. // ------------------------------------------------------------------------
  14. public interface IVariableSet
  15. {
  16. // ----------------------------------------------------------------------
  17. int Count { get; }
  18. // ----------------------------------------------------------------------
  19. /// <summary>
  20. /// Provides access to the variables known by this instance.
  21. /// </summary>
  22. IEnumerable<string> VariableNames { get; }
  23. // ----------------------------------------------------------------------
  24. /// <summary>
  25. /// Provides access to the variable content.
  26. /// </summary>
  27. string this[ string variableName ] { get; }
  28. // ----------------------------------------------------------------------
  29. /// <summary>
  30. /// Maps some content text to a variable name. Replaces any previous such
  31. /// assignment if that variable had already been mapped earlier.
  32. /// </summary>
  33. /// <param name="variableName">the name of the variable to receive the
  34. /// given content. may not be null or empty.</param>
  35. /// <param name="content">the content for the given variable. may be empty
  36. /// but not null.</param>
  37. void MapContentToVariable( string variableName, string content );
  38. // ----------------------------------------------------------------------
  39. /// <summary>
  40. /// Maps object property values to variables.
  41. /// </summary>
  42. /// <param name="variableObject">the object containing the variable values.</param>
  43. void MapObjectPropertiesToVariables( object variableObject );
  44. // ----------------------------------------------------------------------
  45. /// <summary>
  46. /// Removes a variable.
  47. /// </summary>
  48. /// <param name="variableName">the name of the variable to remove.</param>
  49. void RemoveVariable( string variableName );
  50. // ----------------------------------------------------------------------
  51. /// <summary>
  52. /// Retrieves the replacement for a given variable.
  53. /// </summary>
  54. /// <param name="variableName">the name of the variable for which to determine
  55. /// the replacement content</param>
  56. /// <returns>the replacement content for the given variable. might return null
  57. /// if that variable isn't known by this instance.</returns>
  58. string GetVariableContent( string variableName );
  59. // ----------------------------------------------------------------------
  60. /// <summary>
  61. /// Expands all variable references in the the given text with the values
  62. /// from this instance. A variable reference has the form '${varName}' and
  63. /// will be replaced by the content for 'varName' from this instance. If no
  64. /// such variable is found, no replacement takes place and the reference is
  65. /// preserved as it is.
  66. /// </summary>
  67. /// <param name="textToExpand">the text to expand, possibly containing
  68. /// references to variables. may be null.</param>
  69. /// <returns>the expanded text. never null but possibly empty.</returns>
  70. string Expand( string textToExpand );
  71. // ----------------------------------------------------------------------
  72. /// <summary>
  73. /// Removes all variables.
  74. /// </summary>
  75. void Clear();
  76. // ----------------------------------------------------------------------
  77. /// <summary>
  78. /// Copy variables to another variable set.
  79. /// </summary>
  80. /// <param name="destination">the destination variable set.</param>
  81. /// <param name="nameFormat">destination name pattern like string.Format() (optional).</param>
  82. void CopyTo( IVariableSet destination, string nameFormat );
  83. } // interface IVariableSet
  84. } // namespace Itenso.WebUserForms.Data.Variable
  85. // -- EOF -------------------------------------------------------------------