1/* 2 * Copyright 2008, Haiku. 3 * Distributed under the terms of the MIT license. 4 * 5 * Authors: 6 * Michael Pfeiffer <laplace@users.sourceforge.net> 7 */ 8 9#include "StatementList.h" 10#include "Statement.h" 11 12#include <stdio.h> 13 14StatementList::StatementList(bool ownsStatements) 15 : fOwnsStatements(ownsStatements) 16{ 17} 18 19StatementList::~StatementList() 20{ 21 if (fOwnsStatements) { 22 for (int32 i = 0; i < Size(); i ++) { 23 Statement* statement = StatementAt(i); 24 delete statement; 25 } 26 } 27 fList.MakeEmpty(); 28} 29 30void StatementList::Add(Statement* statement) 31{ 32 fList.AddItem(statement); 33} 34 35void StatementList::Remove(Statement* statement) 36{ 37 fList.RemoveItem(statement); 38} 39 40int32 StatementList::Size() 41{ 42 return fList.CountItems(); 43} 44 45Statement* StatementList::StatementAt(int32 index) 46{ 47 return (Statement*)fList.ItemAt(index); 48} 49 50Statement* StatementList::GetStatement(const char* keyword) 51{ 52 for (int32 i = 0; i < fList.CountItems(); i ++) { 53 if (strcmp(keyword, StatementAt(i)->GetKeywordString()) == 0) { 54 return StatementAt(i); 55 } 56 } 57 return NULL; 58} 59 60const char* StatementList::GetValue(const char* keyword) 61{ 62 Statement* statement = GetStatement(keyword); 63 if (statement != NULL) { 64 return statement->GetValueString(); 65 } 66 return NULL; 67} 68 69void StatementList::Print() 70{ 71 for (int32 i = 0; i < Size(); i ++) { 72 StatementAt(i)->Print(); 73 } 74} 75