public QName getStoredQueryReturnType(String storedQueryId) throws IOException { ListStoredQueriesResponseType list = getStoredQueryListResponse(); for (StoredQueryListItemType query : list.getStoredQuery()) { if (query.getId().equals(storedQueryId)) { return query.getReturnFeatureType().get(0); } } throw new IOException("Unknown stored query " + storedQueryId); }
item.setId(sq.getName()); item.getTitle().add(title); item.getReturnFeatureType().addAll(sq.getFeatureTypes()); } else { ft.getName(), ft.getNamespace().getPrefix())) .forEach(qn -> item.getReturnFeatureType().add(qn));
public static String createStoredQueryTitle(StoredQueryListItemType object) { StringBuilder ret = new StringBuilder(); TitleType title = null; for (TitleType t : object.getTitle()) { if (title == null) { title = t; } else if (title.getValue() == null || title.getValue().length() == 0) { title = t; } } if (title != null) { ret.append(title.getValue()).append(" (").append(object.getId()).append(")"); } else { ret.append(object.getId()); } return ret.toString(); }
@Override protected void encode(Encoder encoder, Object value, OutputStream output, Operation op) throws IOException, ServiceException { // check the returned types, they are qnames and we need to declare their prefixes ListStoredQueriesResponseType response = (ListStoredQueriesResponseType) value; for (StoredQueryListItemType sq : response.getStoredQuery()) { if (sq.getReturnFeatureType() != null) { for (QName qName : sq.getReturnFeatureType()) { if (qName.getNamespaceURI() != null && qName.getPrefix() != null) { encoder.getNamespaces() .declarePrefix(qName.getPrefix(), qName.getNamespaceURI()); } } } } encoder.encode(value, WFS.ListStoredQueriesResponse, output); } }
@Override protected List<StoredQuery> load() { List<StoredQuery> ret = new ArrayList<StoredQuery>(); for (StoredQueryListItemType sqlit : listStoredQueries()) { StoredQuery item = new StoredQuery(); item.setStoredQueryId(sqlit.getId()); item.setTitle(createStoredQueryTitle(sqlit)); ret.add(item); } return ret; } }
public QName getStoredQueryReturnType(String storedQueryId) throws IOException { ListStoredQueriesResponseType list = getStoredQueryListResponse(); for (StoredQueryListItemType query : list.getStoredQuery()) { if (query.getId().equals(storedQueryId)) { return query.getReturnFeatureType().get(0); } } throw new IOException("Unknown stored query " + storedQueryId); }