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