public StoredQueryProvider getStoredQueryProvider() { return new StoredQueryProvider(getCatalog()); }
/** * Creates a new stored query. * * @param def The stored query definition. */ public StoredQuery createStoredQuery(StoredQueryDescriptionType query) { return createStoredQuery(query, true); }
/** * Retrieves a stored query by name. * * @param name Identifying name of the stored query. */ public StoredQuery getStoredQuery(String name) { // default? if (StoredQuery.DEFAULT.getName().equals(name)) { return StoredQuery.DEFAULT; } try { Resource res = storedQueryDir().get(toFilename(name)); if (res.getType() != Type.RESOURCE) { return null; } return parseStoredQuery(res); } catch (Exception e) { throw new RuntimeException("Error accessign stoed query: " + name, e); } }
/** * Removes an existing stored query. * * @param query The stored query */ public void removeStoredQuery(StoredQuery query) { storedQueryDir().get(toFilename(query.getName())).delete(); }
/** Lists all the stored queries provided. */ public List<StoredQuery> listStoredQueries() { Parser p = new Parser(new WFSConfiguration()); List<StoredQuery> queries = new ArrayList(); // add the default as mandated by spec queries.add(StoredQuery.DEFAULT); // add user created ones Resource dir = storedQueryDir(); for (Resource f : dir.list()) { try { queries.add(parseStoredQuery(f, p)); } catch (Exception e) { LOGGER.log(Level.WARNING, "Error occured parsing stored query: " + f, e); } } return queries; }
@Test public void whenStoredQueryDefinitionCreatedByFileItIsReturnedInTheListOfStoredQueries() throws IOException { createMyStoredQueryDefinitionFile(storedQueryProvider.storedQueryDir().dir()); List<StoredQuery> queries = storedQueryProvider.listStoredQueries(); assertThat(queries, hasSize(2)); assertThat( storedQueryProvider.getStoredQuery("urn:ogc:def:query:OGC-WFS::GetFeatureById"), is(notNullValue())); assertThat( storedQueryProvider.getStoredQuery(MY_STORED_QUERY).getName(), is(MY_STORED_QUERY)); }
@Test public void canRemoveStoredQueryDefinition() throws IOException { File myStoredQueryDefinition = createMyStoredQueryDefinitionFile(storedQueryProvider.storedQueryDir().dir()); List<StoredQuery> queries = storedQueryProvider.listStoredQueries(); assertThat(queries, hasSize(2)); StoredQuery myStoredQuery = storedQueryProvider.getStoredQuery(MY_STORED_QUERY); assertThat(myStoredQuery.getName(), is(MY_STORED_QUERY)); storedQueryProvider.removeStoredQuery(myStoredQuery); assertThat(myStoredQueryDefinition.exists(), is(false)); assertThat(storedQueryProvider.getStoredQuery(myStoredQuery.getName()), is(nullValue())); }
@Test public void canRemoveAllStoredQueryDefinitions() throws IOException { File myStoredQueryDefinition = createMyStoredQueryDefinitionFile(storedQueryProvider.storedQueryDir().dir()); List<StoredQuery> queries = storedQueryProvider.listStoredQueries(); assertThat(queries, hasSize(2)); storedQueryProvider.removeAll(); assertThat(myStoredQueryDefinition.exists(), is(false)); assertThat(storedQueryProvider.getStoredQuery(MY_STORED_QUERY), is(nullValue())); }
StoredQueryProvider sqp = new StoredQueryProvider(catalog); for (URI storedQueryId : storedQueryIds) { StoredQuery sq = sqp.getStoredQuery(storedQueryId.toString()); if (sq == null) { WFSException exception =
@Test public void whenStoredQueryDefinitionCreatedByDescriptionItIsReturnedInTheListOfStoredQueries() throws Exception { StoredQueryDescriptionType storedQueryDescriptionType = createMyStoredQueryDefinitionInStoredQueryDescriptionType(); StoredQuery result = storedQueryProvider.createStoredQuery(storedQueryDescriptionType); assertThat(result.getName(), is(MY_STORED_QUERY)); assertThat( storedQueryProvider.getStoredQuery(MY_STORED_QUERY).getName(), is(MY_STORED_QUERY)); }
@Test public void whenNoStoredQueriesDefinedAGetFeatureByIdQueryIsReturned() { List<StoredQuery> queries = storedQueryProvider.listStoredQueries(); assertThat(queries, hasSize(1)); assertThat( queries.get(0).getName(), is(equalTo("urn:ogc:def:query:OGC-WFS::GetFeatureById"))); assertThat( storedQueryProvider.getStoredQuery("urn:ogc:def:query:OGC-WFS::GetFeatureById"), is(notNullValue())); }
@Before public void clearQueries() { new StoredQueryProvider(getCatalog()).removeAll(); }
public ExecutionStatusType run(DropStoredQueryType request) throws WFSException { if (request.getId() == null) { throw new WFSException(request, "No stored query id specified"); } StoredQuery query = storedQueryProvider.getStoredQuery(request.getId()); if (query != null) { storedQueryProvider.removeStoredQuery(query); } else { WFSException exception = new WFSException( request, String.format("Stored query %s does not exist.", request.getId()), ServiceException.INVALID_PARAMETER_VALUE); // CITE tests vagary, the XML uses "id" and KVP uses "STOREDQUERY_ID", the CITE tests // mandate "id" // in all bindings exception.setLocator("id"); throw exception; } Wfs20Factory factory = Wfs20Factory.eINSTANCE; ExecutionStatusType response = factory.createExecutionStatusType(); response.setStatus("OK"); return response; } }
if (language != null && !storedQueryProvider.supportsLanguage(language)) { WFSException e = new WFSException( storedQueryProvider.createStoredQuery(sq, false).validate(); } catch (WFSException e) { throw new WFSException(request, e.getMessage(), e, e.getCode());
/** Removes all stored queries. */ public void removeAll() { for (Resource file : storedQueryDir().list()) { file.delete(); } }
GET_FEATURE_BY_ID.equalsIgnoreCase(storedQueryId) || GET_FEATURE_BY_ID_DEPRECATED.equals(storedQueryId); StoredQuery storedQuery = storedQueryProvider.getStoredQuery(storedQueryId); if (storedQuery == null) { WFSException exception =
ListStoredQueriesResponseType response = factory.createListStoredQueriesResponseType(); for (StoredQuery sq : storedQueryProvider.listStoredQueries()) { StoredQueryListItemType item = factory.createStoredQueryListItemType(); item.setId(sq.getName());
/** * Creates a new stored query specifying whether to persist the query to disk or not. * * @param def The stored query definition. * @param store Whether to persist the query or not. */ public StoredQuery createStoredQuery(StoredQueryDescriptionType query, boolean store) { StoredQuery sq = new StoredQuery(query, catalog); if (store) { putStoredQuery(sq); } return sq; }
StoredQuery parseStoredQuery(Resource file) throws Exception { return parseStoredQuery(file, new Parser(new WFSConfiguration())); }
@Test public void testGetLanguage() { assertThat(storedQueryProvider.getLanguage(), is(equalTo(StoredQueryProvider.LANGUAGE_20))); }