public Object visit(PropertyName expression, Object data) { String xpath = expression.getPropertyName(); if (xpath.startsWith("featureMembers/*/")) { xpath = xpath.substring(17); } else if (xpath.startsWith("featureMember/*/")) { xpath = xpath.substring(16); } return getFactory(data).property(xpath, expression.getNamespaceContext()); } }
@Override public Object visit(PropertyName expression, Object extraData) { String name = expression.getPropertyName(); for (Map.Entry<String, String> entry : mappings.entrySet()) { String from = entry.getKey(); String to = entry.getValue(); if (name.startsWith(from + ".")) { name = to + "." + name.substring((from + ".").length()); break; } } return getFactory(extraData).property(name, expression.getNamespaceContext()); } }
public Object visit(PropertyName expression, Object extraData) { // NC - namespace support return getFactory(extraData) .property(expression.getPropertyName(), expression.getNamespaceContext()); }
/** * Creates a copy of the input {@link PropertyName} expression with renamed attributes. * * @param expression the expression to visit * @param extraData if an instance of {@link FilterFactory2} is passed, it is used to build the * returned expression * @return a new {@link PropertyName} expression with renamed attributes */ @Override public Object visit(PropertyName expression, Object extraData) { if (expression.getPropertyName().equals(sourceProperty)) { return getFactory(extraData).property(targetProperty, expression.getNamespaceContext()); } return getFactory(extraData) .property(expression.getPropertyName(), expression.getNamespaceContext()); } }
/** Builds the property steps list, i.e. split the XML path into parcels. */ private XPathUtil.StepList buildPropertySteps( FeatureTypeMapping featureTypeMapping, PropertyName propertyName) { // get the correct namespace context, first we try the property name namespaces NamespaceSupport nameSpaces = propertyName.getNamespaceContext(); if (nameSpaces == null) { // let's fallback on the feature type namespaces nameSpaces = featureTypeMapping.getNamespaces(); } // build the property XML path steps list return XPath.steps( featureTypeMapping.getTargetFeature(), propertyName.getPropertyName(), nameSpaces); }
if (requestedProperty.getNamespaceContext() == null) { requestedPropertySteps = XPath.steps( targetDescriptor, requestedProperty.getPropertyName(), requestedProperty.getNamespaceContext()); filterFac.property( subProperty.toString(), requestedProperty.getNamespaceContext()));
if (requestedProperty.getNamespaceContext() == null) { requestedPropertySteps = XPath.steps( targetDescriptor, requestedProperty.getPropertyName(), requestedProperty.getNamespaceContext());
public void testPreservedNamespaceContext() { // set GEOT-3756 NamespaceSupport nsContext = new NamespaceSupport(); nsContext.declarePrefix("f", "http://feature.example.org"); Expression geometry = fac.property("f:name", nsContext); BBOX bbox = fac.bbox(geometry, 0, 0, 1, 1, "EPSG:4326"); DuplicatingFilterVisitor visitor = new DuplicatingFilterVisitor(fac); BBOX clone = (BBOX) bbox.accept(visitor, null); assertEquals(bbox, clone); assertNotSame(bbox, clone); assertSame(nsContext, ((PropertyName) clone.getExpression1()).getNamespaceContext()); }
/** Test of set/getProperties method, of class org.geotools.data.Query. */ public void testProperties() { final FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); // System.out.println("testProperties"); Query query = new Query(); assertNull(query.getProperties()); List<PropertyName> properties = new ArrayList<PropertyName>(); NamespaceSupport nsContext = new NamespaceSupport(); nsContext.declarePrefix("foo", "FooNamespace"); PropertyName fooProp = ff.property("foo", nsContext); PropertyName barProp = ff.property("bar", nsContext); properties.add(fooProp); properties.add(barProp); query.setProperties(properties); List<PropertyName> properties2 = query.getProperties(); assertNotNull(properties); assertEquals(fooProp, properties2.get(0)); assertEquals(barProp, properties2.get(1)); assertEquals(nsContext, properties2.get(0).getNamespaceContext()); // test compatibility with getPropertyNames method String[] names = query.getPropertyNames(); assertEquals("foo", names[0]); assertEquals("bar", names[1]); query.setProperties(Query.ALL_PROPERTIES); assertNull(query.getProperties()); query = new Query("Test", Filter.INCLUDE, properties); assertNotNull(query.getProperties()); }
boolean isGmlBoundedBy(PropertyName name) { String propertyName = name.getPropertyName(); // we want two non empty parts int idx = propertyName.indexOf(':'); if (idx > 1 && propertyName.indexOf(":") < propertyName.length() - 1) { String[] split = propertyName.split("\\:"); String prefix = split[0]; String localName = split[1]; if (!"boundedBy".equals(localName)) { return false; } // lax match in case we don't have namespace support if (name.getNamespaceContext() == null && "gml".equals(prefix)) { return true; } String ns = name.getNamespaceContext().getURI(prefix); return ns == null && "gml".equals(prefix) || (GML.NAMESPACE.equals(ns) || org.geotools.gml3.v3_2.GML.NAMESPACE.equals(ns)); } return false; }
public Object visit(PropertyName expression, Object data) { String xpath = expression.getPropertyName(); if (xpath.startsWith("featureMembers/*/")) { xpath = xpath.substring(17); } else if (xpath.startsWith("featureMember/*/")) { xpath = xpath.substring(16); } return getFactory(data).property(xpath, expression.getNamespaceContext()); } }
@Override public Object visit(PropertyName expression, Object extraData) { String name = expression.getPropertyName(); if (name.startsWith(from+".")) { name = to + "." + name.substring((from+".").length()); } return getFactory(extraData).property(name, expression.getNamespaceContext()); } }
@Override public Object visit(PropertyName expression, Object extraData) { FilterFactory2 filterFactory = getFactory(extraData); NamespaceSupport nss = expression.getNamespaceContext(); return extender.extendProperty(expression, filterFactory, nss); } }
@Override public Object visit(PropertyName expression, Object extraData) { NamespaceSupport nss = expression.getNamespaceContext(); if (nss == null) { nss = defaultNss; } return getFactory(extraData).property(expression.getPropertyName(), nss); }
@Override public Object visit(PropertyName expression, Object extraData) { String pName = expression.getPropertyName(); if ((pName != null) && (pName.equals(originalPropertyName))) { return getFactory(extraData) .property(newPropertyName, expression.getNamespaceContext()); } return super.visit(expression, extraData); } }
@Override public Object visit(PropertyName expression, Object extraData) { NamespaceSupport nss = expression.getNamespaceContext(); String path = expression.getPropertyName(); if (nss != null) { QName name = resolver.parseQName(expression.getPropertyName(), nss); String uri = name.getNamespaceURI(); if (path.endsWith("AnyText") && (uri == null || "".equals(uri) || CSW.NAMESPACE.equals(uri))) { return new RecordTextFunction(); } } return getFactory(extraData).property(path, nss); } }
public Object visit(PropertyName expression, Object extraData) { //NC - namespace support return getFactory(extraData).property(expression.getPropertyName(), expression.getNamespaceContext()); }
@Override public Object visit(PropertyName expression, Object extraData) { NamespaceSupport nss = expression.getNamespaceContext(); String path = expression.getPropertyName(); if (nss != null) { QName name = resolver.parseQName(expression.getPropertyName(), nss); String uri = name.getNamespaceURI(); if (path.endsWith("AnyText") && (uri == null || "".equals(uri) || CSW.NAMESPACE.equals(uri))) { return new RecordTextFunction(); } } return getFactory(extraData).property(path, nss); } }
/** * Searches for an optional property among the query attributes. Returns true only if the * property is explicitly listed * * @param query * @param property * @return */ protected boolean hasOutputProperty(Query query, Name property, boolean includedByDefault) { if (query.getProperties() == null) { return includedByDefault; } final String localPart = property.getLocalPart(); final String namespaceURI = property.getNamespaceURI(); for (PropertyName pn : query.getProperties()) { if (localPart.equals(pn.getPropertyName()) && (pn.getNamespaceContext() == null || namespaceURI.equals(pn.getNamespaceContext().getURI("")))) { return true; } } return false; }
private void assertBinaryFilter( Filter filter, String expectedNamespace, String expectedName, Object expectedValue) { BinaryComparisonOperator bce = (BinaryComparisonOperator) filter; assertThat(bce.getExpression1(), instanceOf(PropertyName.class)); PropertyName pn = (PropertyName) bce.getExpression1(); assertEquals(expectedName, pn.getPropertyName()); assertEquals(expectedNamespace, pn.getNamespaceContext().getURI("")); assertThat(bce.getExpression2(), instanceOf(Literal.class)); assertEquals(expectedValue, bce.getExpression2().evaluate(null)); }