@@ -18,26 +18,22 @@ #include #import "OFUnboundNamespaceException.h" #import "OFString.h" +#import "OFXMLElement.h" #import "common.h" @implementation OFUnboundNamespaceException + (instancetype)exceptionWithClass: (Class)class namespace: (OFString*)namespace + element: (OFXMLElement*)element { return [[[self alloc] initWithClass: class - namespace: namespace] autorelease]; -} - -+ (instancetype)exceptionWithClass: (Class)class - prefix: (OFString*)prefix -{ - return [[[self alloc] initWithClass: class - prefix: prefix] autorelease]; + namespace: namespace + element: element] autorelease]; } - initWithClass: (Class)class { @try { @@ -50,30 +46,17 @@ abort(); } - initWithClass: (Class)class namespace: (OFString*)namespace + element: (OFXMLElement*)element { self = [super initWithClass: class]; @try { _namespace = [namespace copy]; - } @catch (id e) { - [self release]; - @throw e; - } - - return self; -} - -- initWithClass: (Class)class - prefix: (OFString*)prefix -{ - self = [super initWithClass: class]; - - @try { - _prefix = [prefix copy]; + _element = [element retain]; } @catch (id e) { [self release]; @throw e; } @@ -81,36 +64,26 @@ } - (void)dealloc { [_namespace release]; - [_prefix release]; + [_element release]; [super dealloc]; } - (OFString*)description { - if (_namespace != nil) - return [OFString stringWithFormat: - @"The namespace %@ is not bound in class %@", _namespace, - _inClass]; - else if (_prefix != nil) - return [OFString stringWithFormat: - @"The prefix %@ is not bound to any namespace in class %@", - _prefix, _inClass]; - else - return [OFString stringWithFormat: - @"A namespace or prefix is not bound in class %@", - _inClass]; + return [OFString stringWithFormat: + @"The namespace %@ is not bound in class %@", _namespace, _inClass]; } - (OFString*)namespace { OF_GETTER(_namespace, false) } -- (OFString*)prefix +- (OFXMLElement*)element { - OF_GETTER(_prefix, false) + OF_GETTER(_element, false) } @end