for (ParameterExpressionType parameter : desc.getParameter()) { String value = null;
kvp.put("VERSION", getVersion()); kvp.put("REQUEST", "GetFeature"); kvp.put("STOREDQUERY_ID", desc.getId());
/** The feature types the stored query returns result for. */ public List<QName> getFeatureTypes() { List<QName> types = new ArrayList(); for (QueryExpressionTextType qe : queryDef.getQueryExpressionText()) { types.addAll(qe.getReturnFeatureTypes()); } return types; }
for (QueryExpressionTextType qe : queryDef.getQueryExpressionText()) { if (!returnTypes.contains(qName) && !allowAnyReturnType && !isParameter(qName.getLocalPart(), queryDef.getParameter())) { throw new WFSException( String.format(
public void refreshItems(String storedQueryId) { items.clear(); if (storedQueryId != null) { StoredQueryDescriptionType desc; try { WFSDataStore contentStore = getContentDataStore(); desc = contentStore.getStoredQueryDescriptionType(storedQueryId); } catch (IOException ie) { throw new RuntimeException("Unable to describe stored query", ie); } for (ParameterExpressionType pet : desc.getParameter()) { items.add(createStoredQueryParameterAttribute(storedQueryId, pet)); } } }
/** Uniquely identifying name of the stored query. */ public String getName() { return queryDef.getId(); }
void validateStoredQuery(CreateStoredQueryType request, StoredQueryDescriptionType sq) throws WFSException { if (sq.getQueryExpressionText().isEmpty()) { throw new WFSException(request, "Stored query does not specify any queries"); for (QueryExpressionTextType queryExpressionTextType : sq.getQueryExpressionText()) { String language = queryExpressionTextType.getLanguage(); if (language != null && !storedQueryProvider.supportsLanguage(language)) { String language = sq.getQueryExpressionText().get(0).getLanguage(); for (int i = 1; i < sq.getQueryExpressionText().size(); i++) { if (!language.equals(sq.getQueryExpressionText().get(i).getLanguage())) { throw new WFSException( request,
for (ParameterExpressionType p : sq.getQuery().getParameter()) { if (kvp.containsKey(p.getName())) { ParameterType param = factory.createParameterType();
storedQuery.setId(desc.getId());
public List<QueryType> compile(StoredQueryType query) { List list = new ArrayList(); for (QueryExpressionTextType qe : queryDef.getQueryExpressionText()) {
for (ParameterExpressionType parameter : desc.getParameter()) { String value = null;
kvp.put("VERSION", getVersion()); kvp.put("REQUEST", "GetFeature"); kvp.put("STOREDQUERY_ID", desc.getId());
for (ParameterExpressionType p : sq.getQuery().getParameter()) { if (kvp.containsKey(p.getName())) { ParameterType param = factory.createParameterType();
public CreateStoredQueryResponseType run(CreateStoredQueryType request) throws WFSException { for (StoredQueryDescriptionType sqd : request.getStoredQueryDefinition()) { if (storedQueryProvider.getStoredQuery(sqd.getId()) != null) { WFSException e = new WFSException( request, "Stored query already exists", WFSException.DUPLICATE_STORED_QUERY_ID_VALUE); e.setLocator(sqd.getId()); throw e; } validateStoredQuery(request, sqd); try { storedQueryProvider.createStoredQuery(sqd); } catch (Exception e) { throw new WFSException(request, "Error occured creating stored query", e); } } Wfs20Factory factory = Wfs20Factory.eINSTANCE; CreateStoredQueryResponseType response = factory.createCreateStoredQueryResponseType(); response.setStatus("OK"); return response; }
storedQuery.setId(desc.getId());