16 package org.zorbaxquery.api.xqj;
18 import java.util.ArrayList;
19 import javax.xml.xquery.XQException;
20 import javax.xml.xquery.XQItem;
21 import javax.xml.xquery.XQSequence;
22 import org.zorbaxquery.api.Collection;
23 import org.zorbaxquery.api.ItemSequence;
33 private boolean closed =
false;
34 private Collection collection = null;
35 private java.util.Collection<XQSequence> sequences =
new ArrayList<XQSequence>();
47 public void close() throws XQException {
48 for (XQSequence exp : sequences ){
51 if (collection!=null) {
71 public XQSequence
contents() throws XQException {
72 isClosedXQException();
73 XQSequence result =
new org.zorbaxquery.api.xqj.ZorbaXQSequence(collection.contents().getIterator());
74 sequences.add(result);
85 isClosedXQException();
86 collection.deleteNodeFirst();
96 isClosedXQException();
97 collection.deleteNodeLast();
110 isClosedXQException();
112 ItemSequence sequence = ((org.zorbaxquery.api.xqj.ZorbaXQSequence)aNodes).getItemSequence();
113 collection.deleteNodes(sequence);
114 }
catch (XQException e) {
126 isClosedXQException();
127 collection.deleteNodesFirst(aNumNodes);
137 isClosedXQException();
138 collection.deleteNodesLast(aNumNodes);
147 isClosedXQException();
148 return collection.getName().getStringValue();
160 isClosedXQException();
174 public long indexOf(XQItem aNode )
throws XQException {
175 isClosedXQException();
176 return collection.indexOf(((org.zorbaxquery.api.xqj.ZorbaXQItem)aNode).getZorbaItem());
194 isClosedXQException();
196 ItemSequence sequence = ((org.zorbaxquery.api.xqj.ZorbaXQSequence)aNodes).getItemSequence();
197 collection.insertNodesAfter(((org.zorbaxquery.api.xqj.ZorbaXQItem)aTarget).getZorbaItem(), sequence);
198 }
catch (XQException e) {
218 isClosedXQException();
220 ItemSequence sequence = ((org.zorbaxquery.api.xqj.ZorbaXQSequence)aNodes).getItemSequence();
221 collection.insertNodesBefore(((org.zorbaxquery.api.xqj.ZorbaXQItem)aTarget).getZorbaItem(), sequence);
222 }
catch (XQException e) {
236 isClosedXQException();
238 ItemSequence sequence = ((org.zorbaxquery.api.xqj.ZorbaXQSequence)aNodes).getItemSequence();
239 collection.insertNodesFirst(sequence);
240 }
catch (XQException e) {
254 isClosedXQException();
256 ItemSequence sequence = ((org.zorbaxquery.api.xqj.ZorbaXQSequence)aNodes).getItemSequence();
257 collection.insertNodesLast(sequence);
258 }
catch (XQException e) {
269 isClosedXQException();
270 return collection.isStatic();
273 private void isClosedXQException() throws XQException {
275 throw new XQException(
"Collection is closed");