Statistics
| Revision:

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
}