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-- |
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'stx:goodies/xmlsuite/xquery' }" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
"{ NameSpace: XQuery }" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
StringToAnyAtomicTypeCast subclass:#StringToBooleanCast |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
instanceVariableNames:'' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
category:'XQuery-TypeCasting' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
!StringToBooleanCast methodsFor:'casting'! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
cast |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
| value bValue | |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
self normalizeWhitespaces. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
self checkLexicalForm . |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
value := atomicValue nodeId. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
((value = 'true') or: [value = '1']) ifTrue: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
bValue := true. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
] |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
ifFalse: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
self assert: ((value = 'false') or: [value = '0']) message: 'unsupported value for boolean'. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
bValue := false. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
^ AtomicItem withValue: bValue asType: anotherType typeName. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
"Created: / 17-11-2009 / 16:27:13 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
"Modified: / 21-11-2009 / 20:06:06 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
! ! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
!StringToBooleanCast class methodsFor:'documentation'! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
version_SVN |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
^ '$Id$' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
! ! |