std::unique_ptr ExceptionDetails::fromValue()

in lib/Debugger.Protocol/Generated/protocol/Runtime.cpp [625:676]


std::unique_ptr<ExceptionDetails> ExceptionDetails::fromValue(protocol::Value* value, ErrorSupport* errors)
{
    if (!value || value->type() != protocol::Value::TypeObject) {
        errors->addError("object expected");
        return nullptr;
    }

    std::unique_ptr<ExceptionDetails> result(new ExceptionDetails());
    protocol::DictionaryValue* object = DictionaryValue::cast(value);
    errors->push();
    protocol::Value* exceptionIdValue = object->get("exceptionId");
    errors->setName("exceptionId");
    result->m_exceptionId = ValueConversions<int>::fromValue(exceptionIdValue, errors);
    protocol::Value* textValue = object->get("text");
    errors->setName("text");
    result->m_text = ValueConversions<String>::fromValue(textValue, errors);
    protocol::Value* lineNumberValue = object->get("lineNumber");
    errors->setName("lineNumber");
    result->m_lineNumber = ValueConversions<int>::fromValue(lineNumberValue, errors);
    protocol::Value* columnNumberValue = object->get("columnNumber");
    errors->setName("columnNumber");
    result->m_columnNumber = ValueConversions<int>::fromValue(columnNumberValue, errors);
    protocol::Value* scriptIdValue = object->get("scriptId");
    if (scriptIdValue) {
        errors->setName("scriptId");
        result->m_scriptId = ValueConversions<String>::fromValue(scriptIdValue, errors);
    }
    protocol::Value* urlValue = object->get("url");
    if (urlValue) {
        errors->setName("url");
        result->m_url = ValueConversions<String>::fromValue(urlValue, errors);
    }
    protocol::Value* stackTraceValue = object->get("stackTrace");
    if (stackTraceValue) {
        errors->setName("stackTrace");
        result->m_stackTrace = ValueConversions<protocol::Runtime::StackTrace>::fromValue(stackTraceValue, errors);
    }
    protocol::Value* exceptionValue = object->get("exception");
    if (exceptionValue) {
        errors->setName("exception");
        result->m_exception = ValueConversions<protocol::Runtime::RemoteObject>::fromValue(exceptionValue, errors);
    }
    protocol::Value* executionContextIdValue = object->get("executionContextId");
    if (executionContextIdValue) {
        errors->setName("executionContextId");
        result->m_executionContextId = ValueConversions<int>::fromValue(executionContextIdValue, errors);
    }
    errors->pop();
    if (errors->hasErrors())
        return nullptr;
    return result;
}