Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.sqlite / org.gvsig.sqlite.provider / src / main / java / org / gvsig / sqlite / dal / geopackage / index / GeopackageIndexRTree.java @ 47456

History | View | Annotate | Download (2.23 KB)

1
package org.gvsig.sqlite.dal.geopackage.index;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5
import org.gvsig.sqlite.dal.utils.TemplateUtils;
6

    
7
/**
8
 *
9
 * @author jjdelcerro
10
 */
11
public class GeopackageIndexRTree extends AbstractGeopackageIndex {
12

    
13
    // 
14
    // https://github.com/opengeospatial/geopackage/blob/master/spec/core/annexes/extension_spatialindex.adoc
15
    //
16
    
17
    private static final String ATTRIBUTE_INDEX_FLAG_NAME = "gpkg_rtree_index";
18
    private static final String GROUP_NAME = "rtree";
19
    
20

    
21
    public GeopackageIndexRTree() {
22

    
23
    }
24
    
25
    @Override
26
    protected String getGroup() {
27
        return GROUP_NAME;
28
    }
29

    
30
    @Override
31
    protected String getAttributeIndexFlagName() {
32
        return ATTRIBUTE_INDEX_FLAG_NAME;
33
    }
34
        
35
    @Override
36
    public List<String> getCreateIndexSQL(String tablename, String fieldnamegeom, String fieldnameid) {
37
        List<String> sqls = new ArrayList<>();
38
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_table_gpkg_extensions"));
39
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_rtree_table", tablename, fieldnamegeom));
40
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_trigger_rtree_delete", tablename, fieldnamegeom, fieldnameid));
41
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_trigger_rtree_insert", tablename, fieldnamegeom, fieldnameid));
42
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_trigger_rtree_update1", tablename, fieldnamegeom, fieldnameid));
43
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_trigger_rtree_update2", tablename, fieldnamegeom, fieldnameid));
44
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_trigger_rtree_update3", tablename, fieldnamegeom, fieldnameid));
45
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "create_trigger_rtree_update4", tablename, fieldnamegeom, fieldnameid));
46
        sqls.add(TemplateUtils.getSqlTemplate(getGroup(), "insert_into_table_gpkg_extensions", tablename, fieldnamegeom));
47

    
48
        return sqls;
49
    }
50

    
51
    public String getEnvelopeSQL(String tablename, String fieldnamegeom) {
52
        String sql = TemplateUtils.getSqlTemplate(getGroup(), "bbox_of_index", tablename, fieldnamegeom);
53
        return sql;
54
    }
55
}