ModuleParameter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
00004 
00005   See Doc/copyright/copyright.txt
00006   or http://www.slicer.org/copyright/copyright.txt for details.
00007 
00008   Program:   Module Description Parser
00009   Module:    $HeadURL: http://svn.slicer.org/Slicer3/trunk/Libs/SlicerExecutionModel/ModuleDescriptionParser/ModuleParameter.h $
00010   Date:      $Date: 2010-04-14 18:00:07 -0400 (Wed, 14 Apr 2010) $
00011   Version:   $Revision: 12759 $
00012 
00013 ==========================================================================*/
00014 #ifndef __ModuleParameter_h
00015 #define __ModuleParameter_h
00016 
00017 #include "ModuleDescriptionParserWin32Header.h"
00018 
00019 #include <string>
00020 #include <vector>
00021 #include <iostream>
00022 
00032 class ModuleDescriptionParser_EXPORT ModuleParameter
00033 {
00034 public:
00035   ModuleParameter();
00036   virtual ~ModuleParameter() {}
00037   ModuleParameter(const ModuleParameter& parameter);
00038 
00039   void operator=(const ModuleParameter& parameter);
00040   
00041   virtual void SetTag(const std::string &tag)
00042   {
00043     this->Tag = tag;
00044   }
00045 
00046   virtual const std::string& GetTag() const
00047   {
00048     return this->Tag;
00049   }
00050   
00051   virtual void SetCPPType(const std::string &type)
00052   {
00053     this->CPPType = type;
00054   }
00055 
00056   virtual const std::string& GetCPPType() const 
00057   {
00058     return this->CPPType;
00059   }
00060   
00061   virtual void SetType(const std::string &type)
00062   {
00063     this->Type = type;
00064   }
00065 
00066   virtual const std::string& GetType() const 
00067   {
00068     return this->Type;
00069   }
00070 
00071   virtual void SetReference(const std::string &ref)
00072   {
00073     this->Reference = ref;
00074   }
00075 
00076   virtual const std::string& GetReference() const
00077   {
00078     return this->Reference;
00079   }
00080 
00081   virtual void SetHidden(const std::string &hidden)
00082   {
00083     this->Hidden = hidden;
00084   }
00085 
00086   virtual const std::string& GetHidden() const
00087   {
00088     return this->Hidden;
00089   }
00090 
00091   // Simple return types are parameters on output channel with no
00092   // flags and without a specified index 
00093   virtual bool IsReturnParameter() const
00094   {
00095     // could check for tag == float, int, float-vector, ...
00096     if (this->Channel == "output" 
00097         && !this->IsFlagParameter() && !this->IsIndexParameter())
00098       {
00099       return true;
00100       }
00101     return false;
00102   }
00103   
00104   // Has a flag or a long flag?
00105   virtual bool IsFlagParameter() const
00106   {
00107     return (this->Flag != "" || this->LongFlag != "");
00108   }
00109 
00110   // Is an index type?
00111   virtual bool IsIndexParameter() const
00112   {
00113     return (this->Index != "");
00114   }
00115 
00116   virtual void SetArgType(const std::string &argType)
00117   {
00118     this->ArgType = argType;
00119   }
00120 
00121   virtual const std::string& GetArgType() const 
00122   {
00123     return this->ArgType;
00124   }
00125   
00126   virtual void SetStringToType(const std::string &stringToType)
00127   {
00128     this->StringToType = stringToType;
00129   }
00130 
00131   virtual const std::string &GetStringToType() const
00132   {
00133     return this->StringToType;
00134   }
00135   
00136   virtual void SetName(const std::string &name)
00137   {
00138     this->Name = name;
00139   }
00140 
00141   virtual const std::string& GetName() const
00142   {
00143     return this->Name;
00144   }
00145   
00146   virtual void SetLongFlag(const std::string &longFlag)
00147   {
00148     this->LongFlag = longFlag;
00149   }
00150 
00151   virtual const std::string& GetLongFlag() const
00152   {
00153     return this->LongFlag;
00154   }
00155   
00156   virtual void SetLongFlagAliasesAsString(const std::string &aliases);
00157 
00158   virtual const std::string& GetLongFlagAliasesAsString() const
00159   {
00160     return this->LongFlagAliasesAsString;
00161   }
00162 
00163   virtual const std::vector<std::string> &GetLongFlagAliases() const
00164   {
00165     return this->LongFlagAliases;
00166   }
00167 
00168   virtual void SetDeprecatedLongFlagAliasesAsString(const std::string &aliases);
00169 
00170   virtual const std::string& GetDeprecatedLongFlagAliasesAsString() const
00171   {
00172     return this->DeprecatedLongFlagAliasesAsString;
00173   }
00174   
00175   virtual const std::vector<std::string> &GetDeprecatedLongFlagAliases() const
00176   {
00177     return this->DeprecatedLongFlagAliases;
00178   }
00179 
00180   virtual void SetLabel(const std::string &label) 
00181   {
00182     this->Label = label;
00183   }
00184   
00185   virtual const std::string& GetLabel() const
00186   {
00187     return this->Label;
00188   }
00189 
00190   virtual void SetConstraints(const std::string &constraints)
00191   {
00192     this->Constraints = constraints;
00193   }
00194   
00195   virtual const std::string& GetConstraints() const
00196   {
00197     return this->Constraints;
00198   }
00199 
00200   virtual void SetMaximum(const std::string &maximum)
00201   {
00202     this->Maximum = maximum;
00203   }
00204   
00205   virtual const std::string& GetMaximum() const 
00206   {
00207     return this->Maximum;
00208   }
00209 
00210   virtual void SetMinimum(const std::string &minimum) 
00211   {
00212     this->Minimum = minimum;
00213   }
00214   
00215   virtual const std::string& GetMinimum() const 
00216   {
00217     return this->Minimum;
00218   }
00219 
00220   virtual void SetStep(const std::string &step) 
00221   {
00222     this->Step = step;
00223   }
00224   
00225   virtual const std::string& GetStep() const
00226   {
00227     return this->Step;
00228   }
00229 
00230   virtual void SetDescription(const std::string &description)
00231   {
00232     this->Description = description;
00233   }
00234 
00235   virtual const std::string& GetDescription() const
00236   {
00237     return this->Description;
00238   }
00239   
00240   virtual void SetChannel(const std::string &channel)
00241   {
00242     this->Channel = channel;
00243   }
00244 
00245   virtual const std::string& GetChannel() const
00246   {
00247     return this->Channel;
00248   }
00249   
00250   virtual void SetIndex(const std::string &index)
00251   {
00252     this->Index = index;
00253   }
00254 
00255   virtual const std::string& GetIndex() const
00256   {
00257     return this->Index;
00258   }
00259   
00260   virtual void SetDefault(const std::string &def)
00261   {
00262     this->Default = def;
00263   }
00264 
00265   virtual const std::string& GetDefault() const
00266   {
00267     return this->Default;
00268   }
00269   
00270   virtual void SetFlag(const std::string &flag)
00271   {
00272     this->Flag = flag;
00273   }
00274 
00275   virtual const std::string& GetFlag() const
00276   {
00277     return this->Flag;
00278   }
00279 
00280   virtual void SetFlagAliasesAsString(const std::string &aliases);
00281 
00282   virtual const std::string& GetFlagAliasesAsString() const
00283   {
00284     return this->FlagAliasesAsString;
00285   }
00286   
00287   virtual const std::vector<std::string> &GetFlagAliases() const
00288   {
00289     return this->FlagAliases;
00290   }
00291 
00292   virtual void SetDeprecatedFlagAliasesAsString(const std::string &aliases);
00293 
00294   virtual const std::string& GetDeprecatedFlagAliasesAsString() const
00295   {
00296     return this->DeprecatedFlagAliasesAsString;
00297   }
00298 
00299   virtual const std::vector<std::string> &GetDeprecatedFlagAliases() const
00300   {
00301     return this->DeprecatedFlagAliases;
00302   }
00303   
00304   virtual void SetMultiple(const std::string &multiple)
00305   {
00306     this->Multiple = multiple;
00307   }
00308 
00309   virtual const std::string& GetMultiple() const
00310   {
00311     return this->Multiple;
00312   }
00313 
00314   virtual void SetAggregate(const std::string &aggregate)
00315   {
00316     this->Aggregate = aggregate;
00317   }
00318 
00319   virtual const std::string& GetAggregate() const
00320   {
00321     return this->Aggregate;
00322   }
00323   
00324   virtual void SetFileExtensionsAsString(const std::string &extensions);
00325 
00326   virtual const std::string& GetFileExtensionsAsString() const
00327   {
00328     return this->FileExtensionsAsString;
00329   }
00330 
00331   virtual const std::vector<std::string> &GetFileExtensions() const;
00332 
00333   virtual void SetCoordinateSystem(const std::string &coordinateSystem)
00334   {
00335     this->CoordinateSystem = coordinateSystem;
00336   }
00337 
00338   virtual const std::string& GetCoordinateSystem() const
00339   {
00340     return this->CoordinateSystem;
00341   }
00342 
00343   virtual const std::vector<std::string> &GetElements() const
00344   {
00345     return this->Elements;
00346   }
00347 
00348   virtual std::vector<std::string> &GetElements()
00349   {
00350     return this->Elements;
00351   }
00352 
00353   
00354 protected:
00355 
00356   
00357 private:
00358   std::string Tag;
00359   std::string Name;
00360   std::string Description;
00361   std::string Label;
00362   std::string CPPType;
00363   std::string Type;
00364   std::string Reference;
00365   std::string Hidden;
00366   std::string ArgType;
00367   std::string StringToType;
00368   std::string Default;
00369   std::string Flag;
00370   std::string LongFlag;
00371   std::string Constraints;
00372   std::string Minimum;
00373   std::string Maximum;
00374   std::string Step;
00375   std::string Channel;
00376   std::string Index;
00377   std::string Multiple;
00378   std::string Aggregate;
00379   std::string FileExtensionsAsString;
00380   mutable std::vector<std::string> FileExtensions;
00381   std::string CoordinateSystem;
00382   std::vector<std::string> Elements;
00383   std::string FlagAliasesAsString;
00384   std::string DeprecatedFlagAliasesAsString;
00385   std::string LongFlagAliasesAsString;
00386   std::string DeprecatedLongFlagAliasesAsString;
00387   std::vector<std::string> FlagAliases;
00388   std::vector<std::string> DeprecatedFlagAliases;
00389   std::vector<std::string> LongFlagAliases;
00390   std::vector<std::string> DeprecatedLongFlagAliases;
00391 };
00392 
00393 ModuleDescriptionParser_EXPORT std::ostream & operator<<(std::ostream &os, const ModuleParameter &parameter);
00394 
00395 
00396 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1