xquery/XQuery__XQuerySequence.st
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--
Tagged Smalltalk/X 8.0.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
235
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/xmlsuite/xquery' }"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: XQuery }"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
OrderedCollection subclass:#XQuerySequence
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
241
e28ef0f20186 Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
     9
	category:'XQuery-Sequence'
235
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
!XQuerySequence class methodsFor:'instance creation'!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    "Created: / 21-03-2007 / 15:45:37 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
! !
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
257
88e95c94b7b5 Fixes for XQuery debugger
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 251
diff changeset
    68
!XQuerySequence methodsFor:'accessing'!
251
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    69
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    70
dmStringValue
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    71
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    72
     ^self isSingletonSequence 
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    73
        ifTrue:[self anyOne dmStringValue]
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    74
        ifFalse:['[...]']
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    75
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    76
    "Created: / 04-05-2010 / 18:53:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    77
!
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    78
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    79
typeName
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    80
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    81
    ^self isSingletonSequence 
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    82
        ifTrue:[self anyOne typeName]
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    83
        ifFalse:['sequence']
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    84
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    85
    "Created: / 04-05-2010 / 18:52:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    86
! !
009b9c96967b SubInterpreter support
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 241
diff changeset
    87
235
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
!XQuerySequence methodsFor:'converting'!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
asInteger
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
! !
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
!XQuerySequence methodsFor:'evaluation'!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
effectiveBooleanValue
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
    "
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
      If $arg is the empty sequence, fn:boolean returns false.
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
      If $arg is a sequence whose first item is a node, fn:boolean returns true.
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
      If $arg is a singleton value of type xs:boolean or a derived from xs:boolean, fn:boolean returns $arg.
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
      If $arg is a singleton value of type xs:string or a type derived from xs:string,
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
      xs:anyURI or a type derived from xs:anyURI or xs:untypedAtomic, fn:boolean returns false
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
      if the operand value has zero length; otherwise it returns true.
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
      If $arg is a singleton value of any numeric type or a type derived from a numeric type,
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
      fn:boolean returns false if the operand value is NaN or is numerically equal to zero; otherwise it returns true.
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
      In all other cases, fn:boolean raises a type error [err:FORG0006]."
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
    
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
    self isEmpty ifTrue:[
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
        ^ false
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
    ].
241
e28ef0f20186 Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 235
diff changeset
   158
    (self first isNode) ifTrue:[
235
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
        ^ true
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
    ^ false
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    "Created: / 21-03-2007 / 14:58:03 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
! !
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
!XQuerySequence methodsFor:'queries'!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
containsSingleAtomicValue
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
    "Created: / 21-11-2007 / 10:31:23 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
containsSingleAttribute
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
    "Created: / 21-03-2007 / 20:25:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
containsSingleDocument
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
    ^ self size = 1 
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   206
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   207
        ]
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
    "Created: / 14-11-2007 / 11:20:27 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
containsSingleElement
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
    "Created: / 21-03-2007 / 20:25:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
containsSingleElementOrDocument
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
    ^self containsSingleElement
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
        or:[self containsSingleDocument].
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    "Created: / 21-03-2007 / 20:25:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    "Modified: / 05-12-2007 / 21:55:29 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
containsSingleInteger
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   234
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   235
    "Created: / 21-03-2007 / 20:25:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   238
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   239
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   240
containsSingleNode
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
274
28ac00b069d2 XQuery UpdateFacility bug fixing
senkadam
parents: 257
diff changeset
   242
    ^(self size = 1) and:[self first isNode]
235
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    "Created: / 14-11-2007 / 10:11:45 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
    "Modified: / 21-11-2007 / 09:10:21 / janfrog"
274
28ac00b069d2 XQuery UpdateFacility bug fixing
senkadam
parents: 257
diff changeset
   246
    "Modified: / 18-01-2012 / 16:47:57 / Adam Senk <senkadam@fit.cvut.cz>"
235
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
    "Created: / 21-03-2007 / 20:25:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   258
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   259
containsSingleString
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   262
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   263
    "Created: / 21-03-2007 / 20:25:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
containsSingleText
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
    ^self containsSingleNode and:[self first item isTextNode]
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
    "Created: / 21-11-2007 / 10:06:34 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   275
containsSingleTextOrAtomicValue
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   277
    ^self containsSingleAtomicValue or:[self containsSingleText]
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
    "Created: / 21-11-2007 / 10:30:27 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
! !
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   290
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   291
!XQuerySequence methodsFor:'testing'!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   302
isSingletonSequence
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   304
    ^self size = 1
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   305
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   306
    "Created: / 21-11-2007 / 12:26:01 / janfrog"
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   307
! !
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   308
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   309
!XQuerySequence class methodsFor:'documentation'!
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   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
e2a2fac1f45f Restore /trunk from r231
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   313
! !