1
2
3
4
5
6
7 package org.mule.module.xml.util;
8
9 import org.mule.api.util.StreamCloser;
10 import org.mule.module.xml.stax.StaxSource;
11
12 import javax.xml.stream.XMLStreamReader;
13
14 public class XMLStreamCloser implements StreamCloser
15 {
16
17 public boolean canClose(Class streamType)
18 {
19 return StaxSource.class.isAssignableFrom(streamType)
20 || XMLStreamReader.class.isAssignableFrom(streamType);
21 }
22
23 public void close(Object stream) throws Exception
24 {
25 if (stream instanceof XMLStreamReader)
26 {
27 ((XMLStreamReader) stream).close();
28 }
29 else if (stream instanceof StaxSource)
30 {
31 ((StaxSource) stream).getXMLStreamReader().close();
32 }
33 }
34
35 }