private void removeStyleInLayer(LayerInfo layer, StyleInfo style) { boolean dirty = false; // remove it from the associated styles if (layer.getStyles().remove(style)) { dirty = true; } // if it's the default style, choose an associated style or reset it to the default one StyleInfo ds = layer.getDefaultStyle(); if (ds != null && ds.equals(style)) { dirty = true; StyleInfo newDefaultStyle; if (layer.getStyles().size() > 0) { newDefaultStyle = layer.getStyles().iterator().next(); layer.getStyles().remove(newDefaultStyle); } else { newDefaultStyle = getResourceDefaultStyle(layer.getResource(), style); } layer.setDefaultStyle(newDefaultStyle); } if (dirty) { catalog.save(layer); } }
if (layer.getResource() == null) { throw new NullPointerException("Layer resource must not be null"); final NamespaceInfo ns = layer.getResource().getNamespace(); if (null == getResourceByName(ns, layer.getResource().getName(), ResourceInfo.class)) { throw new IllegalStateException( "Found no resource named " + layer.prefixedName() + " , Layer with that name can't be added"); LayerInfo existing = getLayerByName(prefix, layer.getName()); if (existing != null && !existing.getId().equals(layer.getId())) { throw new IllegalArgumentException( "Layer named '" + layer.getName() + "' in workspace '" + prefix if (layer.getDefaultStyle() == null) { try { LOGGER.log( Level.INFO, "Layer " + layer.prefixedName() + " is missing the default style, assigning one automatically"); StyleInfo style = new CatalogBuilder(this).getDefaultStyle(layer.getResource()); layer.setDefaultStyle(style); } catch (IOException e) { LOGGER.log(
final LayerInfo other = (LayerInfo) obj; if (defaultStyle == null) { if (other.getDefaultStyle() != null) return false; } else if (!defaultStyle.equals(other.getDefaultStyle())) return false; if (id == null) { if (other.getId() != null) return false; } else if (!id.equals(other.getId())) return false; if (legend == null) { if (other.getLegend() != null) return false; } else if (!legend.equals(other.getLegend())) return false; if (other.getPath() != null) return false; } else if (!path.equals(other.getPath())) return false; if (resource == null) { if (other.getResource() != null) return false; } else if (!resource.equals(other.getResource())) return false; if (styles == null) { if (other.getStyles() != null) return false; } else if (!styles.equals(other.getStyles())) return false; if (type == null) { if (other.getType() != null) return false; } else if (!type.equals(other.getType())) return false; if (attribution == null) { if (other.getAttribution() != null) return false; } else if (!attribution.equals(other.getAttribution())) return false; if (authorityURLs == null) { if (other.getAuthorityURLs() != null) return false; } else if (!authorityURLs.equals(other.getAuthorityURLs())) return false;
public LayerInfo buildLayer(ResourceInfo resource) { LayerInfo layer = catalog.getFactory().createLayer(); layer.setResource(resource); layer.setName(resource.getName()); layer.setEnabled(true); // setup the layer type if (layer.getResource() instanceof FeatureTypeInfo) { layer.setType(PublishedType.VECTOR); } else if (layer.getResource() instanceof CoverageInfo) { layer.setType(PublishedType.RASTER); } else if (layer.getResource() instanceof WMTSLayerInfo) { layer.setType(PublishedType.WMTS); } else if (layer.getResource() instanceof WMSLayerInfo) { layer.setType(PublishedType.WMS); } return layer; }
/** * Hide Layer if Request is GetCapabilities and Layer or its Resource are not advertised. * * @param layer */ private boolean hideLayer(LayerInfo layer) { if (!layer.isAdvertised()) { return checkCapabilitiesRequest(layer.getResource()); } else { return hideResource(layer.getResource()); } }
public void add(LayerInfo layer) { layer = resolve(layer); validate(layer, true); if (layer.getType() == null) { if (layer.getResource() instanceof FeatureTypeInfo) { layer.setType(PublishedType.VECTOR); } else if (layer.getResource() instanceof CoverageInfo) { layer.setType(PublishedType.RASTER); } else if (layer.getResource() instanceof WMTSLayerInfo) { layer.setType(PublishedType.WMTS); } else if (layer.getResource() instanceof WMSLayerInfo) { layer.setType(PublishedType.WMS); } else { String msg = "Layer type not set and can't be derived from resource"; throw new IllegalArgumentException(msg); } } LayerInfo added = facade.add(layer); added(added); }
layers.add(l); expect(l.getId()).andReturn(lId).anyTimes(); expect(l.getName()).andReturn(name).anyTimes(); expect(l.getType()).andReturn(PublishedType.VECTOR).anyTimes(); expect(l.getResource()).andReturn(r).anyTimes(); expect(l.getDefaultStyle()).andReturn(s).anyTimes(); expect(l.getStyles()).andReturn(Collections.singleton(s)).anyTimes(); expect(l.isEnabled()).andReturn(true).anyTimes(); expect(l.isAdvertised()).andReturn(true).anyTimes(); expect(catalog.getLayerByName(new NameImpl(ns.getURI(), name))).andReturn(l).anyTimes(); expect(catalog.getLayers(r)).andReturn(Arrays.asList(l)).anyTimes(); l.accept((CatalogVisitor) anyObject()); expectLastCall() .andAnswer(
public ResourceInfo getResource() { return delegate.getResource(); }
|| !layer.getResource() .getNamespace() .equals(catalog.getNamespaceByPrefix(prefix))) { layer.setResource(ft); layer.getStyles().clear(); layer.setDefaultStyle(defaultStyle); layer.setType(PublishedType.VECTOR); layer.setEnabled(true); if (layer.getId() == null) { catalog.add(layer); } else {
public static boolean isLayerExposable(LayerInfo layer) { assert layer!=null; // TODO: this was copied from WMS 1.1 GetCapabilitesTransformer.handleLayerTree and is // replicated again in the WMS 1.3 implementation. Should be refactored to eliminate // duplication. // no sense in exposing a geometryless layer through wms... boolean wmsExposable = false; if (layer.getType() == LayerInfo.Type.RASTER || layer.getType() == LayerInfo.Type.WMS) { wmsExposable = true; } else { try { wmsExposable = layer.getType() == LayerInfo.Type.VECTOR && ((FeatureTypeInfo) layer.getResource()).getFeatureType() .getGeometryDescriptor() != null; } catch (Exception e) { LOGGER.log(Level.SEVERE, "An error occurred trying to determine if" + " the layer is geometryless", e); } } return wmsExposable; }
@Test public void testEnableLayer() { addLayer(); LayerInfo l2 = catalog.getLayerByName(l.getName()); assertTrue(l2.isEnabled()); assertTrue(l2.enabled()); assertTrue(l2.getResource().isEnabled()); l2.setEnabled(false); catalog.save(l2); // GR: if not saving also the associated resource, we're assuming saving the layer also // saves its ResourceInfo, which is wrong, but works on the in-memory catalog by accident catalog.save(l2.getResource()); l2 = catalog.getLayerByName(l2.getName()); assertFalse(l2.isEnabled()); assertFalse(l2.enabled()); assertFalse(l2.getResource().isEnabled()); }
public DataAccessLimits getAccessLimits(Authentication user, LayerInfo layer) { if (user == null) { return null; } final String name = user.getName(); DataAccessLimits limits = (DataAccessLimits) getUserMap(name).get(layer.getId()); if (limits == null) { limits = getAccessLimits(user, layer.getResource()); } return limits; }
public String getName() { return delegate.getName(); }
ReferencedEnvelope bounds = l.getResource().boundingBox(); boolean latlon = false; if (bounds == null) { bounds = l.getResource().getLatLonBoundingBox(); latlon = true; "Could not calculate bounds from layer with no bounds, " + l.getName()); ResourceInfo resource = l.getResource(); if (latlon) { re = resource.getLatLonBoundingBox(); if (re == null) { throw new IllegalArgumentException( "Could not calculate bounds from layer with no bounds, " + l.getName());
private void removeStyleInLayerGroup(LayerGroupInfo group, StyleInfo style) { boolean dirty = false; // root layer style if (style.equals(group.getRootLayerStyle())) { group.setRootLayerStyle( getResourceDefaultStyle(group.getRootLayer().getResource(), style)); dirty = true; } // layer styles List<StyleInfo> styles = group.getStyles(); for (int i = 0; i < styles.size(); i++) { StyleInfo publishedStyle = styles.get(i); if (publishedStyle != null && publishedStyle.equals(style)) { // if publishedStyle is not null, we have a layer LayerInfo layer = (LayerInfo) group.getLayers().get(i); if (!layer.getDefaultStyle().equals(style)) { // use default style styles.set(i, layer.getDefaultStyle()); } else { styles.set(i, getResourceDefaultStyle(layer.getResource(), style)); } dirty = true; } } if (dirty) { catalog.save(group); } }
protected void runChecks(String layerName) throws Exception { LayerInfo layer = getCatalog().getLayerByName(layerName); assertNotNull(layer); assertNotNull(layer.getDefaultStyle()); assertNotNull(layer.getResource().getProjectionPolicy()); if (layer.getType() == PublishedType.VECTOR) { FeatureTypeInfo featureType = (FeatureTypeInfo) layer.getResource(); FeatureSource source = featureType.getFeatureSource(null, null); assertTrue(source.getCount(Query.ALL) > 0); // do a wfs request Document dom = getAsDOM("wfs?request=getFeature&typename=" + featureType.getPrefixedName()); assertEquals("wfs:FeatureCollection", dom.getDocumentElement().getNodeName()); assertEquals( source.getCount(Query.ALL), dom.getElementsByTagName(featureType.getPrefixedName()).getLength()); } // do a wms request MockHttpServletResponse response = getAsServletResponse("wms/reflect?layers=" + layer.getResource().getPrefixedName()); assertEquals("image/png", response.getContentType()); }
@Test public void testFullTextSearchAddedKeyword() { ft.getKeywords().add(new Keyword("air_temp")); ft.getKeywords().add(new Keyword("temperatureAir")); l.setResource(ft); addLayer(); LayerInfo lproxy = catalog.getLayer(l.getId()); FeatureTypeInfo ftproxy = (FeatureTypeInfo) lproxy.getResource(); ftproxy.getKeywords().add(new Keyword("newKeyword")); catalog.save(ftproxy); Filter filter = Predicates.fullTextSearch("newKeyword"); assertEquals(newHashSet(ftproxy), asSet(catalog.list(FeatureTypeInfo.class, filter))); assertEquals(newHashSet(lproxy), asSet(catalog.list(LayerInfo.class, filter))); }
layer.setResource(featureType); layer.setName(featureType.getName()); layer.setPath(ftInfoReader.wmsPath()); if (layer.getPath() == null) { layer.setPath("/"); layer.setType(PublishedType.VECTOR); StyleInfo style = catalog.getStyleByName(defaultStyleName); if (style != null) { layer.setDefaultStyle(style); StyleInfo style = catalog.getStyleByName(styleName); if (style != null) { layer.getStyles().add(style); legend.setFormat((String) legendURL.get("format")); legend.setOnlineResource((String) legendURL.get("onlineResource")); layer.setLegend(legend); layer.setEnabled(featureType.isEnabled()); catalog.add(layer); } catch (Exception e) { layer.setResource(coverage); layer.setName(coverage.getName()); layer.setPath(cInfoReader.wmsPath()); if (layer.getPath() == null) { layer.setPath("/");
public StyleInfo getDefaultStyle() { return delegate.getDefaultStyle(); }
layer = catalog.getFactory().createLayer(); layer.setResource(coverage); layer.setDefaultStyle( catalog.getStyleByName(LayerProperty.STYLE.get(props, DEFAULT_RASTER_STYLE))); layer.setType(PublishedType.RASTER); layer.setEnabled(true); if (layer.getId() == null) { catalog.add(layer); } else {