|
1 "{ Package: 'stx:goodies/xmlsuite' }" |
|
2 |
|
3 "{ NameSpace: XMLv2 }" |
|
4 |
|
5 NodeList subclass:#NamedNodeMap |
|
6 instanceVariableNames:'' |
|
7 classVariableNames:'' |
|
8 poolDictionaries:'' |
|
9 category:'XML Suite-DOM3' |
|
10 ! |
|
11 |
|
12 |
|
13 !NamedNodeMap methodsFor:'DOM3 interface'! |
|
14 |
|
15 getNamedItem:name |
|
16 |
|
17 ^self |
|
18 detect:[:i| name = i localName "defined in Node"] |
|
19 ifNone:[nil] |
|
20 |
|
21 "Created: / 11-05-2005 / 19:18:32 / janfrog" |
|
22 ! |
|
23 |
|
24 getNamedItem:name ns:ns |
|
25 |
|
26 ^self |
|
27 detect:[:i| (name = i localName) "defined in Node" |
|
28 and:[ns = i namespaceURI]] "defined in Node" |
|
29 ifNone:[nil] |
|
30 |
|
31 "Created: / 11-05-2005 / 19:24:18 / janfrog" |
|
32 ! |
|
33 |
|
34 removeNamedItem:name |
|
35 |
|
36 | oldItem | |
|
37 oldItem := self getNamedItem:name. |
|
38 oldItem ifNotNil:[ |
|
39 self remove:oldItem |
|
40 ] |
|
41 |
|
42 "Created: / 11-05-2005 / 19:22:34 / janfrog" |
|
43 ! |
|
44 |
|
45 removeNamedItem:name ns:ns |
|
46 |
|
47 | oldItem | |
|
48 oldItem := self getNamedItem:name ns:ns. |
|
49 oldItem ifNotNil:[ |
|
50 self remove:oldItem |
|
51 ] |
|
52 |
|
53 "Created: / 11-05-2005 / 19:22:57 / janfrog" |
|
54 ! |
|
55 |
|
56 setNamedItem:node |
|
57 |
|
58 | oldItem | |
|
59 oldItem := self getNamedItem:node localName. |
|
60 oldItem ifNotNil:[ |
|
61 self at:(self identityIndexOf:oldItem) put:node |
|
62 ] ifNil:[ |
|
63 self add:node |
|
64 ] |
|
65 |
|
66 "Created: / 11-05-2005 / 19:21:34 / janfrog" |
|
67 ! |
|
68 |
|
69 setNamedItem:node ns:ns |
|
70 |
|
71 | oldItem | |
|
72 oldItem := self getNamedItem:node localName ns:node namespaceURI. |
|
73 oldItem ifNotNil:[ |
|
74 self at:(self identityIndexOf:oldItem) put:node |
|
75 ] ifNil:[ |
|
76 self add:node |
|
77 ] |
|
78 |
|
79 "Created: / 11-05-2005 / 19:23:34 / janfrog" |
|
80 ! ! |
|
81 |
|
82 !NamedNodeMap methodsFor:'DOM3 interface - extensions'! |
|
83 |
|
84 getQualifiedNamedItem:name |
|
85 |
|
86 ^self |
|
87 detect:[:i| (name = i qualifiedName) ] "defined in Node" |
|
88 ifNone:[nil] |
|
89 |
|
90 "Created: / 25-10-2005 / 17:07:06 / janfrog" |
|
91 ! ! |
|
92 |
|
93 !NamedNodeMap methodsFor:'comparing'! |
|
94 |
|
95 = anotherNamedNodeMap |
|
96 ^ super = anotherNamedNodeMap. |
|
97 |
|
98 "| s a | |
|
99 s := self. reject: [:x| x = nil]. |
|
100 a := anotherNamedNodeMap. reject: [:x | x = nil] " |
|
101 "Simple but not effective" |
|
102 "^anotherNamedNodeMap isCollection |
|
103 and:[s contentsArray = a contentsArray]" |
|
104 |
|
105 "Created: / 18-06-2005 / 19:59:07 / janfrog" |
|
106 "Modified: / 10-10-2006 / 15:10:14 / janfrog" |
|
107 ! |
|
108 |
|
109 hash |
|
110 |
|
111 ^self inject:97 into:[:hash :node|hash bitXor:node hash] |
|
112 |
|
113 "Created: / 18-06-2005 / 19:58:05 / janfrog" |
|
114 ! ! |
|
115 |
|
116 !NamedNodeMap class methodsFor:'documentation'! |
|
117 |
|
118 version |
|
119 ^ '$Header: /opt/data/cvs/stx/goodies/xmlsuite/XMLv2__NamedNodeMap.st,v 1.3 2007-01-10 17:47:03 stillj1 Exp $' |
|
120 ! ! |