ObjFW  Diff

Differences From Artifact [177671f0ee]:

To Artifact [a91eb986c2]:


401
402
403
404
405
406
407
408

409
410
411
412
413

414
415
416
417
418

419
420
421
422
423

424
425
426
427
428

429
430
431
432
433

434
435
436
437
438

439
440
441
442
443
444
445
401
402
403
404
405
406
407

408
409
410
411
412

413
414
415
416
417

418
419
420
421
422

423
424
425
426
427

428
429
430
431
432

433
434
435
436
437

438
439
440
441
442
443
444
445







-
+




-
+




-
+




-
+




-
+




-
+




-
+







- (void)setName: (OFString*)name
{
	if (name == nil)
		@throw [OFInvalidArgumentException
		    exceptionWithClass: [self class]
			      selector: _cmd];

	OF_SETTER(_name, name, YES, 1)
	OF_SETTER(_name, name, true, 1)
}

- (OFString*)name
{
	OF_GETTER(_name, YES)
	OF_GETTER(_name, true)
}

- (void)setNamespace: (OFString*)namespace
{
	OF_SETTER(_namespace, namespace, YES, 1)
	OF_SETTER(_namespace, namespace, true, 1)
}

- (OFString*)namespace
{
	OF_GETTER(_namespace, YES)
	OF_GETTER(_namespace, true)
}

- (OFArray*)attributes
{
	OF_GETTER(_attributes, YES)
	OF_GETTER(_attributes, true)
}

- (void)setChildren: (OFArray*)children
{
	OF_SETTER(_children, children, YES, 2)
	OF_SETTER(_children, children, true, 2)
}

- (OFArray*)children
{
	OF_GETTER(_children, YES)
	OF_GETTER(_children, true)
}

- (void)setStringValue: (OFString*)stringValue
{
	void *pool = objc_autoreleasePoolPush();

	[self setChildren: [OFArray arrayWithObject:
622
623
624
625
626
627
628
629

630
631
632

633
634
635
636
637
638

639
640
641
642
643

644
645
646
647
648
649
650
622
623
624
625
626
627
628

629
630
631

632
633
634
635
636
637

638
639
640
641
642

643
644
645
646
647
648
649
650







-
+


-
+





-
+




-
+







	}

	/* Childen */
	if (_children != nil) {
		OFXMLElement **childrenObjects = [_children objects];
		size_t childrenCount = [_children count];
		OFDataArray *tmp = [OFDataArray dataArray];
		BOOL indent;
		bool indent;

		if (indentation > 0) {
			indent = YES;
			indent = true;

			for (j = 0; j < childrenCount; j++) {
				if ([childrenObjects[j] isKindOfClass:
				    charactersClass] || [childrenObjects[j]
				    isKindOfClass: CDATAClass]) {
					indent = NO;
					indent = false;
					break;
				}
			}
		} else
			indent = NO;
			indent = false;

		for (j = 0; j < childrenCount; j++) {
			OFString *child;
			unsigned int ind = (indent ? indentation : 0);

			if (ind)
				[tmp addItem: "\n"];
940
941
942
943
944
945
946
947

948
949
950
951
952

953
954
955
956
957
958
959
940
941
942
943
944
945
946

947
948
949
950
951

952
953
954
955
956
957
958
959







-
+




-
+







	[self addAttributeWithName: prefix
			 namespace: @"http://www.w3.org/2000/xmlns/"
		       stringValue: namespace];
}

- (OFString*)defaultNamespace
{
	OF_GETTER(_defaultNamespace, YES)
	OF_GETTER(_defaultNamespace, true)
}

- (void)setDefaultNamespace: (OFString*)defaultNamespace
{
	OF_SETTER(_defaultNamespace, defaultNamespace, YES, 1)
	OF_SETTER(_defaultNamespace, defaultNamespace, true, 1)
}

- (void)addChild: (OFXMLNode*)child
{
	if ([child isKindOfClass: [OFXMLAttribute class]])
		@throw [OFInvalidArgumentException
		    exceptionWithClass: [self class]
1121
1122
1123
1124
1125
1126
1127
1128

1129
1130
1131
1132
1133

1134
1135
1136
1137
1138

1139
1140
1141

1142
1143
1144

1145
1146
1147

1148
1149
1150

1151
1152
1153

1154
1155

1156
1157
1158
1159
1160
1161
1162
1121
1122
1123
1124
1125
1126
1127

1128
1129
1130
1131
1132

1133
1134
1135
1136
1137

1138
1139
1140

1141
1142
1143

1144
1145
1146

1147
1148
1149

1150
1151
1152

1153
1154

1155
1156
1157
1158
1159
1160
1161
1162







-
+




-
+




-
+


-
+


-
+


-
+


-
+


-
+

-
+







			[ret addObject: objects[i]];

	[ret makeImmutable];

	return ret;
}

- (BOOL)isEqual: (id)object
- (bool)isEqual: (id)object
{
	OFXMLElement *element;

	if (![object isKindOfClass: [OFXMLElement class]])
		return NO;
		return false;

	element = object;

	if (element->_name != _name && ![element->_name isEqual: _name])
		return NO;
		return false;
	if (element->_namespace != _namespace &&
	    ![element->_namespace isEqual: _namespace])
		return NO;
		return false;
	if (element->_defaultNamespace != _defaultNamespace &&
	    ![element->_defaultNamespace isEqual: _defaultNamespace])
		return NO;
		return false;
	if (element->_attributes != _attributes &&
	    ![element->_attributes isEqual: _attributes])
		return NO;
		return false;
	if (element->_namespaces != _namespaces &&
	    ![element->_namespaces isEqual: _namespaces])
		return NO;
		return false;
	if (element->_children != _children &&
	    ![element->_children isEqual: _children])
		return NO;
		return false;

	return YES;
	return true;
}

- (uint32_t)hash
{
	uint32_t hash;

	OF_HASH_INIT(hash);