SNAP Library 2.0, User Reference  2013-05-13 16:33:57
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
TXmlObjSer Class Reference

#include <xml.h>

List of all members.

Static Public Member Functions

static TStr GetTagNm (const TStr &TypeNm)
static void AssertXmlHd (const PXmlTok &XmlTok, const TStr &Nm, const TStr &TypeNm)
static bool GetBoolArg (const PXmlTok &XmlTok, const TStr &Nm)
static int GetIntArg (const PXmlTok &XmlTok, const TStr &Nm)
static int64 GetInt64Arg (const PXmlTok &XmlTok, const TStr &Nm)
static double GetFltArg (const PXmlTok &XmlTok, const TStr &Nm)

Static Private Attributes

static TStrStrH TypeNmToTagNmH

Detailed Description

Definition at line 5 of file xml.h.


Member Function Documentation

void TXmlObjSer::AssertXmlHd ( const PXmlTok XmlTok,
const TStr Nm,
const TStr TypeNm 
) [static]

Definition at line 22 of file xml.cpp.

                                                           {
  // check if the token is full
  EAssertR(!XmlTok.Empty(), "Xml-Token Empty");
  // if name is empty then tag=type else tag=name
  if (!Nm.Empty()){
    // check if the token is tag
    if (!XmlTok->IsTag()){
      TStr ArgStr1="Expected: Tag";
      TStr ArgStr2=TStr("Found: ")+XmlTok->GetSymStr();
      TExcept::Throw("Invalid Xml-Token", ArgStr1, ArgStr2);
    }
    if (Nm!="-"){
      // check if the tag is correct
      if (!XmlTok->IsTag(Nm)){
        TStr ArgStr1=TStr("Expected: ")+Nm;
        TStr ArgStr2=TStr("Found: ")+XmlTok->GetStr();
        TExcept::Throw("Invalid Xml-Tag", ArgStr1, ArgStr2);
      }
      // check if the type is correct
      TStr TypeArgVal=XmlTok->GetStrArgVal("Type");
      if (TypeArgVal!=TypeNm){
        TStr ArgStr1=TStr("Expected: ")+TypeNm;
        TStr ArgStr2=TStr("Found: ")+TypeArgVal;
        TExcept::Throw("Invalid Xml-Type", ArgStr1, ArgStr2);
      }
    }
  } else {
    // check if the tag is correct
    if (!XmlTok->IsTag(TypeNm)){
      TStr ArgStr1=TStr("Expected: ")+TypeNm;
      TStr ArgStr2=TStr("Found: ")+XmlTok->GetSymStr();
      TExcept::Throw("Invalid Xml-Type-Tag", ArgStr1, ArgStr2);
    }
  }
}
bool TXmlObjSer::GetBoolArg ( const PXmlTok XmlTok,
const TStr Nm 
) [static]

Definition at line 59 of file xml.cpp.

                                                                {
  TStr ValStr;
  if (XmlTok->IsArg(Nm, ValStr)){
    bool Val;
    if (ValStr.IsBool(Val)){
      return Val;
    } else {
      TExcept::Throw("Invalid Xml-Argument Boolean-Value", Nm, ValStr);
    }
  } else {
    TExcept::Throw("Xml-Argument Missing", Nm);
  }
  Fail; return 0;
}
double TXmlObjSer::GetFltArg ( const PXmlTok XmlTok,
const TStr Nm 
) [static]

Definition at line 104 of file xml.cpp.

                                                                 {
  TStr ValStr;
  if (XmlTok->IsArg(Nm, ValStr)){
    double Val;
    if (ValStr.IsFlt(Val)){
      return Val;
    } else {
      TExcept::Throw("Invalid Xml-Argument Double-Value", Nm, ValStr);
    }
  } else {
    TExcept::Throw("Xml-Argument Missing", Nm);
  }
  Fail; return 0;
}
int64 TXmlObjSer::GetInt64Arg ( const PXmlTok XmlTok,
const TStr Nm 
) [static]

Definition at line 89 of file xml.cpp.

                                                                  {
  TStr ValStr;
  if (XmlTok->IsArg(Nm, ValStr)){
    int64 Val;
    if (ValStr.IsInt64(Val)){
      return Val;
    } else {
      TExcept::Throw("Invalid Xml-Argument Integer64-Value", Nm, ValStr);
    }
  } else {
    TExcept::Throw("Xml-Argument Missing", Nm);
  }
  Fail; return 0;
}
int TXmlObjSer::GetIntArg ( const PXmlTok XmlTok,
const TStr Nm 
) [static]

Definition at line 74 of file xml.cpp.

                                                              {
  TStr ValStr;
  if (XmlTok->IsArg(Nm, ValStr)){
    int Val;
    if (ValStr.IsInt(Val)){
      return Val;
    } else {
      TExcept::Throw("Invalid Xml-Argument Integer-Value", Nm, ValStr);
    }
  } else {
    TExcept::Throw("Xml-Argument Missing", Nm);
  }
  Fail; return 0;
}
TStr TXmlObjSer::GetTagNm ( const TStr TypeNm) [static]

Definition at line 5 of file xml.cpp.

                                           {
  TStr& XmlTagNm=TypeNmToTagNmH.AddDat(TypeNm);
  if (XmlTagNm.Empty()){
    TChA XmlTagChA=TypeNm;
    for (int ChN=0; ChN<XmlTagChA.Len(); ChN++){
      char Ch=XmlTagChA[ChN];
      if (!((('A'<=Ch)&&(Ch<='Z'))||(('a'<=Ch)&&(Ch<='z'))||(('0'<=Ch)&&(Ch<='9')))){
        XmlTagChA.PutCh(ChN, '_');
      }
    }
    while ((XmlTagChA.Len()>0)&&(XmlTagChA.LastCh()=='_')){
      XmlTagChA.Pop();}
    XmlTagNm=XmlTagChA;
  }
  return XmlTagNm;
}

Member Data Documentation

Definition at line 7 of file xml.h.


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