view dstep/foundation/NSXMLParser.d @ 14:89f3c3ef1fd2

Added the Foundation framework
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 15:23:15 +0200
parents
children 19885b43130e
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Aug 3, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.foundation.NSXMLParser;

import dstep.foundation.NSData;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSError;
import dstep.foundation.NSObject;
import dstep.foundation.NSString;
import dstep.foundation.NSURL;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc : id;

import bindings = dstep.foundation.NSXMLParser_bindings;

alias NSInteger NSXMLParserError;

const NSString NSXMLParserErrorDomain;

enum
{
	NSXMLParserInternalError = 1,
	NSXMLParserOutOfMemoryError = 2,
	NSXMLParserDocumentStartError = 3,
	NSXMLParserEmptyDocumentError = 4,
	NSXMLParserPrematureDocumentEndError = 5,
	NSXMLParserInvalidHexCharacterRefError = 6,
	NSXMLParserInvalidDecimalCharacterRefError = 7,
	NSXMLParserInvalidCharacterRefError = 8,
	NSXMLParserInvalidCharacterError = 9,
	NSXMLParserCharacterRefAtEOFError = 10,
	NSXMLParserCharacterRefInPrologError = 11,
	NSXMLParserCharacterRefInEpilogError = 12,
	NSXMLParserCharacterRefInDTDError = 13,
	NSXMLParserEntityRefAtEOFError = 14,
	NSXMLParserEntityRefInPrologError = 15,
	NSXMLParserEntityRefInEpilogError = 16,
	NSXMLParserEntityRefInDTDError = 17,
	NSXMLParserParsedEntityRefAtEOFError = 18,
	NSXMLParserParsedEntityRefInPrologError = 19,
	NSXMLParserParsedEntityRefInEpilogError = 20,
	NSXMLParserParsedEntityRefInInternalSubsetError = 21,
	NSXMLParserEntityReferenceWithoutNameError = 22,
	NSXMLParserEntityReferenceMissingSemiError = 23,
	NSXMLParserParsedEntityRefNoNameError = 24,
	NSXMLParserParsedEntityRefMissingSemiError = 25,
	NSXMLParserUndeclaredEntityError = 26,
	NSXMLParserUnparsedEntityError = 28,
	NSXMLParserEntityIsExternalError = 29,
	NSXMLParserEntityIsParameterError = 30,
	NSXMLParserUnknownEncodingError = 31,
	NSXMLParserEncodingNotSupportedError = 32,
	NSXMLParserStringNotStartedError = 33,
	NSXMLParserStringNotClosedError = 34,
	NSXMLParserNamespaceDeclarationError = 35,
	NSXMLParserEntityNotStartedError = 36,
	NSXMLParserEntityNotFinishedError = 37,
	NSXMLParserLessThanSymbolInAttributeError = 38,
	NSXMLParserAttributeNotStartedError = 39,
	NSXMLParserAttributeNotFinishedError = 40,
	NSXMLParserAttributeHasNoValueError = 41,
	NSXMLParserAttributeRedefinedError = 42,
	NSXMLParserLiteralNotStartedError = 43,
	NSXMLParserLiteralNotFinishedError = 44,
	NSXMLParserCommentNotFinishedError = 45,
	NSXMLParserProcessingInstructionNotStartedError = 46,
	NSXMLParserProcessingInstructionNotFinishedError = 47,
	NSXMLParserNotationNotStartedError = 48,
	NSXMLParserNotationNotFinishedError = 49,
	NSXMLParserAttributeListNotStartedError = 50,
	NSXMLParserAttributeListNotFinishedError = 51,
	NSXMLParserMixedContentDeclNotStartedError = 52,
	NSXMLParserMixedContentDeclNotFinishedError = 53,
	NSXMLParserElementContentDeclNotStartedError = 54,
	NSXMLParserElementContentDeclNotFinishedError = 55,
	NSXMLParserXMLDeclNotStartedError = 56,
	NSXMLParserXMLDeclNotFinishedError = 57,
	NSXMLParserConditionalSectionNotStartedError = 58,
	NSXMLParserConditionalSectionNotFinishedError = 59,
	NSXMLParserExternalSubsetNotFinishedError = 60,
	NSXMLParserDOCTYPEDeclNotFinishedError = 61,
	NSXMLParserMisplacedCDATAEndStringError = 62,
	NSXMLParserCDATANotFinishedError = 63,
	NSXMLParserMisplacedXMLDeclarationError = 64,
	NSXMLParserSpaceRequiredError = 65,
	NSXMLParserSeparatorRequiredError = 66,
	NSXMLParserNMTOKENRequiredError = 67,
	NSXMLParserNAMERequiredError = 68,
	NSXMLParserPCDATARequiredError = 69,
	NSXMLParserURIRequiredError = 70,
	NSXMLParserPublicIdentifierRequiredError = 71,
	NSXMLParserLTRequiredError = 72,
	NSXMLParserGTRequiredError = 73,
	NSXMLParserLTSlashRequiredError = 74,
	NSXMLParserEqualExpectedError = 75,
	NSXMLParserTagNameMismatchError = 76,
	NSXMLParserUnfinishedTagError = 77,
	NSXMLParserStandaloneValueError = 78,
	NSXMLParserInvalidEncodingNameError = 79,
	NSXMLParserCommentContainsDoubleHyphenError = 80,
	NSXMLParserInvalidEncodingError = 81,
	NSXMLParserExternalStandaloneEntityError = 82,
	NSXMLParserInvalidConditionalSectionError = 83,
	NSXMLParserEntityValueRequiredError = 84,
	NSXMLParserNotWellBalancedError = 85,
	NSXMLParserExtraContentError = 86,
	NSXMLParserInvalidCharacterInEntityError = 87,
	NSXMLParserParsedEntityRefInInternalError = 88,
	NSXMLParserEntityRefLoopError = 89,
	NSXMLParserEntityBoundaryError = 90,
	NSXMLParserInvalidURIError = 91,
	NSXMLParserURIFragmentError = 92,
	NSXMLParserNoDTDError = 94,
	NSXMLParserDelegateAbortedParseError = 512
}

static this ()
{
	NSXMLParserErrorDomain = new NSString(bindings.NSXMLParserErrorDomain);
}

class NSXMLParser : NSObject
{
	mixin ObjcWrap;
	mixin TNSXMLParserLocatorAdditions;

	Object initWithContentsOfURL (NSURL url)
	{
		return invokeObjcSelf!(Object, "initWithContentsOfURL:", NSURL)(url);
	}

	this (NSURL url)
	{
		objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
		id result = Bridge.invokeObjcMethod!(id, "initWithContentsOfURL:", NSURL)(objcObject, url);

		if (result)
			objcObject = ret;

		dObject = this;
	}

	Object initWithData (NSData data)
	{
		return invokeObjcSelf!(Object, "initWithData:", NSData)(data);
	}

	this (NSData data)
	{
		objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
		id result = Bridge.invokeObjcMethod!(id, "initWithData:", NSData)(objcObject, data);

		if (result)
			objcObject = ret;

		dObject = this;
	}

	Object delegate_ ()
	{
		return invokeObjcSelf!(Object, "delegate");
	}

	void setDelegate (Object delegate_)
	{
		return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_);
	}

	void setShouldProcessNamespaces (bool shouldProcessNamespaces)
	{
		return invokeObjcSelf!(void, "setShouldProcessNamespaces:", bool)(shouldProcessNamespaces);
	}

	void setShouldReportNamespacePrefixes (bool shouldReportNamespacePrefixes)
	{
		return invokeObjcSelf!(void, "setShouldReportNamespacePrefixes:", bool)(shouldReportNamespacePrefixes);
	}

	void setShouldResolveExternalEntities (bool shouldResolveExternalEntities)
	{
		return invokeObjcSelf!(void, "setShouldResolveExternalEntities:", bool)(shouldResolveExternalEntities);
	}

	bool shouldProcessNamespaces ()
	{
		return invokeObjcSelf!(bool, "shouldProcessNamespaces");
	}

	bool shouldReportNamespacePrefixes ()
	{
		return invokeObjcSelf!(bool, "shouldReportNamespacePrefixes");
	}

	bool shouldResolveExternalEntities ()
	{
		return invokeObjcSelf!(bool, "shouldResolveExternalEntities");
	}

	bool parse ()
	{
		return invokeObjcSelf!(bool, "parse");
	}

	void abortParsing ()
	{
		return invokeObjcSelf!(void, "abortParsing");
	}

	NSError parserError ()
	{
		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 ()
{
	NSString publicID ()
	{
		return invokeObjcSelf!(NSString, "publicID");
	}

	NSString systemID ()
	{
		return invokeObjcSelf!(NSString, "systemID");
	}

	NSInteger lineNumber ()
	{
		return invokeObjcSelf!(NSInteger, "lineNumber");
	}

	NSInteger columnNumber ()
	{
		return invokeObjcSelf!(NSInteger, "columnNumber");
	}
}