vid_value_element.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import 'package:flutter/foundation.dart';
  2. import 'vid_value.dart';
  3. /// <summary>
  4. /// abstract vid element
  5. /// <typeparam name="T"></typeparam>
  6. abstract class VidValueElement<T> implements IVidValue {
  7. late T _value;
  8. T get value => _value;
  9. @protected
  10. set value(T val) => _value = val;
  11. VidValueElement(T value);
  12. @override
  13. dynamic getValue() {
  14. return value;
  15. }
  16. }
  17. /// Integer element for vid
  18. class VidIntegerValueElement extends VidValueElement<int> {
  19. VidIntegerValueElement(int val) : super(val) {
  20. value = val;
  21. }
  22. @override
  23. ValueType get type => ValueType.integer;
  24. }
  25. /// String element for vid
  26. class VidStringValueElement extends VidValueElement<String> {
  27. @override
  28. ValueType get type => ValueType.string;
  29. VidStringValueElement(String val) : super(val) {
  30. value = val;
  31. }
  32. }
  33. /// double element for vid
  34. class VidDoubleValueElement extends VidValueElement<double> {
  35. @override
  36. ValueType get type => ValueType.double;
  37. VidDoubleValueElement(double val) : super(val) {
  38. value = val;
  39. }
  40. }
  41. /// float element for vid
  42. class VidFloatValueElement extends VidValueElement<double> {
  43. @override
  44. ValueType get type => ValueType.float;
  45. VidFloatValueElement(double val) : super(val) {
  46. value = val;
  47. }
  48. }
  49. /// Uint element for vid
  50. class VidUintValueElement extends VidValueElement<int> {
  51. @override
  52. ValueType get type => ValueType.uint;
  53. VidUintValueElement(int val) : super(val) {
  54. value = val;
  55. }
  56. }
  57. /// short element for vid
  58. class VidShortValueElement extends VidValueElement<int> {
  59. @override
  60. ValueType get type => ValueType.short;
  61. VidShortValueElement(int val) : super(val) {
  62. value = val;
  63. }
  64. }
  65. /// ushort element for vid
  66. class VidUshortValueElement extends VidValueElement<int> {
  67. @override
  68. ValueType get type => ValueType.ushort;
  69. VidUshortValueElement(int val) : super(val) {
  70. value = val;
  71. }
  72. }
  73. /// long element for vid
  74. class VidLongValueElement extends VidValueElement<int> {
  75. @override
  76. ValueType get type => ValueType.long;
  77. VidLongValueElement(int val) : super(val) {
  78. value = val;
  79. }
  80. }
  81. /// ulong element for vid
  82. class VidUlongValueElement extends VidValueElement<int> {
  83. @override
  84. ValueType get type => ValueType.ulong;
  85. VidUlongValueElement(int val) : super(val) {
  86. value = val;
  87. }
  88. }
  89. /// byte element for vid
  90. class VidByteValueElement extends VidValueElement<int> {
  91. @override
  92. ValueType get type => ValueType.byte;
  93. VidByteValueElement(int val) : super(val) {
  94. value = val;
  95. }
  96. }