Statistics
| Revision:

root / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / layers / layerOperations / VectorialXMLItem.java @ 10627

History | View | Annotate | Download (1.5 KB)

1
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

    
9
import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
10
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

    
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
        public FLayer getLayer(){
25
                return layer;
26
        }
27
        /**
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 (ReadDriverException e) {
53
                        throw new SAXException(e);
54
                }
55
                handler.endElement("", "", ((FLayer) layer).getName());
56
        }
57
}
58