Changeset 678:caee6223be94


Ignore:
Timestamp:
11/01/12 00:18:19 (6 years ago)
Author:
Babis Nikolaou <charnik@…>
Branch:
default
Message:

added full support for capabilities of QueryBean? (the most needed one)

Location:
endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities
Files:
1 added
10 edited

Legend:

Unmodified
Added
Removed
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/AutoDiscoveryCapabilities.java

    r675 r678  
    9696        @Override 
    9797        public RequestCapabilities getQueryCapabilities() { 
     98                RequestCapabilities request = new RequestCapabilitiesImpl(); 
     99                 
    98100                String query = "SELECT * WHERE {?s ?p ?o. FILTER(regex(str(?p), \"geometry\"))} LIMIT 1"; 
    99                 String[] queryParams = {"sparqlQuery", "query"}; 
    100                 String[] formatParams = {"format", null}; 
     101                 
     102                String[] queryParams = {"SPARQLQuery", "query"}; 
     103                 
    101104                String[] formatValues = {"XML", "KML", "KMZ", "GeoJSON", "HTML", "TSV"}; 
    102                 String[] acceptValues = {null, "application/sparql-results+xml", "text/tab-separated-values",  
     105                 
     106                String[] acceptValues = {"application/sparql-results+xml", "text/tab-separated-values",  
    103107                                "application/vnd.google-earth.kml+xml", "application/vnd.google-earth.kmz", "text/html",  
    104108                                "application/json"}; 
    105109                 
     110                // check query parameter and format parameter 
    106111                for (int q = 0; q < queryParams.length; q++) { 
    107                         for (int f = 0; f < formatParams.length; f++) { 
    108                                 for (int v = 0; v < formatValues.length; v++) { 
    109                                         for (int a = 0; a < acceptValues.length; a++) { 
    110                                                 HttpClient hc = new HttpClient(); 
    111                                                  
    112                                                 // create a post method to execute 
    113                                                 PostMethod method = new PostMethod(getConnectionURL() + "/Query"); 
    114                                                  
    115                                                 // set the query parameter 
    116                                                 method.setParameter(queryParams[q], query); 
    117                                                 if (formatParams[f] != null) { 
    118                                                         method.setParameter(formatParams[f], formatValues[v]); 
    119                                                          
    120                                                 } else { // check for accept value as well, but only when 
    121                                                                  // we are not using the format parameter  
    122                                                  
    123                                                         // set the accept format 
    124                                                         if (acceptValues[a] != null) { 
    125                                                                 method.addRequestHeader("Accept", acceptValues[a]); 
    126                                                         } 
    127                                                 } 
    128                                                  
    129                                                 try { 
    130                                                         // execute the method 
    131                                                         int statusCode = hc.executeMethod(method); 
    132                                                          
    133                                                         //System.out.println(method.getResponseBodyAsString()); 
    134                                                         System.out.println(statusCode); 
    135                                                          
    136                                                         if (statusCode == 200) { 
    137                                                                 if (formatParams[f] != null) { 
    138                                                                         System.err.println(queryParams[q] + ", " + formatParams[f] + ", " + formatValues[v]); 
    139                                                                          
    140                                                                 } else { 
    141                                                                         System.err.println(queryParams[q] + ", " + acceptValues[a]);     
    142                                                                 } 
    143                                                                  
    144                                                         } 
    145          
    146                                                 } catch (IOException e) { 
    147                                                         e.printStackTrace(); 
    148                                                          
    149                                                 } finally { 
    150                                                         // release the connection. 
    151                                                         method.releaseConnection(); 
    152                                                 } 
     112                        for (int v = 0; v < formatValues.length; v++) { 
     113                                HttpClient hc = new HttpClient(); 
     114                                 
     115                                // create a post method to execute 
     116                                PostMethod method = new PostMethod(getConnectionURL() + "/Query"); 
     117                                 
     118                                // set the query parameter 
     119                                method.setParameter(queryParams[q], query); 
     120                                 
     121                                // set the format parameter 
     122                                method.setParameter("format", formatValues[v]); 
     123                                         
     124                                try { 
     125                                        // execute the method 
     126                                        int statusCode = hc.executeMethod(method); 
     127                                         
     128                                        if (statusCode == 301 || statusCode == 200) { 
     129                                                //System.out.println(queryParams[q] + ", " + formatValues[v]); 
     130                                                request.getParametersObject().addParameter(new Parameter(queryParams[q], null)); 
     131                                                request.getParametersObject().addParameter(new Parameter("format", null)); 
     132                                                request.getParametersObject().getParameter("format").addAcceptedValue(formatValues[v]); 
    153133                                        } 
     134         
     135                                } catch (IOException e) { 
     136                                        e.printStackTrace(); 
     137                                         
     138                                } finally { 
     139                                        // release the connection. 
     140                                        method.releaseConnection(); 
    154141                                } 
    155142                        } 
    156143                } 
    157144                 
    158                 return null; 
     145                // check query parameter and accept header 
     146                for (int q = 0; q < queryParams.length; q++) { 
     147                        for (int a = 0; a < acceptValues.length; a++) { 
     148                                HttpClient hc = new HttpClient(); 
     149                                 
     150                                // create a post method to execute 
     151                                PostMethod method = new PostMethod(getConnectionURL() + "/Query"); 
     152                                 
     153                                // set the query parameter 
     154                                method.setParameter(queryParams[q], query); 
     155                                 
     156                                // check for accept value as well  
     157                                // set the accept format 
     158                                method.addRequestHeader("Accept", acceptValues[a]); 
     159                                 
     160                                try { 
     161                                        // execute the method 
     162                                        int statusCode = hc.executeMethod(method); 
     163                                         
     164                                        if (statusCode == 301 || statusCode == 200) { 
     165                                                //System.out.println(queryParams[q] + ", " + acceptValues[a]); 
     166                                                request.getParametersObject().addParameter(new Parameter(queryParams[q], null)); 
     167                                                request.getParametersObject().addParameter(new Parameter("Accept", null)); 
     168                                                request.getParametersObject().getParameter("Accept").addAcceptedValue(acceptValues[a]); 
     169                                        } 
     170 
     171                                } catch (IOException e) { 
     172                                        e.printStackTrace(); 
     173                                         
     174                                } finally { 
     175                                        // release the connection. 
     176                                        method.releaseConnection(); 
     177                                } 
     178                        } 
     179                } 
     180                 
     181                return request; 
    159182        } 
    160183 
    161184        @Override 
    162185        public RequestCapabilities getUpdateCapabilities() { 
    163                 // TODO Auto-generated method stub 
    164186                return null; 
    165187        } 
     
    167189        @Override 
    168190        public RequestCapabilities getStoreCapabilities() { 
    169                 // TODO Auto-generated method stub 
    170191                return null; 
    171192        } 
     
    173194        @Override 
    174195        public RequestCapabilities getBrowseCapabilities() { 
    175                 // TODO Auto-generated method stub 
    176196                return null; 
    177197        } 
     
    179199        @Override 
    180200        public RequestCapabilities getConnectionCapabilities() { 
    181                 // TODO Auto-generated method stub 
    182201                return null; 
    183202        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/BrowseBeanCapabilities.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.Collection; 
    1312import java.util.List; 
    1413 
     
    3534         
    3635        @Override 
    37         public Collection<Parameter> getParameters() { 
    38                 // TODO Auto-generated method stub 
     36        public Parameters getParametersObject() { 
    3937                return null; 
    4038        } 
     
    4240        @Override 
    4341        public List<String> getAcceptedValues(String param) { 
    44                 // TODO Auto-generated method stub 
    4542                return null; 
    4643        } 
     
    4845        @Override 
    4946        public boolean isOptional(String param) { 
    50                 // TODO Auto-generated method stub 
    5147                return false; 
    5248        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/CapabilitiesBean.java

    r675 r678  
    115115                out.println("Supports CONSTRUCT                         : " + getYesNo(caps.supportsDescribing())); 
    116116                out.println("Supports browsing                          : "     + getYesNo(caps.supportsBrowsing())); 
     117                out.println(); 
    117118                 
    118119                if (caps instanceof AutoDiscoveryCapabilities) { 
    119120                        AutoDiscoveryCapabilities autocaps = (AutoDiscoveryCapabilities) caps; 
    120121                        autocaps.setEndpointDetails(request.getServerName(), request.getServerPort(), appName); 
     122                        //autocaps.setEndpointDetails("localhost", 8080, "NOA"); 
    121123                } 
    122124                 
    123                 caps.getQueryCapabilities(); 
     125                RequestCapabilities reCap = caps.getQueryCapabilities(); 
     126                 
     127                for (Parameter param : reCap.getParametersObject().getParameters()) { 
     128                        out.println("Supports parameter  : " + param.getName()); 
     129                         
     130                        if (param.getAcceptedValues().size() > 0) { 
     131                                out.println("    Accepted values : "); 
     132                                for (String acceptedValue : param.getAcceptedValues()) { 
     133                                        out.println("\t\t      " + acceptedValue); 
     134                                } 
     135                        } 
     136                } 
    124137        } 
    125138         
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/ConnectionBeanCapabilities.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.Collection; 
    1312import java.util.List; 
    1413 
     
    3534         
    3635        @Override 
    37         public Collection<Parameter> getParameters() { 
    38                 // TODO Auto-generated method stub 
     36        public Parameters getParametersObject() { 
    3937                return null; 
    4038        } 
     
    4240        @Override 
    4341        public List<String> getAcceptedValues(String param) { 
    44                 // TODO Auto-generated method stub 
    4542                return null; 
    4643        } 
     
    4845        @Override 
    4946        public boolean isOptional(String param) { 
    50                 // TODO Auto-generated method stub 
    5147                return false; 
    5248        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/Parameter.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.List; 
    13 import java.util.Vector; 
     12import java.util.HashSet; 
     13import java.util.Set; 
    1414 
    1515/** 
     
    2222        private String value; 
    2323         
    24         private List<String> acceptedValues; 
     24        private Set<String> acceptedValues; 
    2525         
    2626        public Parameter(String name, String value) { 
     
    2828                this.value = value; 
    2929                 
    30                 this.acceptedValues = new Vector<String>(); 
     30                this.acceptedValues = new HashSet<String>(); 
    3131        } 
    3232         
     
    4343        } 
    4444         
    45         public List<String> getAcceptedValues() { 
     45        public Set<String> getAcceptedValues() { 
    4646                return acceptedValues; 
    4747        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/Parameters.java

    r675 r678  
    2525        } 
    2626         
     27        /** 
     28         * Adds a new parameter. If the parameter already exists, 
     29         * the operation does nothing. 
     30         *  
     31         * @param param 
     32         */ 
    2733        public void addParameter(Parameter param) { 
    28                 params.put(param.getName(), param); 
     34                if (params.get(param.getName()) == null) { 
     35                        params.put(param.getName(), param); 
     36                } 
    2937        } 
    3038         
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/QueryBeanCapabilities.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.Collection; 
    1312import java.util.List; 
    1413 
     
    3534         
    3635        @Override 
    37         public Collection<Parameter> getParameters() { 
     36        public Parameters getParametersObject() { 
    3837                return null; 
    3938        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/RequestCapabilities.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.Collection; 
    1312import java.util.List; 
    1413 
     
    2827         * @return 
    2928         */ 
    30         public Collection<Parameter> getParameters(); 
     29        public Parameters getParametersObject(); 
    3130         
    3231        /** 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/StoreBeanCapabilities.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.Collection; 
    1312import java.util.List; 
    1413 
     
    3534         
    3635        @Override 
    37         public Collection<Parameter> getParameters() { 
    38                 // TODO Auto-generated method stub 
     36        public Parameters getParametersObject() { 
    3937                return null; 
    4038        } 
     
    4240        @Override 
    4341        public List<String> getAcceptedValues(String param) { 
    44                 // TODO Auto-generated method stub 
    4542                return null; 
    4643        } 
     
    4845        @Override 
    4946        public boolean isOptional(String param) { 
    50                 // TODO Auto-generated method stub 
    5147                return false; 
    5248        } 
  • endpoint/src/main/java/eu/earthobservatory/org/StrabonEndpoint/capabilities/UpdateBeanCapabilities.java

    r675 r678  
    1010package eu.earthobservatory.org.StrabonEndpoint.capabilities; 
    1111 
    12 import java.util.Collection; 
    1312import java.util.List; 
    1413 
     
    3534         
    3635        @Override 
    37         public Collection<Parameter> getParameters() { 
    38                 // TODO Auto-generated method stub 
     36        public Parameters getParametersObject() { 
    3937                return null; 
    4038        } 
     
    4240        @Override 
    4341        public List<String> getAcceptedValues(String param) { 
    44                 // TODO Auto-generated method stub 
    4542                return null; 
    4643        } 
     
    4845        @Override 
    4946        public boolean isOptional(String param) { 
    50                 // TODO Auto-generated method stub 
    5147                return false; 
    5248        } 
Note: See TracChangeset for help on using the changeset viewer.