ObjFW
src/OFXMLElementBuilder.h
00001 /*
00002  * Copyright (c) 2008, 2009, 2010, 2011
00003  *   Jonathan Schleifer <js@webkeks.org>
00004  *
00005  * All rights reserved.
00006  *
00007  * This file is part of ObjFW. It may be distributed under the terms of the
00008  * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
00009  * the packaging of this file.
00010  *
00011  * Alternatively, it may be distributed under the terms of the GNU General
00012  * Public License, either version 2 or 3, which can be found in the file
00013  * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
00014  * file.
00015  */
00016 
00017 #import "OFObject.h"
00018 
00019 @class OFMutableArray;
00020 @class OFXMLElement;
00021 @class OFXMLElementBuilder;
00022 
00027 #ifndef OF_XML_ELEMENT_BUILDER_M
00028 @protocol OFXMLElementBuilderDelegate <OFObject>
00029 #else
00030 @protocol OFXMLElementBuilderDelegate
00031 #endif
00032 
00042 - (void)elementBuilder: (OFXMLElementBuilder*)builder
00043        didBuildElement: (OFXMLElement*)elem;
00044 
00045 #ifdef OF_HAVE_OPTIONAL_PROTOCOLS
00046 @optional
00047 #endif
00048 
00066 - (void)elementBuilder: (OFXMLElementBuilder*)builder
00067   didNotExpectCloseTag: (OFString*)name
00068             withPrefix: (OFString*)prefix
00069              namespace: (OFString*)ns;
00070 @end
00071 
00080 @interface OFXMLElementBuilder: OFObject
00081 {
00082         OFMutableArray *stack;
00083         id <OFXMLElementBuilderDelegate> delegate;
00084 }
00085 
00086 #ifdef OF_HAVE_PROPERTIES
00087 @property (retain) id <OFXMLElementBuilderDelegate> delegate;
00088 #endif
00089 
00093 + elementBuilder;
00094 
00098 - (id <OFXMLElementBuilderDelegate>)delegate;
00099 
00105 - (void)setDelegate: (id <OFXMLElementBuilderDelegate>)delegate;
00106 @end
00107 
00108 @interface OFObject (OFXMLElementBuilderDelegate) <OFXMLElementBuilderDelegate>
00109 @end
 All Classes Functions Variables