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 |
|