Revision 47606 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.sqlite/org.gvsig.sqlite.provider/src/main/java/org/gvsig/sqlite/dal/expressionbuilderformatter/ST_Intersects.java

View differences:

ST_Intersects.java
16 16
import org.gvsig.fmap.dal.SQLBuilder;
17 17
import static org.gvsig.fmap.dal.SQLBuilder.PROP_FEATURE_TYPE;
18 18
import static org.gvsig.fmap.dal.SQLBuilder.PROP_QUERY;
19
import static org.gvsig.fmap.dal.SQLBuilder.PROP_TABLE;
19 20
import static org.gvsig.fmap.dal.SQLBuilder.PROP_TABLENAME;
21
import org.gvsig.fmap.dal.SQLBuilder.TableNameBuilder;
20 22
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
21 23
import org.gvsig.fmap.dal.feature.FeatureQuery;
22 24
import org.gvsig.fmap.dal.feature.FeatureType;
23 25
import org.gvsig.fmap.geom.Geometry;
26
import org.gvsig.fmap.geom.GeometryUtils;
24 27
import org.gvsig.sqlite.dal.geopackage.GeopackageUtils;
25 28
import org.gvsig.sqlite.dal.geopackage.index.GeopackageIndex;
26 29

  
......
73 76
        }
74 77
        String tableName = (String) column.getProperty(PROP_TABLENAME);
75 78
        if( StringUtils.isBlank(tableName) ) {
76
            return null;
79
            TableNameBuilder tableNameBuilder = (TableNameBuilder) column.getProperty(PROP_TABLE);
80
            if(tableNameBuilder == null){
81
                return null;
82
            }
83
            tableName = tableNameBuilder.getName();
77 84
        }
78 85
        FeatureType featureType = (FeatureType) column.getProperty(PROP_FEATURE_TYPE);
79 86
        if( featureType==null ) {
......
109 116
            MutableSymbolTable symbolTable = expressionManager.createSymbolTable();
110 117
            // Le pasamos el optimize para que resuelva las expresiones constantes
111 118
            // a ver si es una geometria.
119
            geomcode.link(symbolTable);
112 120
            geomcode = expressionManager.optimize(symbolTable, geomcode);
113 121
        } catch(Exception ex) {
114 122
            return null;
......
118 126
            if( go instanceof Geometry ) {
119 127
                String filter = index.getBBoxIntersectsFilter(tableName, attrid.getName(), attrgeom.getName(), (Geometry)go);
120 128
                return filter;
129
            } else if (go instanceof byte[]) {
130
                try {
131
                    Geometry geom = GeometryUtils.createFrom(go);
132
                    String filter = index.getBBoxIntersectsFilter(tableName, attrid.getName(), attrgeom.getName(), geom);
133
                    return filter;
134
                } catch(Exception ex) {
135
                    
136
                }
121 137
            }
122 138
        }
123 139
        String filter = index.getBBoxIntersectsFilter(

Also available in: Unified diff