00001 // EmptyBlock.h 00002 00003 #ifndef EMPTYBLOCK_H 00004 #define EMPTYBLOCK_H 00005 00006 #include "Block.h" 00007 00008 namespace Yosokumo 00009 { 00010 00011 /** 00012 * Represents an empty block, i.e., a block containing no 00013 * <code>Predictors</code> and no <code>Specimens</code>. An empty block can 00014 * be used to test whether the requesting user has permission to post to the 00015 * table or whether the study is 'running' and therefore accepting blocks 00016 * into the table. 00017 */ 00018 00019 class EmptyBlock : public Block 00020 { 00021 public: 00022 00023 /** 00024 * Initializes a newly created <code>EmptyBlock</code> object with default 00025 * attributes. 00026 */ 00027 EmptyBlock(); 00028 00029 /** 00030 * Initializes a newly created <code>EmptyBlock</code> object with a study 00031 * identifier. 00032 * 00033 * @param id a study identifier for the block. 00034 */ 00035 EmptyBlock(std::string id); 00036 00037 /** 00038 * Destructor - destroy an <code>EmptyBlock</code> object. 00039 */ 00040 virtual ~EmptyBlock(); 00041 00042 private: 00043 00044 /** 00045 * Copy constructor - NOT IMPLEMENTED. 00046 */ 00047 EmptyBlock(const EmptyBlock &rhs); 00048 00049 /** 00050 * Assignment operator - NOT IMPLEMENTED. 00051 */ 00052 EmptyBlock& operator=(const EmptyBlock& rhs); 00053 00054 public: 00055 00056 /** 00057 * Return the empty block type. 00058 * 00059 * @return the empty block type: Type.EMPTY. 00060 */ 00061 virtual Type getType() const; 00062 00063 /** 00064 * Return the empty block as a string. 00065 * 00066 * @return the empty block as a string. 00067 */ 00068 virtual std::string toString(); 00069 00070 }; // end class EmptyBlock 00071 00072 } // end namespace Yosokumo 00073 00074 #endif // EMPTYBLOCK_H 00075 00076 // end EmptyBlock.h