--- a/xquery/trunk/XQuery__XDMAdaptor.st Fri Apr 20 16:58:54 2012 +0000
+++ b/xquery/trunk/XQuery__XDMAdaptor.st Tue May 01 15:43:35 2012 +0000
@@ -68,20 +68,20 @@
ensureIsValidAttributeId: nodeId
- (nodeId isAttr)
+ (nodeId nodeKind = #attribute)
ifFalse:[self invalidNodeIdError: 'Not an attribute']
"Created: / 31-10-2007 / 10:21:04 / janfrog"
- "Modified: / 07-02-2012 / 21:41:56 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 12-03-2012 / 13:54:27 / Adam Senk <senkadam@gmail.com>"
!
ensureIsValidElementId: nodeId
- (nodeId isElementNode)
+ (nodeId isElement)
ifFalse:[self invalidNodeIdError: 'Not an element']
"Created: / 31-10-2007 / 10:18:19 / janfrog"
- "Modified: / 06-03-2012 / 11:45:05 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 12-03-2012 / 13:52:49 / Adam Senk <senkadam@gmail.com>"
!
ensureIsValidElementOrAttributeId: nodeId
@@ -247,6 +247,14 @@
"Created: / 12-12-2006 / 10:45:18 / janfrog"
! !
+!XDMAdaptor methodsFor:'trigger creating'!
+
+connectTriggerDef: triggerDefNodeId to: nodeId
+ self error: 'This XDMAdaptor does not support trigger funcionality'
+
+ "Created: / 25-03-2012 / 14:02:03 / Adam Senk <senkadam@gmail.com>"
+! !
+
!XDMAdaptor methodsFor:'update primitives'!
updDelete: nodeId
@@ -270,25 +278,26 @@
ensureNotReleased.
"ensureIsValidElementOrAttributeId:sourceNodeId;
ensureIsValidElementOrDocumentId:targetNodeId."
+
self
- primUpdInsert:sourceNodeId
- into:targetNodeId
- after:targetNodeId.
+ primUpdInsert:sourceNodeId nodeId
+ into:targetNodeId nodeId parent
+ after:targetNodeId nodeId.
"Modified: / 21-11-2007 / 13:58:38 / janfrog"
- "Modified: / 06-03-2012 / 12:53:59 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 01-05-2012 / 12:39:31 / Adam Senk <senkadam@gmail.com>"
!
updInsert:insertedNodeId asFirstInto:parentNodeId
"|childNodes|"
self
- ensureNotReleased;
- ensureIsValidNodeId:insertedNodeId.
+ ensureNotReleased.
+ "ensureIsValidNodeId:insertedNodeId nodeId."
" ensureIsValidElementOrDocumentId:parentNodeId."
self
- primUpdInsert:insertedNodeId
- into: parentNodeId
+ primUpdInsert:insertedNodeId nodeId
+ into: parentNodeId nodeId
before: nil.
"((childNodes:= self xpathChildOf: parentNodeId) isEmpty
@@ -296,7 +305,7 @@
ifFalse:[ childNodes anyOne ])"
"Modified: / 21-11-2007 / 14:20:28 / janfrog"
- "Modified (comment): / 06-03-2012 / 11:56:28 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 01-05-2012 / 15:00:21 / Adam Senk <senkadam@gmail.com>"
!
updInsert:insertedNodeId asLastInto:parentNodeId
@@ -306,12 +315,12 @@
"ensureIsValidElementOrAttributeId:insertedNodeId;
ensureIsValidElementOrDocumentId:parentNodeId. "
self
- primUpdInsert:insertedNodeId
- into:parentNodeId
- after:(self dmChildren:parentNodeId) last
+ primUpdInsert:insertedNodeId nodeId
+ into:parentNodeId nodeId
+ after:(self dmChildren:parentNodeId nodeId) last
"Modified: / 21-11-2007 / 13:59:02 / janfrog"
- "Modified: / 06-03-2012 / 12:33:33 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 01-05-2012 / 12:42:19 / Adam Senk <senkadam@gmail.com>"
!
updInsert:insertedNodeId before:referenceNodeId
@@ -322,13 +331,13 @@
"ensureIsValidElementOrAttributeId:insertedNodeId;
ensureIsValidElementOrDocumentId:referenceNodeId."
self
- primUpdInsert:insertedNodeId
- into: (self dmParent: insertedNodeId)
- before:referenceNodeId.
+ primUpdInsert:insertedNodeId nodeId
+ into: (self dmParent: insertedNodeId nodeId)
+ before:referenceNodeId nodeId.
"Created: / 21-11-2007 / 11:31:22 / janfrog"
"Modified: / 21-11-2007 / 14:19:11 / janfrog"
- "Modified: / 06-03-2012 / 13:27:22 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 01-05-2012 / 12:39:58 / Adam Senk <senkadam@gmail.com>"
!
updInsert:insertedNodeId into:parentNodeId
@@ -341,11 +350,12 @@
updInsertAttribute:anAttr into:targetNodeId
self
ensureNotReleased;
- ensureIsValidElementId:targetNodeId;
- ensureIsValidAttributeId:anAttr.
- self primUpdInsertAttribute:anAttr into:targetNodeId
+ ensureIsValidElementId:targetNodeId nodeId;
+ ensureIsValidAttributeId:anAttr nodeId.
+ self primUpdInsertAttribute:anAttr nodeId nodeName into:targetNodeId nodeId
"Modified: / 31-10-2007 / 10:22:31 / janfrog"
+ "Modified: / 01-05-2012 / 16:09:38 / Adam Senk <senkadam@gmail.com>"
!
updRename: nodeId to: newName "String"
@@ -358,40 +368,35 @@
!
updReplaceNode:nodeRep with:replacementNodeIds
- |realReplacementNodeIds|
+
self
ensureNotReleased.
" ensureIsValidNodeId:nodeId;
ensureIsValidNodeIds:replacementNodeIds."
- realReplacementNodeIds := OrderedCollection new:replacementNodeIds size.
- replacementNodeIds do:[:replacementNodeId |
- realReplacementNodeIds add:replacementNodeId
-
- ].
(nodeRep isElementNode) ifTrue:[
- realReplacementNodeIds do:[:node |
+ replacementNodeIds do:[:node |
self
- primUpdInsert:node nodeId
- into: (self dmParent:(nodeRep nodeId))
- after:nodeRep nodeId
+ updInsert:(NodeItem withNode:node documentAdaptor: nodeRep documentAdaptor)
+ after:nodeRep
].
self primUpdDeleteNode:nodeRep nodeId.
] ifFalse:[
- realReplacementNodeIds do:[:node |
- self primUpdInsertAttribute:node nodeId into:(self dmParent:(nodeRep nodeId))
+ replacementNodeIds do:[:node |
+ self primUpdInsertAttribute:(NodeItem withNode:node documentAdaptor: nodeRep documentAdaptor) into:(self dmParent:(nodeRep nodeId))
].
self primUpdDeleteAttribute:nodeRep nodeId
]
"Created: / 14-11-2007 / 14:17:16 / janfrog"
"Modified: / 21-11-2007 / 13:59:39 / janfrog"
- "Modified: / 06-03-2012 / 14:42:24 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 01-05-2012 / 15:15:55 / Adam Senk <senkadam@gmail.com>"
!
updReplaceValueOf:nodeId with:newValue
- self
+
+ self
ensureNotReleased;
ensureIsValidNodeId:nodeId nodeId.
@@ -400,12 +405,12 @@
["delete all child nodes"
(nodeId xpathChild) do:[:node|self updDelete: node nodeId ].
"insert new node"
- self updInsert: newValue into: nodeId]
+ self updInsert: (NodeItem withNode:newValue documentAdaptor: nodeId documentAdaptor) into: nodeId]
ifFalse:
[self primUpdReplaceValueOf:nodeId with:newValue]
"Modified: / 21-11-2007 / 12:48:36 / janfrog"
- "Modified: / 07-02-2012 / 19:00:45 / Adam Senk <senkadam@gmail.com>"
+ "Modified: / 01-05-2012 / 16:07:15 / Adam Senk <senkadam@gmail.com>"
! !
!XDMAdaptor methodsFor:'update primitives - primitives'!