xquery/trunk/XQuery__XDMAdaptor.st
changeset 284 6f8ef403ca97
parent 276 1b30d9e1e8cd
--- 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'!