vid_value_element.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. dynamic getValue() {
  13. return value;
  14. }
  15. }
  16. /// Integer element for vid
  17. class VidIntegerValueElement extends VidValueElement<int> {
  18. VidIntegerValueElement(int val) : super(val) {
  19. value = val;
  20. }
  21. @override
  22. ValueType get type => ValueType.integer;
  23. }
  24. /// String element for vid
  25. class VidStringValueElement extends VidValueElement<String> {
  26. @override
  27. ValueType get type => ValueType.string;
  28. VidStringValueElement(String val) : super(val) {
  29. value = val;
  30. }
  31. }
  32. /// double element for vid
  33. class VidDoubleValueElement extends VidValueElement<double> {
  34. @override
  35. ValueType get type => ValueType.double;
  36. VidDoubleValueElement(double val) : super(val) {
  37. value = val;
  38. }
  39. }
  40. /// float element for vid
  41. class VidFloatValueElement extends VidValueElement<double> {
  42. @override
  43. ValueType get type => ValueType.float;
  44. VidFloatValueElement(double val) : super(val) {
  45. value = val;
  46. }
  47. }
  48. /// Uint element for vid
  49. class VidUintValueElement extends VidValueElement<int> {
  50. @override
  51. ValueType get type => ValueType.uint;
  52. VidUintValueElement(int val) : super(val) {
  53. value = val;
  54. }
  55. }
  56. /// short element for vid
  57. class VidShortValueElement extends VidValueElement<int> {
  58. @override
  59. ValueType get type => ValueType.short;
  60. VidShortValueElement(int val) : super(val) {
  61. value = val;
  62. }
  63. }
  64. /// ushort element for vid
  65. class VidUshortValueElement extends VidValueElement<int> {
  66. @override
  67. ValueType get type => ValueType.ushort;
  68. VidUshortValueElement(int val) : super(val) {
  69. value = val;
  70. }
  71. }
  72. /// long element for vid
  73. class VidLongValueElement extends VidValueElement<int> {
  74. @override
  75. ValueType get type => ValueType.long;
  76. VidLongValueElement(int val) : super(val) {
  77. value = val;
  78. }
  79. }
  80. /// ulong element for vid
  81. class VidUlongValueElement extends VidValueElement<int> {
  82. @override
  83. ValueType get type => ValueType.ulong;
  84. VidUlongValueElement(int val) : super(val) {
  85. value = val;
  86. }
  87. }
  88. /// byte element for vid
  89. class VidByteValueElement extends VidValueElement<int> {
  90. @override
  91. ValueType get type => ValueType.byte;
  92. VidByteValueElement(int val) : super(val) {
  93. value = val;
  94. }
  95. }