text: //
  // Copyright (c) 2013, Ford Motor Company
  // All rights reserved.
  //
  // Redistribution and use in source and binary forms, with or without
  // modification, are permitted provided that the following conditions are met:
  //
  // Redistributions of source code must retain the above copyright notice, this
  // list of conditions and the following disclaimer.
  //
  // Redistributions in binary form must reproduce the above copyright notice,
  // this list of conditions and the following
  // disclaimer in the documentation and/or other materials provided with the
  // distribution.
  //
  // Neither the name of the Ford Motor Company nor the names of its contributors
  // may be used to endorse or promote products derived from this software
  // without specific prior written permission.
  //
  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
  // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  // POSSIBILITY OF SUCH DAMAGE.
  //
  
  #include "../src/../include/JSONHandler/RPC2Objects/NsRPC2Communication/UI/AddCommandResponse.h"
  #include "../src/SDLRPCObjectsImpl/V2/ResultMarshaller.h"
  #include "../src/../src/RPC2ObjectsImpl//NsRPC2Communication/UI/AddCommandResponseMarshaller.h"
  
  /*
    interface	NsRPC2Communication::UI
    version	1.2
    generated at	Thu Jan 24 06:41:15 2013
    source stamp	Wed Jan 23 13:56:28 2013
    author	RC
  */
  
  using namespace NsRPC2Communication::UI;
  
  bool AddCommandResponseMarshaller::checkIntegrity(AddCommandResponse& s)
  {
    return checkIntegrityConst(s);
  }
  
  
  bool AddCommandResponseMarshaller::fromString(const std::string& s,AddCommandResponse& e)
  {
    try
    {
      Json::Reader reader;
      Json::Value json;
      if(!reader.parse(s,json,false))  return false;
      if(!fromJSON(json,e))  return false;
    }
    catch(...)
    {
      return false;
    }
    return true;
  }
  
  
  const std::string AddCommandResponseMarshaller::toString(const AddCommandResponse& e)
  {
    Json::FastWriter writer;
    return checkIntegrityConst(e) ? writer.write(toJSON(e)) : "";
  }
  
  
  bool AddCommandResponseMarshaller::checkIntegrityConst(const AddCommandResponse& s)
  {
    return true;
  }
  
  
  Json::Value AddCommandResponseMarshaller::toJSON(const AddCommandResponse& e)
  {
    Json::Value json(Json::objectValue);
    if(!checkIntegrityConst(e))
      return Json::Value(Json::nullValue);
  
    json["jsonrpc"]=Json::Value("2.0");
    json["id"]=Json::Value(e.getId());
    json["result"]=Json::Value(Json::objectValue);
    NsSmartDeviceLinkRPCV2::Result r(static_cast<NsSmartDeviceLinkRPCV2::Result::ResultInternal>(e.getResult()));
    json["result"]["resultCode"]=NsSmartDeviceLinkRPCV2::ResultMarshaller::toJSON(r);
    json["result"]["method"]=Json::Value("UI.AddCommandResponse");
  
    return json;
  }
  
  
  bool AddCommandResponseMarshaller::fromJSON(const Json::Value& json,AddCommandResponse& c)
  {
    try
    {
      if(!json.isObject())  return false;
      if(!json.isMember("jsonrpc") || !json["jsonrpc"].isString() || json["jsonrpc"].asString().compare("2.0"))  return false;
      if(!json.isMember("id") || !json["id"].isInt()) return false;
      c.setId(json["id"].asInt());
  
      if(!json.isMember("result")) return false;
  
      Json::Value js=json["result"];
      if(!js.isObject())  return false;
  
      NsSmartDeviceLinkRPCV2::Result r;
      if(!js.isMember("resultCode") || !js["resultCode"].isString())  return false;
      if(!js.isMember("method") || !js["method"].isString())  return false;
      if(js["method"].asString().compare("UI.AddCommandResponse")) return false;
  
      if(!NsSmartDeviceLinkRPCV2::ResultMarshaller::fromJSON(js["resultCode"],r))  return false;
      c.setResult(r.get());
    }
    catch(...)
    {
      return false;
    }
    return checkIntegrity(c);
  }
  