Coverity 16571
[u/mrichter/AliRoot.git] / STEER / AliCDBPath.h
1 #ifndef ALI_CDB_PATH_H
2 #define ALI_CDB_PATH_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /////////////////////////////////////////////////////////////////////
8 //                                                                 //
9 //  class AliCDBPath                                               //
10 //  Path string identifying the object:                            //
11 //  "level0/level1/level2"                                         //
12 //  (was: "Detector/DBType/DetSpecType")                           //
13 //  (example: "ZDC/Calib/Pedestals")                               //
14 //                                                                 //
15 /////////////////////////////////////////////////////////////////////
16
17 #include <TObject.h>
18 #include <TString.h>
19
20 class AliCDBPath: public TObject {
21
22 public:
23         
24         AliCDBPath();
25
26         AliCDBPath(const AliCDBPath& other);
27
28         AliCDBPath(const char* level0, const char* level1, 
29                         const char* level2);
30
31         AliCDBPath(const char* path);
32
33         AliCDBPath(const TString& path);
34
35         virtual ~AliCDBPath();
36
37
38         const TString& GetPath() const {return fPath;}
39         void  SetPath(const char* path) {fPath=path; InitPath();}
40
41         const char* GetLevel(Int_t i) const;
42
43         Bool_t IsValid() const {return fIsValid;}
44
45         Bool_t IsWildcard() const {return fIsWildcard;}
46
47         Bool_t Level0Comprises(const TString& str) const;
48         Bool_t Level1Comprises(const TString& str) const;
49         Bool_t Level2Comprises(const TString& str) const;
50
51         Bool_t Comprises(const AliCDBPath& other) const;
52
53 private:
54
55         Bool_t IsWord(const TString& str);
56
57         void InitPath();
58
59         void Init();
60
61         TString fPath;          // detector pathname (Detector/DBType/SpecType)
62         TString fLevel0;        // level0 name (ex. detector: ZDC, TPC...)
63         TString fLevel1;        // level1 name (ex. DB type, Calib, Align)
64         TString fLevel2;        // level2 name (ex. DetSpecType, pedestals, gain...)
65
66         Bool_t fIsValid;        // validity flag
67         Bool_t fIsWildcard;     // wildcard flag
68         
69         ClassDef(AliCDBPath, 1); 
70 };
71
72 #endif