svn-gvsig-desktop / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / layers / layerOperations / VectorialXMLItem.java @ 6556
History | View | Annotate | Download (1.65 KB)
1 | 5057 | ldiaz | package com.iver.cit.gvsig.fmap.layers.layerOperations; |
---|---|---|---|
2 | |||
3 | import java.util.BitSet; |
||
4 | |||
5 | import org.xml.sax.ContentHandler; |
||
6 | import org.xml.sax.SAXException; |
||
7 | import org.xml.sax.helpers.AttributesImpl; |
||
8 | import com.hardcode.gdbms.engine.data.DataSource; |
||
9 | import com.iver.cit.gvsig.fmap.DriverException; |
||
10 | import com.iver.cit.gvsig.fmap.layers.FLayer; |
||
11 | import com.iver.cit.gvsig.fmap.layers.layerOperations.AlphanumericData; |
||
12 | |||
13 | |||
14 | public class VectorialXMLItem implements XMLItem { |
||
15 | |||
16 | private BitSet bitset; |
||
17 | private FLayer layer;
|
||
18 | |||
19 | public VectorialXMLItem(BitSet bitset, FLayer layer) { |
||
20 | this.bitset = bitset;
|
||
21 | this.layer = layer;
|
||
22 | } |
||
23 | |||
24 | 5199 | ldiaz | public FLayer getLayer(){
|
25 | return layer;
|
||
26 | } |
||
27 | 5057 | ldiaz | /**
|
28 | * @see com.iver.cit.gvsig.gui.toolListeners.InfoListener.XMLItem#parse(org.xml.sax.ContentHandler)
|
||
29 | */
|
||
30 | public void parse(ContentHandler handler) throws SAXException { |
||
31 | AttributesImpl aii = new AttributesImpl();
|
||
32 | handler.startElement("", "", ((FLayer) layer).getName(), aii); |
||
33 | try {
|
||
34 | |||
35 | DataSource ds = ((AlphanumericData) layer).getRecordset();
|
||
36 | ds.start(); |
||
37 | |||
38 | for (int j = bitset.nextSetBit(0); j >= 0; j = bitset |
||
39 | .nextSetBit(j + 1)) {
|
||
40 | AttributesImpl ai = new AttributesImpl();
|
||
41 | |||
42 | for (int k = 0; k < ds.getFieldCount(); k++) { |
||
43 | ai.addAttribute("", ds.getFieldName(k), "", |
||
44 | "xs:string", ds.getFieldValue(j, k).toString());
|
||
45 | } |
||
46 | handler.startElement("", "", String.valueOf(j), ai); |
||
47 | handler.endElement("", "", String.valueOf(j)); |
||
48 | } |
||
49 | |||
50 | ds.stop(); |
||
51 | |||
52 | } catch (com.hardcode.gdbms.engine.data.driver.DriverException e) {
|
||
53 | throw new SAXException(e); |
||
54 | } catch (DriverException e) {
|
||
55 | throw new SAXException(e); |
||
56 | } |
||
57 | handler.endElement("", "", ((FLayer) layer).getName()); |
||
58 | } |
||
59 | } |