Overview
Comment: | Extend OFXMLElementBuilderDelegate. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
976f115da99fe161bf81d8a00b3991c8 |
User & Date: | js on 2010-12-20 15:55:56 |
Other Links: | manifest | tags |
Context
2010-12-20
| ||
17:42 | Add -fobjc-exceptions to objfw-config. check-in: c5937c3e79 user: js tags: trunk | |
15:55 | Extend OFXMLElementBuilderDelegate. check-in: 976f115da9 user: js tags: trunk | |
15:51 | OFXMLParser: Allow comments after the document root. check-in: f40092db22 user: js tags: trunk | |
Changes
Modified src/OFXMLElementBuilder.h from [3c0e04c5a7] to [7750550318].
︙ | |||
28 29 30 31 32 33 34 35 36 37 38 39 40 41 | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | + + + + + + + + + + + + + + + + + + + + + + + | * with all children. * * \param builder The builder which built an OFXMLElement * \param elem The OFXMLElement the OFXMLElementBuilder built */ - (void)elementBuilder: (OFXMLElementBuilder*)builder didBuildElement: (OFXMLElement*)elem; /** * This callback is called when the OFXMLElementBuilder gets a close tag which * does not belong there. * * Most likely, the OFXMLElementBuilder was used to build XML only of a child * of the root element and the root element was closed. Often the delegate is * set to the OFXMLElementBuilder when a certain element is found, this can be * used then to set the delegate back after that certain element has been * closed. * * If this method is not implemented in the delegate, the default is to throw * an OFMalformedXMLException. * * \param builder The builder which did not expect the close tag * \param name The name of the close tag * \param prefix The prefix of the close tag * \param ns The namespace of the close tag */ - (void)elementBuilder: (OFXMLElementBuilder*)builder didNotExpectCloseTag: (OFString*)name withPrefix: (OFString*)prefix namespace: (OFString*)ns; @end /** * \brief A class implementing the OFXMLParserDelegate protocol that can build * OFXMLElements from the document parsed by the OFXMLParser. * * It can also be used to build OFXMLElements from parts of the document by |
︙ | |||
65 66 67 68 69 70 71 | 88 89 90 91 92 93 94 95 96 97 | + + + | /** * Sets the delegate for the OFXMLElementBuilder. * * \param delegate The delegate for the OFXMLElementBuilder */ - (void)setDelegate: (id <OFXMLElementBuilderDelegate>)delegate; @end @interface OFObject (OFXMLElementBuilderDelegate) <OFXMLElementBuilderDelegate> @end |
Modified src/OFXMLElementBuilder.m from [eabccc3dd1] to [c6480ad533].
︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | + | #include "config.h" #import "OFXMLElementBuilder.h" #import "OFXMLElement.h" #import "OFXMLParser.h" #import "OFMutableArray.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" @implementation OFXMLElementBuilder + elementBuilder { return [[[self alloc] init] autorelease]; } |
︙ | |||
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | + + + + + + + + + + + + + + - - + + + + + + + + - + + - + + + + + - + + + + + + + + + + + + + + + + | } - (void)parser: (OFXMLParser*)parser didEndElement: (OFString*)name withPrefix: (OFString*)prefix namespace: (OFString*)ns { if ([stack count] == 0) { [delegate elementBuilder: self didNotExpectCloseTag: name withPrefix: prefix namespace: ns]; return; } if ([stack count] == 1) [delegate elementBuilder: self didBuildElement: [stack firstObject]]; [stack removeNObjects: 1]; } - (void)parser: (OFXMLParser*)parser foundCharacters: (OFString*)str { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; OFXMLElement *elem = [OFXMLElement elementWithCharacters: str]; if ([stack count] == 0) [delegate elementBuilder: self didBuildElement: elem]; else |
Modified tests/OFXMLElementBuilderTests.m from [7c6e7637bc] to [c02ccb6b85].
︙ | |||
17 18 19 20 21 22 23 | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | - + + - - + + - + - + + + - + + | #import "OFXMLParser.h" #import "OFXMLElementBuilder.h" #import "OFAutoreleasePool.h" #import "TestsAppDelegate.h" static OFString *module = @"OFXMLElementBuilder"; |