//static void Command::parseUpdate( Tokens& tokens, bool helpMode, Command*& result ) { if (tokens.size() < 3 && !helpMode) THROW( CWDB_ERR_PARSER, "Bad syntax: missing options in \"update\" command" ); CreateUpdateMode mode; tokens.erase( tokens.begin() ); if ( checkString( tokens.front(), "or") ) { if (tokens[1].m_angen != ANGEN_CREATE) THROW( CWDB_ERR_PARSER, "Bad syntax: expected keyword \"create\"" ); tokens.erase( tokens.begin() ); mode = CRM_CREATE_UPDATE; } else { Token dummy; dummy.m_angen = ANGEN_CREATE; tokens.insert( tokens.begin(), dummy ); mode = CRM_UPDATE; } switch( checkAngen(tokens, 1) ) { case ANGEN_DATASPACE: result = new CreateDataspaceCommand( mode ); break; case ANGEN_COLLECTION: result = new CreateCollectionCommand( mode ); break; case ANGEN_METRIC: result = new CreateMetricCommand( mode ); break; /************************* if (tokens.size() < 3 && !helpMode) THROW( CWDB_ERR_PARSER, "Bad syntax: missing options in \"create metric\" command" ); if (checkAngen( tokens, 3) == ANGEN_ASSIGN && !helpMode) result = new CreateAggregationCommand( mode ); else result = new CreateMetricCommand( mode ); break; **************************/ default: THROW( CWDB_ERR_PARSER, "Bad syntax: unrecognized option in \"create\" command" ); } if (result != 0 && !helpMode) { result->parse( tokens ); } }