ClassImp(AliCDBPath)
//_____________________________________________________________________________
-AliCDBPath::AliCDBPath() {
+AliCDBPath::AliCDBPath() :
+ TObject(),
+ fPath(""),
+ fLevel0(""),
+ fLevel1(""),
+ fLevel2(""),
+ fIsValid(kTRUE),
+ fIsWildcard(kFALSE)
+{
// default constructor
}
//_____________________________________________________________________________
AliCDBPath::AliCDBPath(const AliCDBPath& other):
-TObject(),
-fPath(other.fPath)
+ TObject(other),
+ fPath(other.fPath),
+ fLevel0(""),
+ fLevel1(""),
+ fLevel2(""),
+ fIsValid(other.fIsValid),
+ fIsWildcard(other.fIsWildcard)
{
// constructor
Init();
//_____________________________________________________________________________
AliCDBPath::AliCDBPath(const char* level0, const char* level1,
const char* level2):
-fLevel0(level0),
-fLevel1(level1),
-fLevel2(level2)
+ TObject(),
+ fPath(""),
+ fLevel0(level0),
+ fLevel1(level1),
+ fLevel2(level2),
+ fIsValid(kTRUE),
+ fIsWildcard(kFALSE)
{
// constructor
//_____________________________________________________________________________
AliCDBPath::AliCDBPath(const char* path):
-fPath(path)
+ TObject(),
+ fPath(path),
+ fLevel0(""),
+ fLevel1(""),
+ fLevel2(""),
+ fIsValid(kTRUE),
+ fIsWildcard(kFALSE)
{
// constructor
//_____________________________________________________________________________
AliCDBPath::AliCDBPath(const TString& path):
-fPath(path)
+ TObject(),
+ fPath(path),
+ fLevel0(""),
+ fLevel1(""),
+ fLevel2(""),
+ fIsValid(kTRUE),
+ fIsWildcard(kFALSE)
{
Init();
InitPath();
TString aString(strippedString);
strippedString = aString.Strip(TString::kBoth, '/');
- TObjArray* anArray = TString(strippedString).Tokenize("/");
+ TObjArray* anArray = TString(strippedString).Tokenize("/");
Int_t paramCount = anArray->GetEntriesFast();
if (paramCount == 1) {
} else if (paramCount == 2) {
fLevel0 = ((TObjString*) anArray->At(0))->GetString();
- TString aString = ((TObjString*) anArray->At(1))->GetString();
+ TString bString = ((TObjString*) anArray->At(1))->GetString();
- if (IsWord(fLevel0) && aString == "*") {
+ if (IsWord(fLevel0) && bString == "*") {
fLevel1 = "*";
fLevel2 = "*";
if (!fIsValid) {
AliInfo(Form("Invalid AliCDBPath <%s>!", fPath.Data()));
+ } else {
+ fPath = Form("%s/%s/%s", fLevel0.Data(), fLevel1.Data(), fLevel2.Data());
}
delete anArray;
-
+
Init();
}
Bool_t AliCDBPath::IsWord(const TString& str) {
// check if string is a word
- TRegexp pattern("^[a-zA-Z0-9_]+$");
+ TRegexp pattern("^[a-zA-Z0-9_.]+$");
return str.Contains(pattern);
}
Bool_t AliCDBPath::Comprises(const AliCDBPath& other) const {
// check if path is wildcard and comprises other
- return Level0Comprises(other.fLevel0)
+ return Level0Comprises(other.fLevel0)
&& Level1Comprises(other.fLevel1)
&& Level2Comprises(other.fLevel2);
}
+
+//_____________________________________________________________________________
+const char* AliCDBPath::GetLevel(Int_t i) const {
+// return level i of the path
+
+ switch (i) {
+ case 0:
+ return fLevel0.Data();
+ break;
+ case 1:
+ return fLevel1.Data();
+ break;
+ case 2:
+ return fLevel2.Data();
+ break;
+ default:
+ return 0;
+ }
+
+}