JavaScriptVariant.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * Copyright (C) 2012 Research In Motion Limited. All rights reserved.
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  17. */
  18. #ifndef JavaScriptVariant_h
  19. #define JavaScriptVariant_h
  20. #include "BlackBerryGlobal.h"
  21. #include <BlackBerryPlatformString.h>
  22. namespace BlackBerry {
  23. namespace WebKit {
  24. class BLACKBERRY_EXPORT JavaScriptVariant {
  25. public:
  26. enum DataType {
  27. Undefined = 0,
  28. Null,
  29. Boolean,
  30. Number,
  31. String,
  32. Object,
  33. Exception
  34. };
  35. JavaScriptVariant();
  36. JavaScriptVariant(const JavaScriptVariant&);
  37. JavaScriptVariant(double);
  38. JavaScriptVariant(int);
  39. explicit JavaScriptVariant(bool);
  40. JavaScriptVariant(const BlackBerry::Platform::String&);
  41. ~JavaScriptVariant();
  42. JavaScriptVariant& operator=(const JavaScriptVariant&);
  43. void setType(const DataType&);
  44. DataType type() const;
  45. void setDouble(double);
  46. double doubleValue() const;
  47. void setString(const BlackBerry::Platform::String&);
  48. const BlackBerry::Platform::String& stringValue() const;
  49. void setBoolean(bool);
  50. bool booleanValue() const;
  51. private:
  52. JavaScriptVariant(const char*);
  53. DataType m_type;
  54. union {
  55. bool m_booleanValue;
  56. double m_doubleValue;
  57. };
  58. BlackBerry::Platform::String m_stringValue;
  59. };
  60. }
  61. }
  62. #endif // JavaScriptVariant_h