@Override protected void setProperty(EObject eObject, String property, Object value, boolean lax) { super.setProperty(eObject, property, value, lax); if (!lax) { if ("typeNames".equalsIgnoreCase(property)) { QueryType q = (QueryType) eObject; // turn into list of qname List qNames = new ArrayList(); for (Object s : q.getTypeNames()) { try { qNames.add(new XSQNameBinding(namespaceContext).parse(null, s)); } catch (Exception e) { throw new RuntimeException(e); } } q.getTypeNames().clear(); q.getTypeNames().addAll(qNames); } } }
@Override public Element encode(Object object, Document document, Element value) throws Exception { Element e = super.encode(object, document, value); QueryType resultType = (QueryType) object; Iterator it = resultType.getAbstractProjectionClause().iterator(); while (it.hasNext()) { Element node = document.createElementNS(WFS.NAMESPACE, "PropertyName"); node.setTextContent(Converters.convert(it.next(), String.class)); e.appendChild(node); } return e; } }
@Override public Object getProperty(Object object, QName name) throws Exception { if ("aliases".equalsIgnoreCase(name.getLocalPart())) { List aliases = ((QueryType) object).getAliases(); if (aliases.size() == 0) return null; StringBuffer ret = new StringBuffer(); for (Object o : aliases) { String alias = (String) o; if (ret.length() > 0) ret.append(","); ret.append(alias); } return ret.toString(); } else if ("typeNames".equalsIgnoreCase(name.getLocalPart())) { StringBuilder s = new StringBuilder(); for (Object typeName : ((QueryType) object).getTypeNames()) { if (typeName instanceof Collection) { typeName = ((Collection) typeName).iterator().next(); } s.append(Converters.convert(typeName, String.class)); s.append(","); } s.setLength(s.length() - 1); return s.toString(); } else if (("AbstractProjectionClause").equalsIgnoreCase(name.getLocalPart())) { return null; } return super.getProperty(object, name); }
wfsQuery.getTypeNames().add(typeName); wfsQuery.setFilter(supportedFilter); wfsQuery.setSrsName(new URI(srsName)); } catch (URISyntaxException e) { throw new RuntimeException("Can't create a URI from the query CRS: " + srsName, e); boolean retrieveAllProperties = propertyNames == null; if (!retrieveAllProperties) { List<QName> propertyName = wfsQuery.getPropertyNames(); for (String propName : propertyNames) {
wfsQuery.getTypeNames().add(typeName); wfsQuery.setFilter(supportedFilter); wfsQuery.setSrsName(new URI(srsName)); } catch (URISyntaxException e) { throw new RuntimeException("Can't create a URI from the query CRS: " + srsName, e); boolean retrieveAllProperties = propertyNames == null; if (!retrieveAllProperties) { List<QName> propertyName = wfsQuery.getPropertyNames(); for (String propName : propertyNames) {
private void fixQueriesForLock(EList<AbstractQueryExpressionType> queries) { for (int i = 0; i < queries.size(); i++) { Object obj = queries.get(i); if (obj instanceof QueryType) { QueryType query = (QueryType) queries.get(0); if (query.getTypeNames().size() > 1) { List<QueryType> expanded = new ArrayList<>(); for (Object typeName : query.getTypeNames()) { QueryType copy = EcoreUtil.copy(query); copy.getTypeNames().clear(); copy.getTypeNames().add(typeName); expanded.add(copy); } queries.remove(i); queries.addAll(i, expanded); i += expanded.size(); } } } }
@Override protected void setProperty(EObject eObject, String property, Object value, boolean lax) { super.setProperty(eObject, property, value, lax); if (!lax) { if ("typeNames".equalsIgnoreCase(property)) { QueryType q = (QueryType)eObject; //turn into list of qname List qNames = new ArrayList(); for (Object s : q.getTypeNames()) { try { qNames.add(new XSQNameBinding(namespaceContext).parse(null, s)); } catch (Exception e) { throw new RuntimeException(e); } } q.getTypeNames().clear(); q.getTypeNames().addAll(qNames); } } }
QName typeName = (QName) query.getTypeNames().get(0); Catalog catalog = gs.getCatalog();
QName typeName = (QName) query.getTypeNames().iterator().next(); FeatureTypeInfo featureType = catalog.getFeatureTypeByName(typeName.getNamespaceURI(), typeName.getLocalPart());