JSBType.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright (c) 2014-2015, THUNDERBEAST GAMES LLC All rights reserved
  2. // Please see LICENSE.md in repository root for license information
  3. // https://github.com/AtomicGameEngine/AtomicGameEngine
  4. #include <Atomic/Atomic.h>
  5. #include "JSBType.h"
  6. #include "JSBindings.h"
  7. JSBType* JSBType::Parse(const String& value)
  8. {
  9. JSBType* type = NULL;
  10. JSBindings* bindings = JSBindings::Instance();
  11. if (bindings->GetClass(value))
  12. {
  13. type = new JSBClassType(bindings->GetClass(value));
  14. }
  15. else if (bindings->GetEnum(value))
  16. {
  17. type = new JSBEnumType(bindings->GetEnum(value));
  18. }
  19. else if (value == "int")
  20. {
  21. type = new JSBPrimitiveType(JSBPrimitiveType::Int);
  22. }
  23. else if (value == "bool")
  24. {
  25. type = new JSBPrimitiveType(JSBPrimitiveType::Bool);
  26. }
  27. else if (value == "unsigned")
  28. {
  29. type = new JSBPrimitiveType(JSBPrimitiveType::Int, true);
  30. }
  31. else if (value == "float")
  32. {
  33. type = new JSBPrimitiveType(JSBPrimitiveType::Float);
  34. }
  35. else if (value == "String")
  36. {
  37. type = new JSBStringType();
  38. }
  39. else if (value == "StringHash")
  40. {
  41. type = new JSBStringHashType();
  42. }
  43. return type;
  44. }