author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 02 Jul 2018 08:46:01 +0200 | |
changeset 305 | bad21c4f64bf |
parent 296 | ea3dbc023c80 |
permissions | -rw-r--r-- |
235 | 1 |
"{ Package: 'stx:goodies/xmlsuite/xquery' }" |
2 |
||
3 |
"{ NameSpace: XQuery }" |
|
4 |
||
5 |
OrderedCollection subclass:#XQuerySequence |
|
6 |
instanceVariableNames:'' |
|
7 |
classVariableNames:'' |
|
8 |
poolDictionaries:'' |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
9 |
category:'XQuery-Sequence' |
235 | 10 |
! |
11 |
||
12 |
||
13 |
!XQuerySequence class methodsFor:'instance creation'! |
|
14 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
15 |
withAtomicValue:value asType:type |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
16 |
^self with: (AtomicItem withValue:value asType:type) |
235 | 17 |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
18 |
"Created: / 10-05-2009 / 21:40:33 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
19 |
"Modified: / 05-10-2009 / 14:30:16 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 20 |
! |
21 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
22 |
withBoolean:aBoolean |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
23 |
^self with:(AtomicItem withBoolean:aBoolean) |
235 | 24 |
|
25 |
"Created: / 21-03-2007 / 13:49:23 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
26 |
"Modified: / 05-10-2009 / 14:30:23 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 27 |
! |
28 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
29 |
withNumber:aNumber |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
30 |
^self with:(AtomicItem withNumber:aNumber) |
235 | 31 |
|
32 |
"Created: / 21-03-2007 / 13:49:23 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
33 |
"Modified: / 05-10-2009 / 14:30:30 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 34 |
! |
35 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
36 |
withNumbers:aCollection |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
37 |
"of numbers" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
38 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
39 |
^self withAll:(aCollection collect:[:num | AtomicItem withNumber:num]) |
235 | 40 |
|
41 |
"Created: / 21-03-2007 / 14:23:43 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
42 |
"Modified: / 05-10-2009 / 14:30:37 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 43 |
! |
44 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
45 |
withString:string |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
46 |
^self with:(AtomicItem withString:string) |
235 | 47 |
|
48 |
"Created: / 21-03-2007 / 15:45:37 / janfrog" |
|
49 |
"Modified: / 21-03-2007 / 19:11:37 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
50 |
"Modified: / 05-10-2009 / 14:30:41 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 51 |
! |
52 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
53 |
withStrings:stringCollection |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
54 |
^self |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
55 |
withAll:(stringCollection collect:[:str | AtomicItem withString:str]) |
235 | 56 |
|
57 |
"Created: / 29-08-2007 / 10:29:19 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
58 |
"Modified: / 05-10-2009 / 14:30:45 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 59 |
! |
60 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
61 |
withText:string |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
62 |
^self with:(NodeItem withText:string) |
235 | 63 |
|
64 |
"Created: / 28-03-2007 / 22:49:53 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
65 |
"Modified: / 05-10-2009 / 14:30:50 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 66 |
! ! |
67 |
||
257
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
68 |
!XQuerySequence methodsFor:'accessing'! |
251 | 69 |
|
70 |
dmStringValue |
|
71 |
||
72 |
^self isSingletonSequence |
|
73 |
ifTrue:[self anyOne dmStringValue] |
|
74 |
ifFalse:['[...]'] |
|
75 |
||
76 |
"Created: / 04-05-2010 / 18:53:23 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
77 |
! |
|
78 |
||
79 |
typeName |
|
80 |
||
81 |
^self isSingletonSequence |
|
82 |
ifTrue:[self anyOne typeName] |
|
83 |
ifFalse:['sequence'] |
|
84 |
||
85 |
"Created: / 04-05-2010 / 18:52:37 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
86 |
! ! |
|
87 |
||
235 | 88 |
!XQuerySequence methodsFor:'converting'! |
89 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
90 |
asAtomizedSequence |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
91 |
^ self collect: [ :item | |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
92 |
item atomizedValue. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
93 |
]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
94 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
95 |
"Created: / 04-10-2009 / 19:15:29 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
96 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
97 |
|
257
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
98 |
asDocumentFragment |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
99 |
|
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
100 |
| reader builder | |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
101 |
reader := XQueryResultXMLReader new. |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
102 |
builder := XMLv2::DOM3Builder new. |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
103 |
reader setContentHandler: builder. |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
104 |
self do:[:each|reader visit: each]. |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
105 |
^builder document |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
106 |
|
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
107 |
"Created: / 15-07-2010 / 15:56:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
108 |
! |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
109 |
|
235 | 110 |
asInteger |
111 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
112 |
self assert:self containsSingleAtomicValue . |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
113 |
^self first value asInteger . |
235 | 114 |
|
115 |
"Created: / 21-03-2007 / 20:24:16 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
116 |
"Modified: / 05-10-2009 / 15:56:56 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
117 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
118 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
119 |
asNumber |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
120 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
121 |
self assert:self containsSingleAtomicValue . |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
122 |
^self first value asNumber . |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
123 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
124 |
"Created: / 04-10-2009 / 18:01:06 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
125 |
"Modified: / 05-10-2009 / 15:56:43 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
126 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
127 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
128 |
asString |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
129 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
130 |
self assert:self containsSingleAtomicValue . |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
131 |
^self first stringValue |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
132 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
133 |
"Created: / 05-10-2009 / 15:55:57 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 134 |
! ! |
135 |
||
136 |
!XQuerySequence methodsFor:'evaluation'! |
|
137 |
||
138 |
effectiveBooleanValue |
|
139 |
" |
|
140 |
If $arg is the empty sequence, fn:boolean returns false. |
|
141 |
||
142 |
If $arg is a sequence whose first item is a node, fn:boolean returns true. |
|
143 |
||
144 |
If $arg is a singleton value of type xs:boolean or a derived from xs:boolean, fn:boolean returns $arg. |
|
145 |
||
146 |
If $arg is a singleton value of type xs:string or a type derived from xs:string, |
|
147 |
xs:anyURI or a type derived from xs:anyURI or xs:untypedAtomic, fn:boolean returns false |
|
148 |
if the operand value has zero length; otherwise it returns true. |
|
149 |
||
150 |
If $arg is a singleton value of any numeric type or a type derived from a numeric type, |
|
151 |
fn:boolean returns false if the operand value is NaN or is numerically equal to zero; otherwise it returns true. |
|
152 |
||
153 |
In all other cases, fn:boolean raises a type error [err:FORG0006]." |
|
154 |
||
155 |
self isEmpty ifTrue:[ |
|
156 |
^ false |
|
157 |
]. |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
158 |
(self first isNode) ifTrue:[ |
235 | 159 |
^ true |
160 |
]. |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
161 |
self assert: (self size = 1). |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
162 |
(self first isSubtypeOf:'xs:boolean') |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
163 |
ifTrue:[ ^ self first value ]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
164 |
(self first isSubtypeOf:'xs:decimal') |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
165 |
ifTrue:[ ^ self first ~= 0 ]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
166 |
(self first isSubtypeOf:'xs:float') |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
167 |
ifTrue:[ ^ self first ~= 0 ]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
168 |
(self first isSubtypeOf:'xs:double') |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
169 |
ifTrue:[ ^ self first ~= 0 ]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
170 |
(self first isSubtypeOf:'xs:string' or: 'xs:untypedAtomic' or: 'xs:anyURI') |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
171 |
ifTrue:[ ^ self first isEmpty not ]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
172 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
173 |
TypeError raiseErrorString: 'err:FORG0006'. |
235 | 174 |
^ false |
175 |
||
176 |
"Created: / 21-03-2007 / 14:58:03 / janfrog" |
|
177 |
"Modified: / 05-12-2007 / 15:50:51 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
178 |
"Modified: / 21-11-2009 / 20:09:37 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 179 |
! ! |
180 |
||
181 |
!XQuerySequence methodsFor:'queries'! |
|
182 |
||
183 |
containsSingleAtomicValue |
|
184 |
||
185 |
^self isSingletonSequence |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
186 |
and:[self first isAtomicValue] |
235 | 187 |
|
188 |
"Created: / 21-11-2007 / 10:31:23 / janfrog" |
|
189 |
"Modified: / 21-11-2007 / 12:27:18 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
190 |
"Modified: / 05-10-2009 / 15:58:37 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 191 |
! |
192 |
||
193 |
containsSingleAttribute |
|
194 |
^ self containsSingleNode |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
195 |
and:[ self first type isSubtypeOf: (TypeFactory getType:'attribute')] |
235 | 196 |
|
197 |
"Created: / 21-03-2007 / 20:25:01 / janfrog" |
|
198 |
"Modified: / 05-12-2007 / 15:50:51 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
199 |
"Modified: / 09-05-2009 / 12:47:04 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 200 |
! |
201 |
||
202 |
containsSingleDocument |
|
203 |
^ self size = 1 |
|
204 |
and:[ |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
205 |
(self first type isSubtypeOf: (TypeFactory getType:'document')) |
235 | 206 |
|
207 |
] |
|
208 |
||
209 |
"Created: / 14-11-2007 / 11:20:27 / janfrog" |
|
210 |
"Modified: / 05-12-2007 / 15:52:24 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
211 |
"Modified: / 09-05-2009 / 12:47:17 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 212 |
! |
213 |
||
214 |
containsSingleElement |
|
215 |
^ self containsSingleNode |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
216 |
and:[ self first type isSubtypeOf: (TypeFactory getType:'element')] |
235 | 217 |
|
218 |
"Created: / 21-03-2007 / 20:25:01 / janfrog" |
|
219 |
"Modified: / 05-12-2007 / 21:55:29 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
220 |
"Modified: / 09-05-2009 / 12:47:31 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 221 |
! |
222 |
||
223 |
containsSingleElementOrDocument |
|
224 |
||
225 |
^self containsSingleElement |
|
226 |
or:[self containsSingleDocument]. |
|
227 |
"Created: / 21-03-2007 / 20:25:01 / janfrog" |
|
228 |
"Modified: / 05-12-2007 / 21:55:29 / janfrog" |
|
229 |
! |
|
230 |
||
231 |
containsSingleInteger |
|
232 |
^ self size = 1 |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
233 |
and:[ TypeFactory isType: (self first dmTypeName) subtypeOf: 'xs:integer' ] |
235 | 234 |
|
235 |
"Created: / 21-03-2007 / 20:25:01 / janfrog" |
|
236 |
"Modified: / 05-12-2007 / 15:50:51 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
237 |
"Modified: / 04-10-2009 / 17:17:57 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 238 |
! |
239 |
||
240 |
containsSingleNode |
|
241 |
||
274 | 242 |
^(self size = 1) and:[self first isNode] |
235 | 243 |
|
244 |
"Created: / 14-11-2007 / 10:11:45 / janfrog" |
|
245 |
"Modified: / 21-11-2007 / 09:10:21 / janfrog" |
|
274 | 246 |
"Modified: / 18-01-2012 / 16:47:57 / Adam Senk <senkadam@fit.cvut.cz>" |
235 | 247 |
! |
248 |
||
249 |
containsSingleNumber |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
250 |
^ self size = 1 |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
251 |
and:[ self first isAtomicValue ] |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
252 |
and:[ self first isSubtypeOf: 'xs:decimal' ] |
235 | 253 |
|
254 |
"Created: / 21-03-2007 / 20:25:01 / janfrog" |
|
255 |
"Modified: / 05-12-2007 / 15:50:51 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
256 |
"Modified: / 06-11-2009 / 20:13:26 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 257 |
! |
258 |
||
259 |
containsSingleString |
|
260 |
^ self size = 1 |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
261 |
and:[ self first itemValueType isSubtypeOf: (TypeFactory getType:'xs:string') ] |
235 | 262 |
|
263 |
"Created: / 21-03-2007 / 20:25:01 / janfrog" |
|
264 |
"Modified: / 05-12-2007 / 15:50:51 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
265 |
"Modified: / 29-06-2009 / 16:41:08 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 266 |
! |
267 |
||
268 |
containsSingleText |
|
269 |
||
270 |
^self containsSingleNode and:[self first item isTextNode] |
|
271 |
||
272 |
"Created: / 21-11-2007 / 10:06:34 / janfrog" |
|
273 |
! |
|
274 |
||
275 |
containsSingleTextOrAtomicValue |
|
276 |
||
277 |
^self containsSingleAtomicValue or:[self containsSingleText] |
|
278 |
||
279 |
"Created: / 21-11-2007 / 10:30:27 / janfrog" |
|
280 |
"Modified: / 21-11-2007 / 12:27:26 / janfrog" |
|
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
281 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
282 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
283 |
error: message |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
284 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
285 |
^ XQuerySequenceError raiseErrorString: message. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
286 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
287 |
"Modified: / 21-11-2007 / 12:27:18 / janfrog" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
288 |
"Created: / 22-09-2009 / 15:14:20 / Jan Kurs <kursj1@fel.cvut.cz>" |
235 | 289 |
! ! |
290 |
||
291 |
!XQuerySequence methodsFor:'testing'! |
|
292 |
||
257
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
293 |
isAtomicValue |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
294 |
|
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
295 |
^self isSingletonSequence |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
296 |
ifTrue:[self anyOne isAtomicValue] |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
297 |
ifFalse:['sequence'] |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
298 |
|
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
299 |
"Created: / 04-05-2010 / 18:53:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
300 |
! |
88e95c94b7b5
Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
251
diff
changeset
|
301 |
|
235 | 302 |
isSingletonSequence |
303 |
||
304 |
^self size = 1 |
|
305 |
||
306 |
"Created: / 21-11-2007 / 12:26:01 / janfrog" |
|
307 |
! ! |
|
308 |
||
309 |
!XQuerySequence class methodsFor:'documentation'! |
|
310 |
||
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
311 |
version_SVN |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
235
diff
changeset
|
312 |
^ '$Id$' |
235 | 313 |
! ! |