Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

mrprjContent.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2001 Karsten Reincke <karsten.reincke@karubik.de>
00003  *  
00004  *  
00005  * This file is part of of the software-project MRPROJEXT.
00006  * 
00007  * MRPROJEXT is free software; you can redistribute it and/or modify
00008  * it under the terms of the GNU General Public License as published by
00009  * the Free Software Foundation; either version 2 of the License, or
00010  * (at your option) any later version.
00011  * 
00012  * MRPROJEXT is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  * 
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software 
00019  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00020  *  
00021  * file <mrprjContent.h> version <#1.3.1#> of project <MrProjext>
00022  */   
00023 
00030 #ifndef  MRPRJCONTENT_H
00031 #define  MRPRJCONTENT_H
00032 
00033 #ifdef HAVE_CONFIG_H
00034 #include <config.h>
00035 #endif
00036 
00037 #include <string>
00038 #include <map>
00039 #include <list>
00040 #include <muo.h>
00041 #include <libxml/parser.h>
00042 #include <libxml/tree.h>
00043 
00044 /* &&& exported preprocessor-defines &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00045 
00046 /* &&& class-declarations &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00047 
00048 namespace mrprj
00049 {
00050 
00056 class DateStringConverter
00057 {
00058   private:
00059   public:
00060     
00061     DateStringConverter();  
00062     ~DateStringConverter(); 
00063 
00067     string formYankDateString(const string& pMrprojectDateString)const;
00068     
00072    string formGermanDateString(const string& pMrprojectDateString)const;
00073 
00074 };
00075 
00083 class XmlNodeReader
00084 {
00085   private:
00091     krmuo::XmlConverter xmlConverter;  
00092 
00093   public:
00094     XmlNodeReader();    
00095     
00096     ~XmlNodeReader();  
00097 
00098 
00102     bool getStringProperty
00103     ( 
00104       const xmlDocPtr xmlDoc,
00105       const xmlNodePtr pPropertyNode, 
00106       const string& pPropertySigner,
00107       string& pPropertyValue
00108     );
00109 
00110     
00124     inline bool getIntProperty
00125     ( 
00126       const xmlDocPtr xmlDoc,
00127       const xmlNodePtr pPropertyNode, 
00128       const string& pPropertySigner,
00129       int& pPropertyValue
00130     )
00131     {
00132       string localStringValue;
00133       if (!(getStringProperty(xmlDoc,pPropertyNode,pPropertySigner,localStringValue)))
00134         return false;
00135       pPropertyValue=atoi(localStringValue.c_str());
00136       return true;
00137     }
00138     
00152     inline bool getLongProperty
00153     ( 
00154       const xmlDocPtr xmlDoc,
00155       const xmlNodePtr pPropertyNode, 
00156       const string& pPropertySigner,
00157       long& pPropertyValue
00158     )
00159     {
00160       string localStringValue;
00161       if (!(getStringProperty(xmlDoc,pPropertyNode,pPropertySigner,localStringValue)))
00162         return false;
00163       pPropertyValue=atol(localStringValue.c_str());
00164       return true;
00165     }
00166 
00167 
00181     inline bool getFloatProperty
00182     ( 
00183       const xmlDocPtr xmlDoc,
00184       const xmlNodePtr pPropertyNode, 
00185       const string& pPropertySigner,
00186       float& pPropertyValue
00187     )
00188     {
00189       string localStringValue;
00190       if (!(getStringProperty(xmlDoc,pPropertyNode,pPropertySigner,localStringValue)))
00191         return false;
00192       pPropertyValue=atof(localStringValue.c_str());
00193       return true;
00194     }
00195 
00196 };
00197 
00205 class Property
00206 {
00207   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00208   public:
00209   
00210   private:
00211     krmuo::LoggingUnit& mLoggingUnit;
00212     string mName; 
00213     string mType; 
00214     string mOwner; 
00215     string mLabel; 
00216     string mDescription; 
00217     
00218   protected:
00219   
00220   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00221   
00222   public:
00223   
00224     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00225     
00229     Property
00230     ( 
00231       krmuo::LoggingUnit& pLoggingUnit,
00232       const string& pName,
00233       const string& pType,
00234       const string& pOwner,
00235       const string& pLabel,
00236       const string& pDescription
00237     );                       
00238         
00239     ~Property();                      
00240         
00241   
00242     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00243 
00247     inline const string& getName() const { return mName; }
00248 
00252     inline const string& getType() const { return mType; }
00253 
00257     inline const string& getOwner() const { return mOwner; }
00258 
00262     inline const string& getLabel() const { return mLabel; }
00263 
00267     inline const string& getDescription() const { return mDescription; }
00268 
00269 
00270     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00271     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00272               
00273   private:
00274     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00275      Property(const Property& co);     
00276     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00277     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00278     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00279   protected:
00280     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00281     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00282     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00283 };
00284 
00292 class Phase
00293 {
00294   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00295   public:
00296   
00297   private:
00298     krmuo::LoggingUnit& mLoggingUnit;
00299     string mName; 
00300     
00301   protected:
00302   
00303   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00304   
00305   public:
00306   
00307     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00308     
00312     Phase
00313     ( 
00314       krmuo::LoggingUnit& pLoggingUnit,
00315       const string& pName
00316     );                       
00317         
00318     ~Phase();                      
00319         
00320   
00321     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00322 
00326     inline const string& getName() const { return mName; }
00327 
00328 
00329     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00330     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00331               
00332   private:
00333     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00334      Phase(const Phase& co);     
00335     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00336     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00337     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00338   protected:
00339     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00340     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00341     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00342 };
00343 
00351 class DayType
00352 {
00353   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00354   public:
00355   
00356   private:
00357     krmuo::LoggingUnit& mLoggingUnit;
00358     string mId; 
00359     string mName; 
00360     string mDescription; 
00361     
00362   protected:
00363   
00364   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00365   
00366   public:
00367   
00368     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00369     
00373     DayType
00374     ( 
00375       krmuo::LoggingUnit& pLoggingUnit,
00376       const string& pId,
00377       const string& pName,
00378       const string& pDescription
00379     );                       
00380         
00381     ~DayType();                      
00382         
00383   
00384     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00385 
00389     inline const string& getId() const { return mId; }
00390 
00394     inline const string& getName() const { return mName; }
00395 
00396 
00400     inline const string& getDescription() const { return mDescription; }
00401 
00402 
00403     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00404     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00405               
00406   private:
00407     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00408      DayType(const DayType& co);     
00409     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00410     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00411     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00412   protected:
00413     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00414     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00415     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00416 };
00417 
00425 class Interval
00426 {
00427   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00428   public:
00429   
00430   private:
00431     krmuo::LoggingUnit& mLoggingUnit;
00432     string mStart; 
00433     string mEnd; 
00434     
00435   protected:
00436   
00437   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00438   
00439   public:
00440   
00441     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00442     
00446     Interval
00447     ( 
00448       krmuo::LoggingUnit& pLoggingUnit,
00449       const string& pStart,
00450       const string& pEnd
00451     );                       
00452         
00453     ~Interval();                      
00454         
00455      Interval(const Interval& co);     
00456   
00457     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00458 
00462     inline const string& getStart() const { return mStart; }
00463 
00467     inline const string& getEnd() const { return mEnd; }
00468 
00469 
00470     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00471     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00472               
00473   private:
00474     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00475     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00476     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00477     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00478   protected:
00479     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00480     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00481     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00482 };
00483 
00484 
00492 class OverriddenDayType
00493 {
00494   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00495   public:
00496     list<Interval> mIntervalList;    
00497   
00498   private:
00499     krmuo::LoggingUnit& mLoggingUnit;
00500     string mId; 
00501   protected:
00502   
00503   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00504   
00505   public:
00506   
00507     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00508     
00512     OverriddenDayType
00513     ( 
00514       krmuo::LoggingUnit& pLoggingUnit,
00515       const string& pId
00516     );                       
00517         
00518     ~OverriddenDayType();                      
00519         
00520 
00521     OverriddenDayType(const OverriddenDayType& co);     
00522   
00523     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00524 
00528     inline const string& getId() const { return mId; }
00529 
00530 
00531     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00532     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00533               
00534   private:
00535     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00536     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00537     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00538     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00539   protected:
00540     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00541     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00542     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00543 };
00544 
00552 class Day
00553 {
00554   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00555   public:
00556   
00557   private:
00558     krmuo::LoggingUnit& mLoggingUnit;
00559     string mDate; 
00560     string mType; 
00561     string mId; 
00562     
00563   protected:
00564   
00565   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00566   
00567   public:
00568   
00569     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00570     
00574     Day
00575     ( 
00576       krmuo::LoggingUnit& pLoggingUnit,
00577       const string& pDate,
00578       const string& pType,
00579       const string& pId
00580     );                       
00581         
00582     ~Day();                      
00583         
00584   
00585     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00586 
00590     inline const string& getDate() const { return mDate; }
00591 
00595     inline const string& getType() const { return mType; }
00596 
00600     inline const string& getId() const { return mId; }
00601 
00602 
00603     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00604     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00605               
00606      Day(const Day& co);     
00607   private:
00608     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00609     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00610     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00611     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00612   protected:
00613     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00614     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00615     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00616 };
00617 
00625 class Calendar
00626 {
00627   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00628   public:
00629     string mMon; 
00630     string mTue; 
00631     string mWed; 
00632     string mThu; 
00633     string mFri; 
00634     string mSat; 
00635     string mSun; 
00636     
00640     list<OverriddenDayType> mOverriddenDayTypeList;
00644     list<Day> mDayList;  
00645   private:
00646     krmuo::LoggingUnit& mLoggingUnit;
00647     string mId; 
00648     string mName; 
00649             
00650   protected:
00651   
00652   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00653   
00654   public:
00655   
00656     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00657     
00661     Calendar
00662     ( 
00663       krmuo::LoggingUnit& pLoggingUnit,
00664       const string& pId,
00665       const string& pName
00666     );                       
00667         
00668     ~Calendar();                      
00669         
00670   
00671     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00672 
00676     inline const string& getId() const { return mId; }
00677 
00681     inline const string& getName() const { return mName; }
00682 
00683 
00684     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00685     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00686               
00687   private:
00688     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00689      Calendar(const Calendar& co);     
00690     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00691     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00692     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00693   protected:
00694     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00695     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00696     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00697 };
00698 
00708 class ResourceGroup
00709 {
00710   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00711   public:
00712   
00713   private:
00714     string mGroupId; 
00715     string mGroupTitle; 
00716     string mGroupDescription; 
00717     string mGroupAdminName; 
00718     string mGroupAdminPhone; 
00719     string mGroupAdminEmail; 
00720     krmuo::LoggingUnit& mLoggingUnit; 
00721     
00722   protected:
00723   
00724   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00725   
00726   public:
00727   
00728     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00729     
00733     ResourceGroup
00734     ( 
00735       krmuo::LoggingUnit& pLoggingUnit,
00736       const string& pGroupId,
00737       const string& pGroupTitle="???",
00738       const string& pGroupDescription="???",
00739       const string& pGroupAdminName="???",
00740       const string& pGroupAdminPhone="???",
00741       const string& pGroupAdminEmail="???"
00742     );                       
00743         
00744     ~ResourceGroup();                      
00745         
00746   
00747     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00751     inline const string& getGroupId() const { return mGroupId; }
00752     
00756     inline const string& getGroupTitle() const { return mGroupTitle; }
00757     
00761     inline const string& getGroupAdminName() const { return mGroupAdminName; }
00762 
00766     inline const string& getGroupAdminPhone() const { return mGroupAdminPhone; }
00767 
00771     inline const string& getGroupAdminEmail() const { return mGroupAdminEmail; }
00772     
00773     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00774     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00775               
00776   private:
00777     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00778      ResourceGroup(const ResourceGroup& co);     
00779     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00780     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00781     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00782   protected:
00783     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00784     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00785     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00786 };
00787 
00797 class Resource
00798 {
00799   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00800   public:
00801   
00802   private:
00803     string mResourceId;
00804     string mResourceGroupId;
00805     string mResourceTitle;
00806     string mResourceDescription;
00807     int mResourceType; 
00808     long mResourceUnits; 
00809     string mRecourceEmail; 
00810     float mRecourceStdRate; 
00811     float mRecourceOvtRate; 
00812     krmuo::LoggingUnit& mLoggingUnit; 
00813     
00814   protected:
00815   
00816   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00817   
00818   public:
00819   
00820     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00821     
00825     Resource
00826     ( 
00827       krmuo::LoggingUnit& mLoggingUnit,    
00828       const string& pResourceId,
00829       const string& pResourceGroupId,      
00830       const string& pResourceTitle="???",
00831       const string& pResourceDescription="???",
00832       const int pResourceType=1,
00833       const long pResourceUnits=100,
00834       const string& pRecourceEmail="???",
00835       float pRecourceStdRate=0.0,
00836       float pRecourceOvtRate=200.0
00837     );                       
00838         
00839     ~Resource();                      
00840         
00841   
00842     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00846     inline const string& getResourceId() const { return mResourceId; }
00847     
00851     inline const string& getResourceGroupId() const { return mResourceGroupId; }
00852 
00856     inline const string& getResourceTitle() const { return mResourceTitle; }
00857 
00861     inline const int getResourceType() const { return mResourceType; }
00862 
00866     inline const long getResourceUnits() const { return mResourceUnits; }
00867 
00871     inline const string& getRecourceEmail() const { return mRecourceEmail; }
00872 
00876     inline const float getRecourceStdRate() const { return mRecourceStdRate; }
00877 
00881     inline const float getRecourceOvtRate() const { return mRecourceOvtRate; }
00882     
00883     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00884     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00885               
00886   private:
00887     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00888      Resource(const Resource& co);     
00889     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00890     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00891     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00892   protected:
00893     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00894     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00895     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00896 };
00897 
00906 class Allocation
00907 {
00908   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00909   public:
00910   
00911   private:
00912     string mTaskId; 
00913     string mResourceId; 
00914     krmuo::LoggingUnit& mLoggingUnit;
00915   protected:
00916   
00917   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
00918   
00919   public:
00920   
00921     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
00922     
00926     Allocation
00927     ( 
00928       krmuo::LoggingUnit& pLoggingUnit,
00929       const string& pTaskId,
00930       const string& pResourceId      
00931     );                       
00932         
00933     ~Allocation();                      
00934         
00935   
00936     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00937 
00941     inline const string& getTaskId() const { return mTaskId; }
00942 
00946     inline const string& getResourceId() const { return mResourceId; }
00947     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
00948     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00949               
00950   private:
00951     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
00952      Allocation(const Allocation& co);     
00953     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00954     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00955     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */      
00956   protected:
00957     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00958     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00959     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
00960 };
00961 
00962 
00963 
00964 
00973 class Predecessor
00974 {
00975   public:
00976   
00977   private:
00978     const string mEntryId;  
00979     const string mPredecessorTaskId;  
00980     const string mType;   
00981   protected:
00982 
00983   public:
00984   
00988     Predecessor
00989     ( 
00990       const string& pEntryId,
00991       const string& pPredecessorTaskId,
00992       const string& pType  
00993     );
00994     
00998     ~Predecessor();
00999     
01000     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01001     
01005     inline const string& getEntryId() const { return mEntryId; }
01009     inline const string& getPredecessorTaskId() const { return mPredecessorTaskId; }
01013     inline const string& getType() const { return mType ; }
01014 };
01015 
01036 class Task
01037 {
01038   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
01039   public:
01040   
01041   private:
01042     string mTaskId; 
01043     string mTaskTitle; 
01044     string mTaskDescription; 
01045     string mTaskStartDate; 
01046     string mTaskEndDate; 
01047     int mFullFilledPercent; 
01048     bool mIsEmptyTopTask;
01049      
01050     map<string, Task*> mSubTaskMap; 
01051     list<string> mSubTaskOrderList; 
01052     map<string,Predecessor*> mPredecessorMap; 
01053     krmuo::LoggingUnit& mLoggingUnit; 
01054 
01055     bool mIsActive; 
01056     bool mIsAllocated; 
01057     bool mAnyDaughterIsActive; 
01058     int mXrowspan;
01059     int mXrowTacker;
01060     int mNodeEmbeddedLevel;
01061     bool mXdoPrint;
01062   protected:
01063   
01064   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
01065   
01066   public:
01067   
01068     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
01069     
01070     Task 
01071     ( 
01072       krmuo::LoggingUnit& pLoggingUnit,  
01073       const string& spTaskId,
01074       const string& pTaskTitle="???",
01075       const string& pTaskDescription="???",
01076       const string& pTaskStartDate="19700101T000000",
01077       const string& pTaskEndDate="21001231T240000",
01078       const int pFullFilledPercent=0,
01079       const bool pIsEmptyTopTask=false
01080     );                       
01081         
01082     ~Task();                      
01083         
01084     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01088     inline const string& getTaskId() const { return mTaskId; }
01089 
01093     inline const string& getTaskTitle() const { return mTaskTitle; }
01094 
01098     inline const string& getTaskDescription() const { return mTaskDescription; }
01099 
01100 
01104     const string getTaskDescriptionAsOneLine() const;
01105 
01109     const string  getPredecessorString()const;
01110 
01114     const string getTaskDescriptionAsFormattedString
01115       ( const string& pIndent,
01116         const int pLineLength) const;
01117 
01121     const string getClearTaskDescriptionAsOneLine
01122       () const;
01123         
01127     inline const string& getStartDate() const { return mTaskStartDate; }
01128 
01132     inline const string& getEndDate() const { return mTaskEndDate; }
01133 
01137     inline const int getFullFilledPercent() const { return mFullFilledPercent; }
01138 
01139 
01143     inline const bool isEmptyTopTask()const { return  mIsEmptyTopTask; }
01144     
01148     inline const bool isActive() const { return mIsActive; }
01149 
01153     inline const bool isAllocated() const { return mIsAllocated; }
01154 
01158     inline const bool isAnyDaughterIsActive() const { return mAnyDaughterIsActive; }
01159 
01160 
01164     inline const long numberOfDaughters() const { return mSubTaskMap.size(); }
01165     
01166     
01170     inline const bool isLeafNode() const 
01171     {
01172       if (numberOfDaughters()==0)
01173         return true;
01174       else
01175         return false;
01176     }
01177     
01181      inline const bool isOpenTask() const
01182      { 
01183         if (mFullFilledPercent==100)
01184         return false;
01185             else
01186               return true;
01187      }
01188      
01192      inline const string getDoneDescription() const 
01193      { 
01194         if (mFullFilledPercent==100)
01195           return "done";
01196               else
01197                 return "open";
01198      }
01199      
01200     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01201     
01205     inline void setPassive() { mIsActive=false; }
01206     
01210     inline void setActive() { mIsActive=true; }
01214     inline void setAllocated() { mIsAllocated=true; }
01215 
01219     inline void setAnyDaughterIsActive() { mAnyDaughterIsActive=true; }
01220     
01224     void setPassiveIfAllDaughtersPassive();
01225     
01231     inline void setStartDate(const string& pStartDate) { mTaskStartDate=pStartDate; }
01232 
01233 
01239     inline void setEndDate(const string& pEndDate) { mTaskEndDate=pEndDate; }
01240     
01241     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01242     
01246     bool fillTaskSubStructureByMrPrjXmlTaskNodes
01247     ( 
01248       xmlDocPtr xmlDoc,
01249       const xmlNodePtr pFirstTaskSubnode,
01250       map<string,Task*>& mGlobalTaskMap
01251     );
01252         
01256     bool limitToTimeSlot
01257     (
01258       const string& pTimeSlotStart,
01259       const string& pTimeSlotEnd
01260     );
01261 
01266     bool limitToOpenTasks();
01267 
01272     int insertXYposition
01273     ( 
01274       const int pEmbeddedLevel,
01275       int& pMaxEmbeddedLevel
01276     );
01277 
01278 
01282     bool printTaskAsMrPrjXmlFileMember(int pBlankIndents)const;
01283     
01287     bool printTaskAsLeafMemoListMember
01288     ( const string& pTaskPrefix,
01289       const string& pLevelOrderString,
01290       const map<string,Resource*>& pResourceMap,
01291       const list<Allocation*>& pAllocationList,
01292       const bool iso8601
01293     )const;
01294 
01298     bool printTaskAsTreeMemoMember
01299     ( const string& pLevelOrderString,
01300       int pTreeDepth,
01301       const map<string,Resource*>& pResourceMap,
01302       const list<Allocation*>& pAllocationList,
01303       const bool iso8601
01304     )const;
01305 
01309     bool printTaskAsLeafVTodoMember
01310     ( const map<string,Resource*>& pResourceMap,
01311      const list<Allocation*>& pAllocationList,
01312       const string& pConnectedProjectName
01313     ) const;
01314      
01318      bool printTaskAsTreeVTodoMember
01319     ( const map<string,Resource*>& pResourceMap,
01320       const list<Allocation*>& pAllocationList,
01321       const string& pConnectedProjectName
01322     )const;
01323  
01324      
01328     bool printTaskAsPilotLeafTodoMember
01329     ( const string& pLevelOrderString,
01330       const map<string,Resource*>& pResourceMap,
01331       const list<Allocation*>& pAllocationList
01332     )const;
01333 
01337     bool printTaskAsPilotTreeTodoMember
01338     ( const string& pLevelOrderString,
01339       const map<string,Resource*>& pResourceMap,
01340       const list<Allocation*>& pAllocationList
01341     )const;
01342 
01346     bool printTaskAsLeafYankTodoMember
01347     ( const map<string,Resource*>& pResourceMap,
01348       const list<Allocation*>& pAllocationList
01349     )const;
01350 
01354     bool printTaskAsTreeYankTodoMember
01355     ( const map<string,Resource*>& pResourceMap,
01356       const list<Allocation*>& pAllocationList,
01357       const int pBlankIndents
01358     )const;
01359    
01363     bool printTaskAsLeafCslTodoMember
01364    ( const string& pLevelOrderString,
01365      const map<string,Resource*>& pResourceMap,
01366      const list<Allocation*>& pAllocationList
01367    )const;
01368    
01369    
01373     bool printTaskAsTreeCslTodoMember
01374     ( const string& pLevelOrderString,
01375       const map<string,Resource*>& pResourceMap,
01376       const list<Allocation*>& pAllocationList
01377     )const;
01378 
01379 
01383     bool printTaskAsHtmlSurveyMember
01384     ( const map<string,Resource*>& pResourceMap,
01385       const list<Allocation*>& pAllocationList,
01386       const int maxPathLength,
01387       const string& pSurveyReferenceDayString     
01388     );
01389 
01390   private:
01391     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
01392      Task(const Task& co);     
01393     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01394     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01395     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01399     Task* insertSubTask 
01400     ( 
01401       const string& pSubTaskId,
01402       const string& pSubTaskTitle="???",
01403       const string& pSubTaskDescription="???",
01404       const string& pSubTaskStartDate="19700101T000000",
01405       const string& pSubTaskEndDate="21001231T240000",
01406       const int pFullFilledPercent=0      
01407     );
01408     
01412     bool fillTaskPredecessorByMrPrjXmlPredecessorNodes
01413     ( 
01414       xmlDocPtr xmlDoc,
01415       const xmlNodePtr pFirstPredecessors
01416     );
01417 
01421     bool getResourceInfos
01422     (
01423       const map<string,Resource*>& pResourceMap,
01424       const list<Allocation*>& pAllocationList,
01425       string& pResourceId,
01426       string& pResourceTitle
01427     ) const;
01428       
01429   protected:
01430     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01431     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01432     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01433 };
01434 
01435 
01436 
01444 class TaskField
01445 {
01446   /* &&& attributes &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
01447   public:
01448   
01449   private:
01450     
01451   
01452     Task mMainTask; 
01453     map<string,Task*> mGlobalTaskMap;  
01454       
01455     map<string,ResourceGroup*> mResourceGroupMap; 
01456     string mDefaultResourceGroup;
01457     
01458     map<string,Resource*> mResourceMap; 
01459     
01460     list<Allocation*> mAllocationList; 
01461     list<Property*> mPropertyList; 
01462     list<Phase*> mPhaseList; 
01463     list<DayType*> mDayTypeList; 
01464     list<Calendar*> mCalendarList; 
01465     
01466     krmuo::LoggingUnit& mLoggingUnit; 
01467     
01468     string mProjectName;
01469     string mProjectCompany;
01470     string mProjectManager;
01471     string mProjectPhase;
01472     string mProjectStart;
01473     string mProjectMrpVersion;
01474     string mProjectCalendar;
01475     
01476     string mRealTimeslotStart;
01477     string mRealTimeslotEnd;
01478   protected:
01479   
01480   /* &&& methods &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& */
01481   
01482   public:
01483   
01484     /* :-: public constructors / init / operators :-:-:-:-:-:-:-: */
01485     
01489     TaskField(krmuo::LoggingUnit& pLoggingUnit);                       
01490         
01491     ~TaskField();                      
01492         
01493   
01494     /* :-: public getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01495     /* :-: public setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */    
01496     /* :-: public others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01500     bool fillTaskFieldByMrPrjXmlFileContent
01501     ( 
01502       krmuo::LoggingUnit& pLoggingUnit,
01503       const string& mrprjBaseFileContent
01504     );
01505         
01513     inline void limitToTimeSlot(const string& pTimeSlotStart,const string& pTimeSlotEnd)
01514     {
01515       mMainTask.limitToTimeSlot(pTimeSlotStart,pTimeSlotEnd);
01516     }
01517 
01521     inline void limitToOpenTasks()
01522     {
01523       mMainTask.limitToOpenTasks();
01524     }
01525    
01526    
01530     bool limitToResource(const string& pResourceTitel);
01531     
01535     bool limitToResourceGroup(const string& pResourceGroupTitel);
01536 
01540     inline void limitToThoseWithActiveDaughters()
01541     {
01542       mMainTask.setPassiveIfAllDaughtersPassive();
01543     }
01544     
01549     bool printTaskFieldAsMrPrjXmlFile()const;
01550     
01551     
01556     bool printTaskFieldAsLeafListMemo(bool pIso8601);
01557 
01562     bool  printTaskFieldAsTreeMemo(bool pIso8601);
01563     
01567     inline void printTaskFieldAsPilotTreeTodo()
01568     {
01569       mMainTask.printTaskAsPilotTreeTodoMember("",mResourceMap,mAllocationList);
01570 
01571     }
01572     
01576     inline void printTaskFieldAsPilotLeafTodo()
01577     {
01578       mMainTask.printTaskAsPilotLeafTodoMember("",mResourceMap,mAllocationList);
01579 
01580     }
01581 
01585     inline void printTaskFieldAsLeafVTodo()
01586     {
01587       mMainTask.printTaskAsLeafVTodoMember
01588         (mResourceMap,mAllocationList,getConnectProjectName());
01589 
01590     }
01594     inline void printTaskFieldAsTreeVTodo()
01595     {
01596       mMainTask.printTaskAsTreeVTodoMember
01597         (mResourceMap,mAllocationList,getConnectProjectName());
01598 
01599     }
01603     void printTaskFieldAsLeafYankTodo();
01604     
01608     void printTaskFieldAsTreeYankTodo();
01609     
01610     
01614     void printTaskFieldAsLeafCslTodo();
01615 
01619      void printTaskFieldAsTreeCslTodo();
01620 
01624      void printTaskHtmlSurvey(const string& pSurveyReferenceDayString);
01625  
01626   private:
01627     /* :-: private constructors / init / operators :-:-:-:-:-:-: */
01628      TaskField(const TaskField& co);     
01629     /* :-: private getter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01630     string getConnectProjectName()const;
01631     /* :-: private setter -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01632     /* :-: private others -:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01633 
01637     bool fillResourceGroupMapByMrPrjXmlEntries
01638     ( 
01639       krmuo::LoggingUnit& pLoggingUnit,
01640       xmlDocPtr xmlDoc,
01641       const xmlNodePtr pFirstResourceGroup
01642     );
01643 
01647     bool fillResourceMapByMrPrjXmlEntries
01648     ( 
01649       krmuo::LoggingUnit& pLoggingUnit,
01650       xmlDocPtr xmlDoc, 
01651       const xmlNodePtr pFirstResource
01652     );
01653 
01657     bool fillAllocationListByMrPrjXmlEntries
01658     ( 
01659       krmuo::LoggingUnit& pLoggingUnit,
01660       xmlDocPtr xmlDoc, 
01661       const xmlNodePtr pFirstAllocation
01662     );
01663     
01667     bool fillPropertyListByMrPrjXmlEntries
01668     ( 
01669       krmuo::LoggingUnit& pLoggingUnit,
01670       xmlDocPtr xmlDoc, 
01671       const xmlNodePtr pFirstProperty
01672     );
01673     
01677     bool fillPhaseListByMrPrjXmlEntries
01678     ( 
01679       krmuo::LoggingUnit& pLoggingUnit,
01680       xmlDocPtr xmlDoc, 
01681       const xmlNodePtr pFirstProperty
01682     );
01683     
01684     
01688     bool fillDayTypeListByMrPrjXmlEntries
01689     ( 
01690       krmuo::LoggingUnit& pLoggingUnit,
01691       xmlDocPtr xmlDoc, 
01692       const xmlNodePtr pFirstProperty
01693     );
01694 
01695     bool fillIntervalListByMrPrjXmlEntries
01696     ( 
01697       krmuo::LoggingUnit& pLoggingUnit,
01698       xmlDocPtr xmlDoc, 
01699       const xmlNodePtr pFirstInterval,
01700       list<Interval>& pIntervalList
01701     );
01702 
01703 
01704     bool fillOverriddenDayTypeListByMrPrjXmlEntries
01705     ( 
01706       krmuo::LoggingUnit& pLoggingUnit,
01707       xmlDocPtr xmlDoc, 
01708       const xmlNodePtr pFirstOverriddenDayType,
01709      list<OverriddenDayType>& pOverriddenDayTypeList
01710     );
01711 
01712 
01713     bool fillDayListByMrPrjXmlEntries
01714     ( 
01715       krmuo::LoggingUnit& pLoggingUnit,
01716       xmlDocPtr xmlDoc, 
01717       const xmlNodePtr pFirstDay,
01718       list<Day>& pDayList
01719     );
01720 
01721 
01722 
01723     bool fillCalSubPartByMrPrjXmlEntries
01724     ( 
01725       krmuo::LoggingUnit& pLoggingUnit,
01726       xmlDocPtr xmlDoc, 
01727       const xmlNodePtr pFirstCalSubPart,
01728       Calendar* pCalendar
01729     );
01730 
01731 
01735     bool fillCalendarListByMrPrjXmlEntries
01736     ( 
01737       krmuo::LoggingUnit& pLoggingUnit,
01738       xmlDocPtr xmlDoc, 
01739       const xmlNodePtr pFirstProperty
01740     );
01741 
01742 
01746     void storeRealTimeSlot();
01747     
01748   protected:
01749     /* :-: protected getter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01750     /* :-: protected setter :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01751     /* :-: protected others :-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-: */
01752 };
01753 }
01754 #endif

Generated on Sun Mar 16 10:58:36 2003 for MRPROJEXT by doxygen1.2.17