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