Parser.as 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. package {
  2. public class Parser {
  3. //test if undefined or null
  4. public static function isEmptyValue ( value:Object ):Boolean {
  5. // if( value == undefined || value == null ) {
  6. // return true;
  7. // } else {
  8. return false;
  9. // }
  10. }
  11. // get valid String value from input value
  12. // if value is not defined, return default value
  13. // default value is valid String (cannot be undefined or null)
  14. // in case that isEmptyStringValid is false - take defaultvalue instead of value
  15. public static function getStringValue (
  16. value:Object,
  17. defaultValue:String ,
  18. isEmptyStringValid:Boolean ):String{
  19. //defaultValue if not defined - set to empty String
  20. if( Parser.isEmptyValue (defaultValue)) {
  21. defaultValue = "";
  22. }
  23. //for undefined / null - return defaultValue
  24. if( Parser.isEmptyValue (value)) {
  25. return defaultValue;
  26. }
  27. if (!isEmptyStringValid && value.length == 0) {
  28. return defaultValue;
  29. }
  30. return String(value);
  31. }
  32. // get valid Number value from input value
  33. // if value is not defined, return default value
  34. // default value is valid String (cannot be undefined or null)
  35. // in case that isEmptyStringValid is false - take defaultvalue instead of value
  36. public static function getNumberValue (
  37. value:Object,
  38. defaultValue:Number ,
  39. isZeroValueValid:Boolean ,
  40. isNegativeValueValid:Boolean
  41. ):Number{
  42. //defaultValue if not defined - set to zero
  43. if( Parser.isEmptyValue (defaultValue)
  44. || isNaN(defaultValue)
  45. ) {
  46. defaultValue = 0;
  47. }
  48. //for undefined / null - return defaultValue
  49. if( Parser.isEmptyValue (value) ) {
  50. return defaultValue;
  51. }
  52. var numValue:Number = Number(value);
  53. if ( isNaN (numValue) ){
  54. return defaultValue;
  55. }
  56. if (!isZeroValueValid && numValue==0) {
  57. return defaultValue;
  58. }
  59. if (!isNegativeValueValid && numValue<0) {
  60. return defaultValue;
  61. }
  62. return numValue;
  63. }
  64. public static function getBooleanValue (
  65. value:Object,
  66. defaultValue:Boolean
  67. ):Boolean{
  68. if( Parser.isEmptyValue (value) ) {
  69. return defaultValue;
  70. }
  71. var numValue:Number = Number(value);
  72. if ( !isNaN (numValue) ){
  73. //for numeric value then 0 is false, everything else is true
  74. if (numValue==0) {
  75. return false;
  76. } else {
  77. return true;
  78. }
  79. }
  80. //parse string falue 'true' -> true; else false
  81. var strValue:String = Parser.getStringValue (value,"false", false);
  82. //trace ("0------------------" + strValue);
  83. strValue = strValue.toLowerCase();
  84. //trace ("1------------------" + strValue);
  85. if (strValue.indexOf('true') !=-1){
  86. return true;
  87. } else {
  88. return false;
  89. }
  90. }
  91. public static function runTests():void{
  92. var notDefinedNum:Number;
  93. trace ("testing Parser.getStringValue...");
  94. trace("1) stringOK '" + Parser.getStringValue("stringOK","myDefault",true) + "'");
  95. trace("2) '' '" + Parser.getStringValue("","myDefault",true) + "'");
  96. trace("3) myDefault '" + Parser.getStringValue("","myDefault",false) + "'");
  97. // trace("4) '' '" + Parser.getStringValue(notDefinedNum) + "'");
  98. // trace("5) 999 '" + Parser.getStringValue(999) + "'");
  99. trace ("testing Parser.getNumberValue...");
  100. trace("01) 999 '" + Parser.getNumberValue(999,22222222,true,true) + "'");
  101. trace("02) 999 '" + Parser.getNumberValue("999",22222222,true,true) + "'");
  102. // trace("03) 999 '" + Parser.getNumberValue("999") + "'");
  103. // trace("04) 0 '" + Parser.getNumberValue("abc") + "'");
  104. // trace("05) -1 '" + Parser.getNumberValue("abc",-1) + "'");
  105. trace("06) -1 '" + Parser.getNumberValue("abc",-1, false, false) + "'");
  106. trace("07) -1 '" + Parser.getNumberValue(null,-1, false, false) + "'");
  107. // trace("08) 22222222 '" + Parser.getNumberValue(0,22222222) + "'");
  108. // trace("09) 0 '" + Parser.getNumberValue(0,22222222,true) + "'");
  109. // trace("10) 22222222 '" + Parser.getNumberValue(0,22222222,false) + "'");
  110. trace("11) 22222222 '" + Parser.getNumberValue(0,22222222,false,false) + "'");
  111. trace("12) 22222222 '" + Parser.getNumberValue(-0.1,22222222,false,false) + "'");
  112. trace("13) -0.1 '" + Parser.getNumberValue(-0.1,22222222,false,true) + "'");
  113. trace("13) 22222222 '" + Parser.getNumberValue("-0.1x",22222222,false,true) + "'");
  114. trace ("testing Parser.getBooleanValue...");
  115. trace("true '" + Parser.getBooleanValue("1",false) + "'");
  116. trace("true '" + Parser.getBooleanValue("-1",false) + "'");
  117. trace("false '" + Parser.getBooleanValue("0.000",false) + "'");
  118. trace("false '" + Parser.getBooleanValue("",false) + "'");
  119. trace("true '" + Parser.getBooleanValue("",true) + "'");
  120. trace("false '" + Parser.getBooleanValue("false",false) + "'");
  121. trace("false '" + Parser.getBooleanValue("xxx",false) + "'");
  122. trace("true '" + Parser.getBooleanValue("true",true) + "'");
  123. trace("true '" + Parser.getBooleanValue("TRUE",true) + "'");
  124. trace("true '" + Parser.getBooleanValue(" TRUE ",true) + "'");
  125. }
  126. }
  127. }