Changeset 44:7bbf921b454d


Ignore:
Timestamp:
03/12/12 14:27:44 (6 years ago)
Author:
Manos Karpathiotakis <mk@…>
Branch:
default
Children:
45:9199c0cbaa91, 46:b74d143a7ef7
Message:

Fixed case where stRDF datatype was not present in spatial constructs related to aggregate clause.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • evaluation/src/main/java/org/openrdf/query/algebra/evaluation/iterator/StSPARQLGroupIterator.java

    r24 r44  
    1919import info.aduna.lang.ObjectUtil; 
    2020 
     21import org.openrdf.model.URI; 
    2122import org.openrdf.model.Literal; 
    2223import org.openrdf.model.Value; 
     
    2425import org.openrdf.model.impl.LiteralImpl; 
    2526import org.openrdf.model.impl.NumericLiteralImpl; 
     27import org.openrdf.model.impl.URIImpl; 
    2628import org.openrdf.model.impl.ValueFactoryImpl; 
    2729import org.openrdf.model.vocabulary.XMLSchema; 
     
    350352                                try { 
    351353                                        val = evaluateConstruct(expr, this.prototype); 
    352                                 } catch (Exception e) { 
     354                                        } catch (Exception e) { 
    353355                                        e.printStackTrace(); 
    354356                                } 
    355357                                if (val != null) { 
    356                                         sol.setBinding(name,val); 
     358                                        Literal wkt = new LiteralImpl(val.toString(),new URIImpl(StrabonPolyhedron.ogcGeometry)); 
     359                                        sol.setBinding(name,wkt); 
    357360                                } 
    358361 
  • generaldb/src/main/java/org/openrdf/sail/generaldb/evaluation/GeneralDBEvaluation.java

    r43 r44  
    3333 
    3434import org.opengis.filter.spatial.Disjoint; 
     35import org.openrdf.model.Literal; 
    3536import org.openrdf.model.Value; 
    3637import org.openrdf.model.impl.BooleanLiteralImpl; 
     
    245246        public Value evaluate(FunctionCall fc, BindingSet bindings) 
    246247        { 
    247                 System.out.println("FunctionCall placeholder"); 
     248//              System.out.println("FunctionCall placeholder"); 
    248249 
    249250                if(fc.getParentNode() instanceof Avg) 
     
    334335                                        leftGeom = ((GeneralDBPolyhedron) leftResult).getPolyhedron().getGeometry(); 
    335336                                } 
     337                                else if(leftResult instanceof Literal) 
     338                                {        
     339                                        /** 
     340                                         * Duplicate work done here in order to retain the literal's datatype... 
     341                                         * Instead of only utilizing StrabonPolyhedron items, I converted them to Literals 
     342                                         * in order to have them appear in Select Clause along with the appropriate datatype. 
     343                                         */ 
     344                                        leftGeom = new StrabonPolyhedron(((Literal) leftResult).getLabel()).getGeometry(); 
     345                                } 
    336346                                else 
    337347                                {       //SHOULD NEVER REACH THIS CASE! 
     
    347357                                        rightGeom = ((GeneralDBPolyhedron) rightResult).getPolyhedron().getGeometry(); 
    348358                                } 
     359                                else if(rightResult instanceof Literal) 
     360                                {        
     361                                        /** 
     362                                         * Duplicate work done here in order to retain the literal's datatype... 
     363                                         * Instead of only utilizing StrabonPolyhedron items, I converted them to Literals 
     364                                         * in order to have them appear in Select Clause along with the appropriate datatype. 
     365                                         */ 
     366                                        rightGeom = new StrabonPolyhedron(((Literal) rightResult).getLabel()).getGeometry(); 
     367                                } 
    349368                                else 
    350369                                {       //SHOULD NEVER REACH THIS CASE! 
     
    410429                        } 
    411430                        else { 
     431                        //Default Sesame Behavior 
    412432                                List<ValueExpr> args = fc.getArgs(); 
    413433 
Note: See TracChangeset for help on using the changeset viewer.