ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBMetaData					   //
//  Set of data describing the object  				   //
//  but not used to identify the object 			   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

#include "AliCDBMetaData.h"
#include "AliLog.h"

#include <TObjString.h>
#include <TTimeStamp.h>

ClassImp(AliCDBMetaData)

//_____________________________________________________________________________
AliCDBMetaData::AliCDBMetaData() :
  TObject(),
  fObjectClassName(""),
  fResponsible(""),
  fBeamPeriod(0),
  fAliRootVersion(""),
  fComment(""),
  fProperties()	
{
  // default constructor

  fProperties.SetOwner(1);
}

//_____________________________________________________________________________
AliCDBMetaData::AliCDBMetaData(const char *responsible, UInt_t beamPeriod,
    const char* alirootVersion, const char* comment) :
  TObject(),
  fObjectClassName(""),
  fResponsible(responsible),
  fBeamPeriod(beamPeriod),
  fAliRootVersion(alirootVersion),
  fComment(comment),
  fProperties()	
{
  // constructor

  fProperties.SetOwner(1);
}

//_____________________________________________________________________________
AliCDBMetaData::~AliCDBMetaData() {
  // destructor

}

//_____________________________________________________________________________
void AliCDBMetaData::SetProperty(const char* property, TObject* object) {
  // add something to the list of properties

  fProperties.Add(new TObjString(property), object);
}

//_____________________________________________________________________________
TObject* AliCDBMetaData::GetProperty(const char* property) const {
  // get a property specified by its name (property)

  return fProperties.GetValue(property);
}

//_____________________________________________________________________________
Bool_t AliCDBMetaData::RemoveProperty(const char* property) {
  // removes a property

  TObjString objStrProperty(property);
  TObjString* aKey = (TObjString*) fProperties.Remove(&objStrProperty);	

  if (aKey) {
    delete aKey;
    return kTRUE;
  } else {
    return kFALSE;
  }
}

//_____________________________________________________________________________
void AliCDBMetaData::AddDateToComment() {
  // add the date to the comment.
  // This method is supposed to be useful if called at the time when the object
  // is created, so that later it can more easily be tracked, in particular
  // when the date of the file can be lost or when one is interested in the
  // date of creation, irrespective of a later copy of it

  TTimeStamp ts(time(0));
  TString comment(GetComment());
  comment += Form("\tDate of production: %s\n", ts.AsString());
  comment.Remove(comment.Last('+'));
  SetComment(comment);

}

//_____________________________________________________________________________
void AliCDBMetaData::PrintMetaData() {
  // print the object's metaData

  TString message;
  if(fObjectClassName != "")
    message += TString::Format("\tObject's class name:	%s\n", fObjectClassName.Data());
  if(fResponsible != "")
    message += TString::Format("\tResponsible:		%s\n", fResponsible.Data());
  if(fBeamPeriod != 0)
    message += TString::Format("\tBeam period:		%d\n", fBeamPeriod);
  if(fAliRootVersion != "")
    message += TString::Format("\tAliRoot version:	%s\n", fAliRootVersion.Data());
  if(fComment != "")
    message += TString::Format("\tComment:		%s\n", fComment.Data());
  if(fProperties.GetEntries() > 0){
    message += "\tProperties key names:";

    TIter iter(fProperties.GetTable());
    TPair* aPair;
    while ((aPair = (TPair*) iter.Next())) {
      message += TString::Format("\t\t%s\n", ((TObjString* ) aPair->Key())->String().Data());
    }
  }
  message += '\n';
  Printf("**** Object's MetaData parameters **** \n%s", message.Data());
}
 AliCDBMetaData.cxx:1
 AliCDBMetaData.cxx:2
 AliCDBMetaData.cxx:3
 AliCDBMetaData.cxx:4
 AliCDBMetaData.cxx:5
 AliCDBMetaData.cxx:6
 AliCDBMetaData.cxx:7
 AliCDBMetaData.cxx:8
 AliCDBMetaData.cxx:9
 AliCDBMetaData.cxx:10
 AliCDBMetaData.cxx:11
 AliCDBMetaData.cxx:12
 AliCDBMetaData.cxx:13
 AliCDBMetaData.cxx:14
 AliCDBMetaData.cxx:15
 AliCDBMetaData.cxx:16
 AliCDBMetaData.cxx:17
 AliCDBMetaData.cxx:18
 AliCDBMetaData.cxx:19
 AliCDBMetaData.cxx:20
 AliCDBMetaData.cxx:21
 AliCDBMetaData.cxx:22
 AliCDBMetaData.cxx:23
 AliCDBMetaData.cxx:24
 AliCDBMetaData.cxx:25
 AliCDBMetaData.cxx:26
 AliCDBMetaData.cxx:27
 AliCDBMetaData.cxx:28
 AliCDBMetaData.cxx:29
 AliCDBMetaData.cxx:30
 AliCDBMetaData.cxx:31
 AliCDBMetaData.cxx:32
 AliCDBMetaData.cxx:33
 AliCDBMetaData.cxx:34
 AliCDBMetaData.cxx:35
 AliCDBMetaData.cxx:36
 AliCDBMetaData.cxx:37
 AliCDBMetaData.cxx:38
 AliCDBMetaData.cxx:39
 AliCDBMetaData.cxx:40
 AliCDBMetaData.cxx:41
 AliCDBMetaData.cxx:42
 AliCDBMetaData.cxx:43
 AliCDBMetaData.cxx:44
 AliCDBMetaData.cxx:45
 AliCDBMetaData.cxx:46
 AliCDBMetaData.cxx:47
 AliCDBMetaData.cxx:48
 AliCDBMetaData.cxx:49
 AliCDBMetaData.cxx:50
 AliCDBMetaData.cxx:51
 AliCDBMetaData.cxx:52
 AliCDBMetaData.cxx:53
 AliCDBMetaData.cxx:54
 AliCDBMetaData.cxx:55
 AliCDBMetaData.cxx:56
 AliCDBMetaData.cxx:57
 AliCDBMetaData.cxx:58
 AliCDBMetaData.cxx:59
 AliCDBMetaData.cxx:60
 AliCDBMetaData.cxx:61
 AliCDBMetaData.cxx:62
 AliCDBMetaData.cxx:63
 AliCDBMetaData.cxx:64
 AliCDBMetaData.cxx:65
 AliCDBMetaData.cxx:66
 AliCDBMetaData.cxx:67
 AliCDBMetaData.cxx:68
 AliCDBMetaData.cxx:69
 AliCDBMetaData.cxx:70
 AliCDBMetaData.cxx:71
 AliCDBMetaData.cxx:72
 AliCDBMetaData.cxx:73
 AliCDBMetaData.cxx:74
 AliCDBMetaData.cxx:75
 AliCDBMetaData.cxx:76
 AliCDBMetaData.cxx:77
 AliCDBMetaData.cxx:78
 AliCDBMetaData.cxx:79
 AliCDBMetaData.cxx:80
 AliCDBMetaData.cxx:81
 AliCDBMetaData.cxx:82
 AliCDBMetaData.cxx:83
 AliCDBMetaData.cxx:84
 AliCDBMetaData.cxx:85
 AliCDBMetaData.cxx:86
 AliCDBMetaData.cxx:87
 AliCDBMetaData.cxx:88
 AliCDBMetaData.cxx:89
 AliCDBMetaData.cxx:90
 AliCDBMetaData.cxx:91
 AliCDBMetaData.cxx:92
 AliCDBMetaData.cxx:93
 AliCDBMetaData.cxx:94
 AliCDBMetaData.cxx:95
 AliCDBMetaData.cxx:96
 AliCDBMetaData.cxx:97
 AliCDBMetaData.cxx:98
 AliCDBMetaData.cxx:99
 AliCDBMetaData.cxx:100
 AliCDBMetaData.cxx:101
 AliCDBMetaData.cxx:102
 AliCDBMetaData.cxx:103
 AliCDBMetaData.cxx:104
 AliCDBMetaData.cxx:105
 AliCDBMetaData.cxx:106
 AliCDBMetaData.cxx:107
 AliCDBMetaData.cxx:108
 AliCDBMetaData.cxx:109
 AliCDBMetaData.cxx:110
 AliCDBMetaData.cxx:111
 AliCDBMetaData.cxx:112
 AliCDBMetaData.cxx:113
 AliCDBMetaData.cxx:114
 AliCDBMetaData.cxx:115
 AliCDBMetaData.cxx:116
 AliCDBMetaData.cxx:117
 AliCDBMetaData.cxx:118
 AliCDBMetaData.cxx:119
 AliCDBMetaData.cxx:120
 AliCDBMetaData.cxx:121
 AliCDBMetaData.cxx:122
 AliCDBMetaData.cxx:123
 AliCDBMetaData.cxx:124
 AliCDBMetaData.cxx:125
 AliCDBMetaData.cxx:126
 AliCDBMetaData.cxx:127
 AliCDBMetaData.cxx:128
 AliCDBMetaData.cxx:129
 AliCDBMetaData.cxx:130
 AliCDBMetaData.cxx:131
 AliCDBMetaData.cxx:132
 AliCDBMetaData.cxx:133
 AliCDBMetaData.cxx:134
 AliCDBMetaData.cxx:135
 AliCDBMetaData.cxx:136
 AliCDBMetaData.cxx:137
 AliCDBMetaData.cxx:138
 AliCDBMetaData.cxx:139
 AliCDBMetaData.cxx:140