static generator_type_e GeneratorType (const TRI_json_t* const parameters) { TRI_json_t* type; const char* typeName; if (parameters == NULL || parameters->_type != TRI_JSON_ARRAY) { return TYPE_TRADITIONAL; } type = TRI_LookupArrayJson(parameters, "type"); if (! TRI_IsStringJson(type)) { return TYPE_TRADITIONAL; } typeName = type->_value._string.data; if (TRI_CaseEqualString(typeName, TraditionalName)) { return TYPE_TRADITIONAL; } if (TRI_CaseEqualString(typeName, AutoIncrementName)) { return TYPE_AUTOINCREMENT; } // error return TYPE_UNKNOWN; }
bool TRI_BooleanString (char const* str) { if (TRI_CaseEqualString(str, "true")) { return true; } if (TRI_CaseEqualString(str, "yes")) { return true; } if (TRI_CaseEqualString(str, "on")) { return true; } if (TRI_CaseEqualString(str, "y")) { return true; } if (TRI_EqualString(str, "1")) { return true; } return false; }
KeyGenerator::GeneratorType KeyGenerator::generatorType (TRI_json_t const* parameters) { if (! TRI_IsArrayJson(parameters)) { return KeyGenerator::TYPE_TRADITIONAL; } TRI_json_t const* type = TRI_LookupArrayJson(parameters, "type"); if (! TRI_IsStringJson(type)) { return KeyGenerator::TYPE_TRADITIONAL; } char const* typeName = type->_value._string.data; if (TRI_CaseEqualString(typeName, TraditionalKeyGenerator::name().c_str())) { return KeyGenerator::TYPE_TRADITIONAL; } if (TRI_CaseEqualString(typeName, AutoIncrementKeyGenerator::name().c_str())) { return KeyGenerator::TYPE_AUTOINCREMENT; } // error return KeyGenerator::TYPE_UNKNOWN; }