DefaultHepRepType.cc

Go to the documentation of this file.
00001 // Copyright FreeHEP, 2005.
00002 
00003 #include "cheprep/DefaultHepRepType.h"
00004 
00005 using namespace std;
00006 using namespace HEPREP;
00007 
00012 namespace cheprep {
00013 
00014 DefaultHepRepType::DefaultHepRepType(HepRepType* parentType, string typeName)
00015     : DefaultHepRepDefinition(), parent(parentType), name(typeName) {
00016     this->description = "No Description";
00017     this->infoURL = "No Info URL";
00018 
00019     // HepRepTypes are sometimes used without a parent (top-level)
00020     if (parent != NULL) {
00021         parent->addType(this);
00022     }
00023 }
00024 
00025 DefaultHepRepType::DefaultHepRepType(HepRepTypeTree* parentTypeTree, string typeName)
00026     : DefaultHepRepDefinition(), parent(NULL), name(typeName) {
00027     this->description = "No Description";
00028     this->infoURL = "No Info URL";
00029     
00030     parentTypeTree->addType(this);
00031 }
00032 
00033 DefaultHepRepType::~DefaultHepRepType() {
00034     for (vector<HepRepType*>::iterator i1 = types.begin(); i1 != types.end(); i1++) {
00035         delete (*i1);
00036     }
00037 }
00038 
00039 HepRepType* DefaultHepRepType::getSuperType() {
00040     return parent;
00041 }
00042 
00043 HepRepAttDef* DefaultHepRepType::getAttDef(string defName) {
00044     HepRepAttDef* def = NULL;
00045     HepRepType* type = this;
00046     while ((def == NULL) && (type != NULL)) {
00047         def = type->getAttDefFromNode(defName);
00048         type = type->getSuperType();
00049     }
00050     if (def == NULL) {
00051         cerr << "ERROR: No HepRepDefaults, trying to get definition for: " << defName << endl;
00052         // FIXME, no HepRepDefaults
00053     }
00054     return def;
00055 }
00056 
00060 HepRepAttValue* DefaultHepRepType::getAttValue(string attName) {
00061     HepRepAttValue* value = NULL;
00062     HepRepType* type = this;
00063     while ((value == NULL) && (type != NULL)) {
00064         value = type->getAttValueFromNode(attName);
00065         type = type->getSuperType();
00066     }
00067     if (value == NULL) {
00068         cerr << "ERROR: No HepRepDefaults, trying to get value for: " << attName << endl;
00069         // FIXME, no HepRepDefaults
00070     }
00071     return value;
00072 }
00073 
00074 HepRepType* DefaultHepRepType::copy(HepRepType*) {
00075     cerr << "DefaultHepRepType::copy(HepRepType*) not implemented." << endl;
00076     return NULL;
00077 }
00078 
00079 string DefaultHepRepType::getName() {
00080     return name;
00081 }
00082 
00083 string DefaultHepRepType::getFullName() {
00084     return (getSuperType() == NULL) ? getName() : getSuperType()->getFullName() + "/" + getName();
00085 }
00086 
00087 string DefaultHepRepType::getDescription() {
00088     return description;
00089 }
00090 
00091 void DefaultHepRepType::setDescription(string desc) {
00092     this->description = desc;
00093 }
00094 
00095 string DefaultHepRepType::getInfoURL() {
00096     return infoURL;
00097 }
00098 
00099 void DefaultHepRepType::setInfoURL(string info) {
00100     this->infoURL = info;
00101 }
00102 
00103 void DefaultHepRepType::addType(HepRepType* type) {
00104     // FIXME should check if type already exists
00105     types.push_back(type);
00106 }
00107 
00108 vector<HepRepType*> DefaultHepRepType::getTypeList() {
00109     return types;
00110 }
00111 
00112 
00113 } // cheprep

Generated on Mon May 27 17:47:34 2013 for Geant4 by  doxygen 1.4.7