00001 /******************************************************************************* 00002 * Copyright (c) 2006 International Business Machines Corporation 00003 * All rights reserved. This program and the accompanying materials 00004 * are made available under the terms of the Common Public License v1.0 00005 * which accompanies this distribution, and is available at 00006 * http://www.opensource.org/licenses/cpl1.0.php 00007 * 00008 * Contributors: 00009 * Douglas Sprague, Joel Wheeler - initial API and implementation 00010 * 00011 *****************************************************************************/ 00012 00013 #ifndef STILSpec_H 00014 #define STILSpec_H 00015 00016 00017 #include "stilcom.h" // Common library 00018 #include "stilblock.h" // STIL Block base class 00019 #include "stilcategory.h" // STIL Category Interface 00020 #include "stilvariable.h" // STIL Variable Interface 00021 00022 //--------------------------------------------------------------------------- 00028 //--------------------------------------------------------------------------- 00029 class STILSpec : public STILBlock { 00030 00031 // - Public members 00032 public: 00033 00034 // - Default Constructor 00035 STILSpec(); 00036 00037 // - Copy Constructor 00038 STILSpec(const STILSpec &); 00039 00040 // - Destructor 00041 virtual ~STILSpec(); 00042 00043 // - Assignment operator 00044 STILSpec & operator=(const STILSpec &); 00045 00046 // - Initialize this STILSpec object. 00047 void init(); 00048 00049 // - Write out Spec to a given FILE 00050 virtual void write(FILE * pOutFile, LONG indentation=0) const; 00051 00052 00053 //***This got the title from when it was 'Header' class- 00054 //***do we need a 'getCategory' function or is it handled by parser? 00055 // ****need to check it out- it should be handled in the parser 00056 // - Get/Set the current Title 00057 //const sstring & getTitle() const; 00058 //void setTitle(const sstring &); 00059 //also had date, source and history info 00060 00061 // - Add a new Category block 00062 void addCategory(const STILCategory &); 00063 00064 // - Add a new Variable block 00065 void addVariable(const STILVariable &); 00066 00067 00068 // Private members 00069 private: 00070 00071 // **NOTE** following scalars must be made lists to support multiple 00072 // entries per Spec block 00073 STILCategory m_category; // STIL Spec::Category 00074 STILVariable m_variable; // STIL Spec::Variable 00075 00076 }; // end STILSpec class 00077 00078 #endif