JSBType.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include <Atomic/Atomic.h>
  2. #include "JSBType.h"
  3. #include "JSBindings.h"
  4. JSBType* JSBType::Parse(const String& value)
  5. {
  6. JSBType* type = NULL;
  7. JSBindings* bindings = JSBindings::Instance();
  8. if (bindings->GetClass(value))
  9. {
  10. type = new JSBClassType(bindings->GetClass(value));
  11. }
  12. else if (bindings->GetEnum(value))
  13. {
  14. type = new JSBEnumType(bindings->GetEnum(value));
  15. }
  16. else if (value == "int")
  17. {
  18. type = new JSBPrimitiveType(JSBPrimitiveType::Int);
  19. }
  20. else if (value == "bool")
  21. {
  22. type = new JSBPrimitiveType(JSBPrimitiveType::Bool);
  23. }
  24. else if (value == "unsigned")
  25. {
  26. type = new JSBPrimitiveType(JSBPrimitiveType::Int, true);
  27. }
  28. else if (value == "float")
  29. {
  30. type = new JSBPrimitiveType(JSBPrimitiveType::Float);
  31. }
  32. else if (value == "String")
  33. {
  34. type = new JSBStringType();
  35. }
  36. else if (value == "StringHash")
  37. {
  38. type = new JSBStringHashType();
  39. }
  40. return type;
  41. }