ROOT logo
/*
 * AliJSONData.cxx
 *
 *  Created on: 06.11.2014
 *      Author: markusfasel
 */
#include <sstream>
#include <TString.h>

#include <AliJSONData.h>

ClassImp(AliJSONValue)
ClassImp(AliJSONInt)
ClassImp(AliJSONFloat)
ClassImp(AliJSONDouble)
ClassImp(AliJSONBool)
ClassImp(AliJSONString)
ClassImp(AliJSONData)

const char* AliJSONInt::ToString() const { 
  std::stringstream stringbuilder;
  stringbuilder << fValue;
  return stringbuilder.str().c_str();
}

const char* AliJSONFloat::ToString() const {
  std::stringstream stringbuilder;
  stringbuilder << fValue;
  return stringbuilder.str().c_str();
}

const char* AliJSONDouble::ToString() const {
  std::stringstream stringbuilder;
  stringbuilder << fValue;
  return stringbuilder.str().c_str();
}

AliJSONData::AliJSONData(const char* key, const char* value):
  TNamed(key, ""),
  fValue(NULL)
{
   TString valstring(value);
   if(!valstring.CompareTo("true"))
     fValue = new AliJSONBool(kTRUE);
   else if(!valstring.CompareTo("false"))
     fValue = new AliJSONBool(kFALSE);
   else if(valstring.IsDigit()){
     if(valstring.IsFloat())
       fValue = new AliJSONDouble(valstring.Atof());
     else
       fValue = new AliJSONInt(valstring.Atoi());
   } else
     fValue = new AliJSONString(value);
}

const char* AliJSONData::ToString() const {
  std::stringstream jsonbuilder;
  jsonbuilder << "\"" << GetName() << "\":\"" << fValue->ToString() << "\"";
  return jsonbuilder.str().c_str();
}

std::ostream &operator<<(std::ostream &os, const AliJSONValue &val){
  os << val.ToString();
  return os;
}

std::ostream &operator<<(std::ostream &os, const AliJSONData &obj){
  os << obj.ToString();
  return os;
}

 AliJSONData.cxx:1
 AliJSONData.cxx:2
 AliJSONData.cxx:3
 AliJSONData.cxx:4
 AliJSONData.cxx:5
 AliJSONData.cxx:6
 AliJSONData.cxx:7
 AliJSONData.cxx:8
 AliJSONData.cxx:9
 AliJSONData.cxx:10
 AliJSONData.cxx:11
 AliJSONData.cxx:12
 AliJSONData.cxx:13
 AliJSONData.cxx:14
 AliJSONData.cxx:15
 AliJSONData.cxx:16
 AliJSONData.cxx:17
 AliJSONData.cxx:18
 AliJSONData.cxx:19
 AliJSONData.cxx:20
 AliJSONData.cxx:21
 AliJSONData.cxx:22
 AliJSONData.cxx:23
 AliJSONData.cxx:24
 AliJSONData.cxx:25
 AliJSONData.cxx:26
 AliJSONData.cxx:27
 AliJSONData.cxx:28
 AliJSONData.cxx:29
 AliJSONData.cxx:30
 AliJSONData.cxx:31
 AliJSONData.cxx:32
 AliJSONData.cxx:33
 AliJSONData.cxx:34
 AliJSONData.cxx:35
 AliJSONData.cxx:36
 AliJSONData.cxx:37
 AliJSONData.cxx:38
 AliJSONData.cxx:39
 AliJSONData.cxx:40
 AliJSONData.cxx:41
 AliJSONData.cxx:42
 AliJSONData.cxx:43
 AliJSONData.cxx:44
 AliJSONData.cxx:45
 AliJSONData.cxx:46
 AliJSONData.cxx:47
 AliJSONData.cxx:48
 AliJSONData.cxx:49
 AliJSONData.cxx:50
 AliJSONData.cxx:51
 AliJSONData.cxx:52
 AliJSONData.cxx:53
 AliJSONData.cxx:54
 AliJSONData.cxx:55
 AliJSONData.cxx:56
 AliJSONData.cxx:57
 AliJSONData.cxx:58
 AliJSONData.cxx:59
 AliJSONData.cxx:60
 AliJSONData.cxx:61
 AliJSONData.cxx:62
 AliJSONData.cxx:63
 AliJSONData.cxx:64
 AliJSONData.cxx:65
 AliJSONData.cxx:66
 AliJSONData.cxx:67
 AliJSONData.cxx:68
 AliJSONData.cxx:69
 AliJSONData.cxx:70
 AliJSONData.cxx:71