Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "cmtkCommandLine.h"
00032
00033 #include <sstream>
00034
00035 void
00036 cmtk::CommandLine::NonOptionParameter
00037 ::Evaluate( const size_t argc, const char* argv[], size_t& index )
00038 {
00039 if ( this->Flag )
00040 *this->Flag = true;
00041
00042 if ( index < argc )
00043 {
00044 *this->Var = argv[index];
00045 }
00046 else
00047 {
00048 if ( ! (this->m_Properties & PROPS_OPTIONAL) )
00049 throw( Exception( "Argument missing", index ) );
00050 }
00051 }
00052
00053
00054 mxml_node_t*
00055 cmtk::CommandLine::NonOptionParameter
00056 ::MakeXMLWithIndex( mxml_node_t *const parent, const int index ) const
00057 {
00058 mxml_node_t *node = Item::Helper<const char*>::MakeXML( this, parent );
00059
00060 if ( node )
00061 {
00062 if ( this->m_Name )
00063 {
00064 mxmlNewText( mxmlNewElement( node, "name" ), 0, this->m_Name );
00065 mxmlNewText( mxmlNewElement( node, "label" ), 0, this->m_Name );
00066 }
00067
00068 if ( this->m_Comment )
00069 {
00070 mxmlNewText( mxmlNewElement( node, "description" ), 0, this->m_Comment );
00071 }
00072
00073 if ( index >= 0 )
00074 {
00075 std::ostringstream strm;
00076 strm << index;
00077 mxmlNewText( mxmlNewElement( node, "index" ), 0, strm.str().c_str() );
00078 }
00079 }
00080
00081 return node;
00082 }
00083
00084 std::string
00085 cmtk::CommandLine::NonOptionParameter
00086 ::GetParamTypeString() const
00087 {
00088 return Item::Helper<const char*>::GetParamTypeString( this );
00089 }