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