KSquare Utilities
KKB::XmlElementKeyValuePairs Class Reference

#include <XmlStream.h>

+ Inheritance diagram for KKB::XmlElementKeyValuePairs:

Public Member Functions

 XmlElementKeyValuePairs ()
 Used to construct an instance that will be written out to a XML file. More...
 
 XmlElementKeyValuePairs (XmlTagPtr tag, XmlStream &s, VolConstBool &cancelFlag, RunLog &log)
 
virtual ~XmlElementKeyValuePairs ()
 
void Add (const KKStr &key, const KKStr &v)
 
void Add (const KKStr &key, kkint32 v)
 
void Add (const KKStr &key, float v)
 
void Add (const KKStr &key, double v)
 
void Add (const KKStr &key, bool v)
 
void Add (const KKStr &key, const KKB::DateTime &v)
 
std::vector< std::pair< KKStr, KKStr > > * TakeOwnership ()
 
std::vector< std::pair< KKStr, KKStr > > * Value () const
 
void WriteXML (const KKStr &varName, std::ostream &o)
 
- Public Member Functions inherited from KKB::XmlElement
 XmlElement (const KKStr &sectionName, XmlTag::TagTypes tagType)
 
 XmlElement (XmlTagPtr _nameTag, XmlStream &s, RunLog &log)
 
virtual ~XmlElement ()
 
KKStrConstPtr AttributeValue (const char *attributeName)
 
KKStrConstPtr AttributeValue (const KKStr &attributeName)
 
XmlTagConstPtr NameTag () const
 
KKStr NameTagStr () const
 
virtual const KKStrSectionName () const
 
virtual bool ToBool () const
 
virtual double ToDouble () const
 
virtual float ToFloat () const
 
virtual kkint32 ToInt32 () const
 
virtual TokenTypes TokenType ()
 
virtual KKStr ToKKStr () const
 
virtual const KKStrVarName () const
 
- Public Member Functions inherited from KKB::XmlToken
 XmlToken ()
 
virtual ~XmlToken ()
 

Additional Inherited Members

- Public Types inherited from KKB::XmlElement
typedef XmlElementXmlElementPtr
 
- Public Types inherited from KKB::XmlToken
enum  TokenTypes { TokenTypes::tokNULL, TokenTypes::tokElement, TokenTypes::tokContent }
 
typedef XmlTokenXmlTokenPtr
 

Detailed Description

Definition at line 568 of file XmlStream.h.

Constructor & Destructor Documentation

XmlElementKeyValuePairs::XmlElementKeyValuePairs ( )

Used to construct an instance that will be written out to a XML file.

summary>Used while from XmlStream while reading file; every time it comes across a new Section(Start-Tag) a new instance of this class will be instantiated.

Definition at line 1134 of file XmlStream.cpp.

References KKB::XmlTag::tagStart, KKB::XmlElement::XmlElement(), and XmlElementKeyValuePairs().

Referenced by KKMLL::SVMparam::WriteXML(), KKMLL::SVMModel::WriteXML(), and XmlElementKeyValuePairs().

1134  :
1135  XmlElement ("KeyValuePairs", XmlTag::TagTypes::tagStart),
1136  value (new vector<pair<KKStr,KKStr> > ())
1137 {
1138 }
XmlElement(const KKStr &sectionName, XmlTag::TagTypes tagType)
Definition: XmlStream.cpp:750
XmlElementKeyValuePairs::XmlElementKeyValuePairs ( XmlTagPtr  tag,
XmlStream s,
VolConstBool cancelFlag,
RunLog log 
)

Definition at line 1141 of file XmlStream.cpp.

References KKB::KKStr::Concat(), KKB::XmlContent::Content(), KKB::KKStrParser::GetNextToken(), KKB::XmlStream::GetNextToken(), KKB::KKStrParser::KKStrParser(), KKB::KKStrParser::MoreTokens(), KKB::XmlToken::tokContent, KKB::XmlToken::TokenType(), KKB::KKStrParser::TrimWhiteSpace(), KKB::XmlElement::XmlElement(), and XmlElementKeyValuePairs().

Referenced by XmlElementKeyValuePairs().

1145  :
1146  XmlElement (tag, s, log),
1147  value (NULL)
1148 {
1149  value = new vector<pair<KKStr,KKStr> > ();
1150 
1151  XmlTokenPtr t = s.GetNextToken (cancelFlag, log);
1152  while (t != NULL)
1153  {
1154  if (t->TokenType () == XmlToken::TokenTypes::tokContent)
1155  {
1156  XmlContentPtr c = dynamic_cast<XmlContentPtr> (t);
1157  if (c)
1158  {
1159  KKStrParser p (*(c->Content ()));
1160  p.TrimWhiteSpace (" ");
1161 
1162  while (p.MoreTokens ())
1163  {
1164  KKStr key = p.GetNextToken ("\t\n");
1165  if (p.LastDelimiter () == '\n')
1166  value->push_back (pair<KKStr,KKStr> (key, ""));
1167  else
1168  value->push_back (pair<KKStr,KKStr> (key, p.GetRestOfLine ()));
1169  }
1170  }
1171  }
1172  delete t;
1173  t = s.GetNextToken (cancelFlag, log);
1174  }
1175 }
XmlElement(const KKStr &sectionName, XmlTag::TagTypes tagType)
Definition: XmlStream.cpp:750
KKStrPtr const Content() const
Definition: XmlStream.h:338
Class that manages the extraction of tokens from a String without being destructive to the original s...
Definition: KKStrParser.h:18
virtual XmlTokenPtr GetNextToken(VolConstBool &cancelFlag, RunLog &log)
Definition: XmlStream.cpp:116
XmlElementKeyValuePairs::~XmlElementKeyValuePairs ( )
virtual

Definition at line 1178 of file XmlStream.cpp.

1179 {
1180  delete value;
1181  value = NULL;
1182 }

Member Function Documentation

void XmlElementKeyValuePairs::Add ( const KKStr key,
const KKStr v 
)

Definition at line 1193 of file XmlStream.cpp.

Referenced by Add(), KKMLL::SVMparam::WriteXML(), and KKMLL::SVMModel::WriteXML().

1196 {
1197  value->push_back (pair<KKStr,KKStr> (key, v));
1198 }
void XmlElementKeyValuePairs::Add ( const KKStr key,
kkint32  v 
)

Definition at line 1203 of file XmlStream.cpp.

References Add(), and KKB::StrFromInt32().

Referenced by KKMLL::SVMModel::WriteXML().

1206 {
1207  Add (key, KKB::StrFromInt32 (v));
1208 }
void Add(const KKStr &key, const KKStr &v)
Definition: XmlStream.cpp:1193
KKStr StrFromInt32(kkint32 i)
Definition: KKStr.cpp:5175
void XmlElementKeyValuePairs::Add ( const KKStr key,
float  v 
)

Definition at line 1212 of file XmlStream.cpp.

References Add(), and KKB::StrFromFloat().

Referenced by KKMLL::SVMparam::WriteXML().

1215 {
1216  Add (key, KKB::StrFromFloat (v));
1217 }
KKStr StrFromFloat(float f)
Definition: KKStr.cpp:5219
void Add(const KKStr &key, const KKStr &v)
Definition: XmlStream.cpp:1193
void XmlElementKeyValuePairs::Add ( const KKStr key,
double  v 
)

Definition at line 1222 of file XmlStream.cpp.

References Add(), and KKB::StrFromDouble().

Referenced by KKMLL::SVMModel::WriteXML().

1225 {
1226  Add (key, KKB::StrFromDouble (v));
1227 }
void Add(const KKStr &key, const KKStr &v)
Definition: XmlStream.cpp:1193
KKStr StrFromDouble(double d)
Definition: KKStr.cpp:5229
void XmlElementKeyValuePairs::Add ( const KKStr key,
bool  v 
)

Definition at line 1232 of file XmlStream.cpp.

References Add(), KKB::KKStr::Concat(), and KKB::KKStr::operator=().

Referenced by KKMLL::SVMparam::WriteXML().

1235 {
1236  KKStr vStr = "False";
1237  if (v) vStr = "True";
1238  Add (key, vStr);
1239 }
void Add(const KKStr &key, const KKStr &v)
Definition: XmlStream.cpp:1193
void XmlElementKeyValuePairs::Add ( const KKStr key,
const KKB::DateTime v 
)

Definition at line 1243 of file XmlStream.cpp.

References Add(), and KKB::DateTime::YYYY_MM_DD_HH_MM_SS().

Referenced by KKMLL::SVMModel::WriteXML().

1246 {
1247  Add (key, v.YYYY_MM_DD_HH_MM_SS ());
1248 }
void Add(const KKStr &key, const KKStr &v)
Definition: XmlStream.cpp:1193
KKStr YYYY_MM_DD_HH_MM_SS() const
Definition: DateTime.cpp:1216
vector< pair< KKStr, KKStr > > * XmlElementKeyValuePairs::TakeOwnership ( )

Definition at line 1185 of file XmlStream.cpp.

1186 {
1187  vector<pair<KKStr,KKStr> >* v = value;
1188  value = NULL;
1189  return v;
1190 }
std::vector<std::pair<KKStr,KKStr> >* KKB::XmlElementKeyValuePairs::Value ( ) const
inline

Definition at line 586 of file XmlStream.h.

586 {return value;}
void XmlElementKeyValuePairs::WriteXML ( const KKStr varName,
std::ostream &  o 
)

Definition at line 1252 of file XmlStream.cpp.

References KKB::XmlTag::AddAtribute(), KKB::KKStr::Empty(), KKB::operator<<(), KKB::XmlTag::tagEnd, KKB::XmlTag::tagStart, KKB::XmlTag::WriteXML(), and KKB::XmlTag::XmlTag().

Referenced by KKMLL::SVMparam::WriteXML(), and KKMLL::SVMModel::WriteXML().

1255 {
1256  XmlTag startTag ("KeyValuePairs", XmlTag::TagTypes::tagStart);
1257  if (!varName.Empty ())
1258  startTag.AddAtribute ("VarName", varName);
1259  startTag.WriteXML (o);
1260  o << endl;
1261 
1262  vector<pair<KKStr,KKStr> >::const_iterator idx;
1263  for (idx = value->begin (); idx != value->end (); ++idx)
1264  {
1265  XmlContent::WriteXml (idx->first, o);
1266  o << "\t";
1267  XmlContent::WriteXml (idx->second, o);
1268  o << endl;
1269  }
1270 
1271  XmlTag endTag ("KeyValuePairs", XmlTag::TagTypes::tagEnd);
1272  endTag.WriteXML (o);
1273  o << endl;
1274 }
HTMLReport &__cdecl endl(HTMLReport &htmlReport)
Definition: HTMLReport.cpp:240
bool Empty() const
Definition: KKStr.h:241
static void WriteXml(const KKStr &s, std::ostream &o)
Definition: XmlStream.cpp:853

The documentation for this class was generated from the following files: