comparison dstep/foundation/NSXMLDTD.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
comparison
equal deleted inserted replaced
15:7ff919f595d5 16:19885b43130e
4 * Version: Initial created: Aug 3, 2009 4 * Version: Initial created: Aug 3, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) 5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */ 6 */
7 module dstep.foundation.NSXMLDTD; 7 module dstep.foundation.NSXMLDTD;
8 8
9 import dstep.foundation.NSArray;
9 import dstep.foundation.NSData; 10 import dstep.foundation.NSData;
10 import dstep.foundation.NSMutableDictionary; 11 import dstep.foundation.NSDictionary;
12 import dstep.foundation.NSError;
13 import dstep.foundation.NSObjCRuntime;
14 import dstep.foundation.NSString;
15 import dstep.foundation.NSURL;
11 import dstep.foundation.NSXMLDTDNode; 16 import dstep.foundation.NSXMLDTDNode;
12 import dstep.foundation.NSXMLNode; 17 import dstep.foundation.NSXMLNode;
13 import dstep.objc.bridge.Bridge; 18 import dstep.objc.bridge.Bridge;
14 import dstep.objc.objc : id; 19 import dstep.objc.objc;
15 20
16 class NSXMLDTD : NSXMLNode 21 class NSXMLDTD : NSXMLNode
17 { 22 {
18 mixin ObjcWrap; 23 mixin (ObjcWrap);
19 24
20 Object initWithContentsOfURL (NSURL url, NSUInteger mask, NSError** error) 25 this ()
21 { 26 {
22 return invokeObjcSelf!(Object, "initWithContentsOfURL:options:error:", NSURL, NSUInteger, NSError**)(url, mask, error); 27 super(typeof(this).alloc.init.objcObject);
28 }
29
30 typeof(this) init ()
31 {
32 return invokeObjcSelf!(typeof(this), "init");
23 } 33 }
24 34
25 this (NSURL url, NSUInteger mask, NSError** error) 35 Object initWithContentsOfURL (NSURL url, NSUInteger mask, ref NSError error)
26 { 36 {
27 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); 37 id err = error ? new objc_object : null;
28 id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:options:error:", NSURL, NSUInteger, NSError**)(objcObject, url, mask, error); 38 Object result = invokeObjcSelf!(Object, "initWithContentsOfURL:options:error:", NSURL, NSUInteger, id*)(url, mask, &err);
29 39
30 if (result) 40 if (err)
31 objcObject = ret; 41 error = new NSError(err);
32 42
33 dObject = this; 43 return result;
34 } 44 }
35 45
36 Object initWithData (NSData data, NSUInteger mask, NSError** error) 46 this (NSURL url, NSUInteger mask, ref NSError error)
37 { 47 {
38 return invokeObjcSelf!(Object, "initWithData:options:error:", NSData, NSUInteger, NSError**)(data, mask, error); 48 typeof(this).alloc.initWithContentsOfURL(url, mask, error);
39 } 49 }
40 50
41 this (NSData data, NSUInteger mask, NSError** error) 51 Object initWithData (NSData data, NSUInteger mask, ref NSError error)
42 { 52 {
43 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); 53 id err = error ? new objc_object : null;
44 id result = Bridge.invokeObjcMethod!(id, "initWithData:options:error:", NSData, NSUInteger, NSError**)(objcObject, data, mask, error); 54 Object result = invokeObjcSelf!(Object, "initWithData:options:error:", NSData, NSUInteger, id*)(data, mask, &err);
55
56 if (err)
57 error = new NSError(err);
58
59 return result;
60 }
45 61
46 if (result) 62 this (NSData data, NSUInteger mask, ref NSError error)
47 objcObject = ret; 63 {
48 64 typeof(this).alloc.initWithData(data, mask, error);
49 dObject = this;
50 } 65 }
51 66
52 void setPublicID (NSString publicID) 67 void setPublicID (NSString publicID)
53 { 68 {
54 return invokeObjcSelf!(void, "setPublicID:", NSString)(publicID); 69 return invokeObjcSelf!(void, "setPublicID:", NSString)(publicID);
119 return invokeObjcSelf!(NSXMLDTDNode, "attributeDeclarationForName:elementName:", NSString, NSString)(name, elementName); 134 return invokeObjcSelf!(NSXMLDTDNode, "attributeDeclarationForName:elementName:", NSString, NSString)(name, elementName);
120 } 135 }
121 136
122 static NSXMLDTDNode predefinedEntityDeclarationForName (NSString name) 137 static NSXMLDTDNode predefinedEntityDeclarationForName (NSString name)
123 { 138 {
124 return invokeObjcSelfClass!(NSXMLDTDNode, "predefinedEntityDeclarationForName:", NSString)(name); 139 return invokeObjcSuperClass!(NSXMLDTDNode, "predefinedEntityDeclarationForName:", NSString)(name);
125 } 140 }
126 } 141 }
127 142