CommandBase.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace FastReport.Export.Hpgl.Commands
  6. {
  7. public abstract class CommandBase
  8. {
  9. private string name;
  10. private string separator;
  11. private string terminator;
  12. public string Name
  13. {
  14. get { return name; }
  15. set { name = value; }
  16. }
  17. public string Separator
  18. {
  19. get { return separator; }
  20. set { separator = value; }
  21. }
  22. public string Terminator
  23. {
  24. get { return terminator; }
  25. set { terminator = value; }
  26. }
  27. public CommandBase()
  28. {
  29. separator = ",";
  30. terminator = ";";
  31. }
  32. public abstract void AppendTo(StringBuilder s);
  33. }
  34. public class CommandBase<T> : CommandBase
  35. {
  36. private List<T> parameters;
  37. public List<T> Parameters
  38. {
  39. get { return parameters; }
  40. set { parameters = value; }
  41. }
  42. public CommandBase()
  43. {
  44. parameters = new List<T>();
  45. }
  46. public override void AppendTo(StringBuilder s)
  47. {
  48. s.Append(Name);
  49. for (int i = 0; i < parameters.Count; i++)
  50. {
  51. s.Append(parameters[i]);
  52. if (i < parameters.Count - 1)
  53. s.Append(Separator);
  54. }
  55. s.Append(Terminator);
  56. }
  57. }
  58. }