Mercurial > projects > dstep
diff dstep/foundation/NSXMLParser.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | 89f3c3ef1fd2 |
children | b9de51448c6b |
line wrap: on
line diff
--- a/dstep/foundation/NSXMLParser.d Mon Aug 03 15:31:48 2009 +0200 +++ b/dstep/foundation/NSXMLParser.d Sun Jan 03 22:06:11 2010 +0100 @@ -9,17 +9,28 @@ import dstep.foundation.NSData; import dstep.foundation.NSDictionary; import dstep.foundation.NSError; +import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; import dstep.foundation.NSString; import dstep.foundation.NSURL; import dstep.objc.bridge.Bridge; -import dstep.objc.objc : id; +import dstep.objc.objc; + + import bindings = dstep.foundation.NSXMLParser_bindings; alias NSInteger NSXMLParserError; -const NSString NSXMLParserErrorDomain; +private NSString NSXMLParserErrorDomain_; + +NSString NSXMLParserErrorDomain () +{ + if (NSXMLParserErrorDomain_) + return NSXMLParserErrorDomain_; + + return NSXMLParserErrorDomain_ = new NSString(bindings.NSXMLParserErrorDomain); +} enum { @@ -118,15 +129,166 @@ NSXMLParserDelegateAbortedParseError = 512 } -static this () -{ - NSXMLParserErrorDomain = new NSString(bindings.NSXMLParserErrorDomain); -} +const TNSXMLParserDelegateEventAdditions = ` + + void parserDidStartDocument (NSXMLParser parser) + { + return invokeObjcSelf!(void, "parserDidStartDocument:", NSXMLParser)(parser); + } + + void parserDidEndDocument (NSXMLParser parser) + { + return invokeObjcSelf!(void, "parserDidEndDocument:", NSXMLParser)(parser); + } + + void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID) + { + return invokeObjcSelf!(void, "parser:foundNotationDeclarationWithName:publicID:systemID:", NSXMLParser, NSString, NSString, NSString)(parser, name, publicID, systemID); + } + + void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID, NSString notationName) + { + return invokeObjcSelf!(void, "parser:foundUnparsedEntityDeclarationWithName:publicID:systemID:notationName:", NSXMLParser, NSString, NSString, NSString, NSString)(parser, name, publicID, systemID, notationName); + } + + void parser_foundAttributeDeclarationWithName_forElement_type_defaultValue (NSXMLParser parser, NSString attributeName, NSString elementName, NSString type, NSString defaultValue) + { + return invokeObjcSelf!(void, "parser:foundAttributeDeclarationWithName:forElement:type:defaultValue:", NSXMLParser, NSString, NSString, NSString, NSString)(parser, attributeName, elementName, type, defaultValue); + } + + void parser (NSXMLParser parser, NSString elementName, NSString model) + { + return invokeObjcSelf!(void, "parser:foundElementDeclarationWithName:model:", NSXMLParser, NSString, NSString)(parser, elementName, model); + } + + void parser_foundInternalEntityDeclarationWithName_value (NSXMLParser parser, NSString name, NSString value) + { + return invokeObjcSelf!(void, "parser:foundInternalEntityDeclarationWithName:value:", NSXMLParser, NSString, NSString)(parser, name, value); + } + + void parser_foundExternalEntityDeclarationWithName_publicID_systemID (NSXMLParser parser, NSString name, NSString publicID, NSString systemID) + { + return invokeObjcSelf!(void, "parser:foundExternalEntityDeclarationWithName:publicID:systemID:", NSXMLParser, NSString, NSString, NSString)(parser, name, publicID, systemID); + } + + void parser (NSXMLParser parser, NSString elementName, NSString namespaceURI, NSString qName, NSDictionary attributeDict) + { + return invokeObjcSelf!(void, "parser:didStartElement:namespaceURI:qualifiedName:attributes:", NSXMLParser, NSString, NSString, NSString, NSDictionary)(parser, elementName, namespaceURI, qName, attributeDict); + } + + void parser_didEndElement_namespaceURI_qualifiedName (NSXMLParser parser, NSString elementName, NSString namespaceURI, NSString qName) + { + return invokeObjcSelf!(void, "parser:didEndElement:namespaceURI:qualifiedName:", NSXMLParser, NSString, NSString, NSString)(parser, elementName, namespaceURI, qName); + } + + void parser_didStartMappingPrefix_toURI (NSXMLParser parser, NSString prefix, NSString namespaceURI) + { + return invokeObjcSelf!(void, "parser:didStartMappingPrefix:toURI:", NSXMLParser, NSString, NSString)(parser, prefix, namespaceURI); + } + + void parser (NSXMLParser parser, NSString prefix) + { + return invokeObjcSelf!(void, "parser:didEndMappingPrefix:", NSXMLParser, NSString)(parser, prefix); + } + + void parser (NSXMLParser parser, NSString string) + { + return invokeObjcSelf!(void, "parser:foundCharacters:", NSXMLParser, NSString)(parser, string); + } + + void parser (NSXMLParser parser, NSString whitespaceString) + { + return invokeObjcSelf!(void, "parser:foundIgnorableWhitespace:", NSXMLParser, NSString)(parser, whitespaceString); + } + + void parser_foundProcessingInstructionWithTarget_data (NSXMLParser parser, NSString target, NSString data) + { + return invokeObjcSelf!(void, "parser:foundProcessingInstructionWithTarget:data", NSXMLParser, NSString, NSString)(parser, target, data); + } + + void parser (NSXMLParser parser, NSString comment) + { + return invokeObjcSelf!(void, "parser:foundComment:", NSXMLParser, NSString)(parser, comment); + } + + void parser (NSXMLParser parser, NSData CDATABlock) + { + return invokeObjcSelf!(void, "parser:foundCDATA:", NSXMLParser, NSData)(parser, CDATABlock); + } + + NSData parser_resolveExternalEntityName_systemID (NSXMLParser parser, NSString name, NSString systemID) + { + return invokeObjcSelf!(NSData, "parser:resolveExternalEntityName:systemID:", NSXMLParser, NSString, NSString)(parser, name, systemID); + } + + void parser (NSXMLParser parser, NSError parseError) + { + return invokeObjcSelf!(void, "parser:parseErrorOccurred:", NSXMLParser, NSError)(parser, parseError); + } + + void parser_validationErrorOccurred (NSXMLParser parser, NSError validationError) + { + return invokeObjcSelf!(void, "parser:validationErrorOccurred:", NSXMLParser, NSError)(parser, validationError); + } + + //mixin ObjcBindMethod!(parserDidStartDocument, "parserDidStartDocument:"); + //mixin ObjcBindMethod!(parserDidEndDocument, "parserDidEndDocument:"); + //mixin ObjcBindMethod!(parser, "parser:foundNotationDeclarationWithName:publicID:systemID:"); + //mixin ObjcBindMethod!(parser, "parser:foundUnparsedEntityDeclarationWithName:publicID:systemID:notationName:"); + //mixin ObjcBindMethod!(parser_foundAttributeDeclarationWithName_forElement_type_defaultValue, "parser:foundAttributeDeclarationWithName:forElement:type:defaultValue:"); + //mixin ObjcBindMethod!(parser, "parser:foundElementDeclarationWithName:model:"); + //mixin ObjcBindMethod!(parser_foundInternalEntityDeclarationWithName_value, "parser:foundInternalEntityDeclarationWithName:value:"); + //mixin ObjcBindMethod!(parser_foundExternalEntityDeclarationWithName_publicID_systemID, "parser:foundExternalEntityDeclarationWithName:publicID:systemID:"); + //mixin ObjcBindMethod!(parser, "parser:didStartElement:namespaceURI:qualifiedName:attributes:"); + //mixin ObjcBindMethod!(parser_didEndElement_namespaceURI_qualifiedName, "parser:didEndElement:namespaceURI:qualifiedName:"); + //mixin ObjcBindMethod!(parser_didStartMappingPrefix_toURI, "parser:didStartMappingPrefix:toURI:"); + //mixin ObjcBindMethod!(parser, "parser:didEndMappingPrefix:"); + //mixin ObjcBindMethod!(parser, "parser:foundCharacters:"); + //mixin ObjcBindMethod!(parser, "parser:foundIgnorableWhitespace:"); + //mixin ObjcBindMethod!(parser_foundProcessingInstructionWithTarget_data, "parser:foundProcessingInstructionWithTarget:data"); + //mixin ObjcBindMethod!(parser, "parser:foundComment:"); + //mixin ObjcBindMethod!(parser, "parser:foundCDATA:"); + //mixin ObjcBindMethod!(parser_resolveExternalEntityName_systemID, "parser:resolveExternalEntityName:systemID:"); + //mixin ObjcBindMethod!(parser, "parser:parseErrorOccurred:"); + //mixin ObjcBindMethod!(parser, "parser:validationErrorOccurred:"); +`; + +const TNSXMLParserLocatorAdditions = ` + + NSString publicID () + { + return invokeObjcSelf!(NSString, "publicID"); + } + + NSString systemID () + { + return invokeObjcSelf!(NSString, "systemID"); + } + + NSInteger lineNumber () + { + return invokeObjcSelf!(NSInteger, "lineNumber"); + } + + NSInteger columnNumber () + { + return invokeObjcSelf!(NSInteger, "columnNumber"); + } +`; class NSXMLParser : NSObject { - mixin ObjcWrap; - mixin TNSXMLParserLocatorAdditions; + mixin (ObjcWrap); + + this () + { + super(typeof(this).alloc.init.objcObject); + } + + typeof(this) init () + { + return invokeObjcSelf!(typeof(this), "init"); + } Object initWithContentsOfURL (NSURL url) { @@ -135,13 +297,7 @@ this (NSURL url) { - objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); - id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:", NSURL)(objcObject, url); - - if (result) - objcObject = ret; - - dObject = this; + typeof(this).alloc.initWithContentsOfURL(url); } Object initWithData (NSData data) @@ -151,13 +307,7 @@ this (NSData data) { - objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); - id result = Bridge.invokeObjcMethod!(id, "initWithData:", NSData)(objcObject, data); - - if (result) - objcObject = ret; - - dObject = this; + typeof(this).alloc.initWithData(data); } Object delegate_ () @@ -214,52 +364,25 @@ { return invokeObjcSelf!(NSError, "parserError"); } -} - -template TNSXMLParserDelegateEventAdditions () -{ - void parserDidStartDocument (NSXMLParser parser); - void parserDidEndDocument (NSXMLParser parser); - void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID); - void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID, NSString notationName); - void parser (NSXMLParser parser, NSString attributeName, NSString elementName, NSString type, NSString defaultValue); - void parser (NSXMLParser parser, NSString elementName, NSString model); - void parser (NSXMLParser parser, NSString name, NSString value); - void parser (NSXMLParser parser, NSString name, NSString publicID, NSString systemID); - void parser (NSXMLParser parser, NSString elementName, NSString namespaceURI, NSString qName, NSDictionary attributeDict); - void parser (NSXMLParser parser, NSString elementName, NSString namespaceURI, NSString qName); - void parser (NSXMLParser parser, NSString prefix, NSString namespaceURI); - void parser (NSXMLParser parser, NSString prefix); - void parser (NSXMLParser parser, NSString string); - void parser (NSXMLParser parser, NSString whitespaceString); - void parser (NSXMLParser parser, NSString target, NSString data); - void parser (NSXMLParser parser, NSString comment); - void parser (NSXMLParser parser, NSData CDATABlock); - NSData parser (NSXMLParser parser, NSString name, NSString systemID); - void parser (NSXMLParser parser, NSError parseError); - void parser (NSXMLParser parser, NSError validationError); -} - -template TNSXMLParserLocatorAdditions () -{ + + // TNSXMLParserLocatorAdditions NSString publicID () { return invokeObjcSelf!(NSString, "publicID"); } - + NSString systemID () { return invokeObjcSelf!(NSString, "systemID"); } - + NSInteger lineNumber () { return invokeObjcSelf!(NSInteger, "lineNumber"); } - + NSInteger columnNumber () { return invokeObjcSelf!(NSInteger, "columnNumber"); } -} - +} \ No newline at end of file