BasicXMLable.cxx
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "BasicXMLable.hxx"
00023 #include <iostream>
00024
00025 using namespace CLAM;
00026
00027 BasicXMLable::~BasicXMLable()
00028 {
00029 }
00030
00031 BasicXMLable::BasicXMLable (const char * name, bool isXMLElement)
00032 {
00033 CLAM_BEGIN_CHECK
00034 if (name) {
00035 CLAM_ASSERT(*name, "Empty XML label.");
00036 for (const char * c=name; *c; c++) {
00037 if (isalpha(*c)) continue;
00038
00039 CLAM_ASSERT (c!=name, "Illegal start for an XML label, it needs a letter.");
00040
00041 if (isdigit(*c)) continue;
00042 if (*c=='-') continue;
00043 if (*c=='_') continue;
00044 if (*c==':') continue;
00045
00046 CLAM_ASSERT (false, "XML label defined with illegal character");
00047 }
00048 }
00049 CLAM_END_CHECK
00050 amIXMLElement=isXMLElement;
00051 myXMLName=name;
00052 }
00053
00054
00055 bool BasicXMLable::FulfilsInvariant()
00056 {
00057 if (myXMLName || !amIXMLElement) {
00058 std::cerr << "BasicXMLable Invariant failed: An element without name." << std::endl;
00059 return false;
00060 }
00061 return true;
00062 };
00063