root / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / layers / layerOperations / VectorialXMLItem.java @ 14305
History | View | Annotate | Download (1.5 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 | 10627 | caballero | |
9 | import com.hardcode.gdbms.driver.exceptions.ReadDriverException; |
||
10 | 5057 | ldiaz | import com.hardcode.gdbms.engine.data.DataSource; |
11 | import com.iver.cit.gvsig.fmap.layers.FLayer; |
||
12 | |||
13 | |||
14 | public class VectorialXMLItem implements XMLItem { |
||
15 | 10627 | caballero | |
16 | 5057 | ldiaz | 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 | 8843 | caballero | ds.start(); |
37 | 5057 | ldiaz | |
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 | 8843 | caballero | ds.stop(); |
51 | 5057 | ldiaz | |
52 | 10627 | caballero | } catch (ReadDriverException e) {
|
53 | 5057 | ldiaz | throw new SAXException(e); |
54 | } |
||
55 | handler.endElement("", "", ((FLayer) layer).getName()); |
||
56 | } |
||
57 | } |