/*
**  Node.h
**
**  Copyright (c) 2004
**
**  Author: Yen-Ju Chen <yjchenx@hotmail.com>
**
**  This program is free software; you can redistribute it and/or modify
**  it under the terms of the GNU General Public License as published by
**  the Free Software Foundation; either version 2 of the License, or
**  (at your option) any later version.
**
**  This program is distributed in the hope that it will be useful,
**  but WITHOUT ANY WARRANTY; without even the implied warranty of
**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
**  GNU General Public License for more details.
**
**  You should have received a copy of the GNU General Public License
**  along with this program; if not, write to the Free Software
**  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef __Node__
#define __Node__

#include <Foundation/NSObject.h>

@class NSArray;
@class NSMutableArray;
@class NSString;

@interface Node: NSObject
{
  int order;
  NSString *category;
  NSString *name;
  id value;
  NSString *type;
  NSMutableArray *children;
}

- (void) setOrder: (int) order;
- (int) order;
- (void) setCategory: (NSString *) category;
- (NSString *) category;
- (void) setName: (NSString *) name;
- (NSString *) name;
- (void) setValue: (id) value;
- (id) value;
- (void) setType: (NSString *) type;
- (NSString *) type;
- (void) addChild: (Node *) child;
- (void) removeChildAtIndex: (unsigned int) index;
- (NSMutableArray *) children;

- (NSString *) keyOfItem;
- (Node *) childWithName: (NSString *) name;
- (void) sortChildren;
- (BOOL) nameExistsInChildren: (NSString *) name;
- (void) resetOrderOfChildren;

@end

#endif /* __Node__ */
