public ResourceInfo getResource() { return delegate.getResource(); }
/** Reattaches a serialized {@link LayerInfo} to the catalog */ public void attach(LayerInfo layerInfo) { attach(layerInfo.getResource()); }
@Override public boolean hideLayer(LayerInfo layer) { return hideResource(layer.getResource()); }
/** * 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 DataAccessLimits getAccessLimits( Authentication user, LayerInfo layer, List<LayerGroupInfo> context) { final boolean directAccess = context == null || context.isEmpty(); boolean read = canAccess(user, layer, AccessMode.READ, directAccess); boolean write = canAccess(user, layer, AccessMode.WRITE, directAccess); Filter readFilter = read ? Filter.INCLUDE : Filter.EXCLUDE; Filter writeFilter = write ? Filter.INCLUDE : Filter.EXCLUDE; return buildLimits(layer.getResource().getClass(), readFilter, writeFilter); }
@Override public DataAccessLimits getAccessLimits(Authentication user, LayerInfo layer) { if (hideLayer(layer) || hideResource(layer.getResource())) { return hide(layer.getResource()); } return super.getAccessLimits(user, layer); }
@Override public DataAccessLimits getAccessLimits( Authentication user, LayerInfo layer, List<LayerGroupInfo> containers) { if (hideLayer(layer) || hideResource(layer.getResource())) { return hide(layer.getResource()); } return super.getAccessLimits(user, layer, containers); }
private void addGroupInfo(LayerGroupInfo lg) { LayerGroupSummary groupData = new LayerGroupSummary(lg); groupCache.put(lg.getId(), groupData); lg.getLayers() .stream() .filter(IS_LAYER) .forEach( p -> { String id = ((LayerInfo) p).getResource().getId(); Set<LayerGroupSummary> containers = resourceContainmentCache.computeIfAbsent( id, CONCURRENT_SET_BUILDER); containers.add(groupData); }); }
/** @param crs */ public void calculateBounds(CoordinateReferenceSystem crs) throws Exception { List<LayerInfo> layers = allLayers(); if (layers.isEmpty()) { return; } LayerInfo l = layers.get(0); ReferencedEnvelope bounds = new ReferencedEnvelope(crs); for (int i = 0; i < layers.size(); i++) { l = layers.get(i); bounds.expandToInclude(transform(l.getResource().getLatLonBoundingBox(), crs)); } group.setBounds(bounds); }
public DataAccessLimits getAccessLimits(Authentication user, LayerInfo layer) { boolean read = delegate.canAccess(user, layer, AccessMode.READ); boolean write = delegate.canAccess(user, layer, AccessMode.WRITE); Filter readFilter = read ? Filter.INCLUDE : Filter.EXCLUDE; Filter writeFilter = write ? Filter.INCLUDE : Filter.EXCLUDE; return buildLimits(layer.getResource().getClass(), readFilter, writeFilter); }
/** Returns a list of available services for a layer name */ public List<String> getServicesForLayerName(String layerName) { ResourceInfo resource = geoServer.getCatalog().getLayerByName(layerName).getResource(); return getServicesForResource(resource); }
private ReferencedEnvelope aggregateEnvelopes(LayerInfo... layers) { ReferencedEnvelope eoExpected = new ReferencedEnvelope( layers[0].getResource().getNativeBoundingBox(), layers[0].getResource().getCRS()); for (int i = 1; i < layers.length; i++) { eoExpected.expandToInclude(layers[i].getResource().getNativeBoundingBox()); } return eoExpected; } }
private void checkLayerGroupResourceIsInWorkspace(LayerInfo layer, WorkspaceInfo ws) { if (layer == null) return; ResourceInfo r = layer.getResource(); if (r.getStore().getWorkspace() != null && !ws.equals(r.getStore().getWorkspace())) { throw new IllegalArgumentException( "Layer group within a workspace (" + ws.getName() + ") can not contain resources from other workspace: " + r.getStore().getWorkspace().getName()); } }
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; }
private int countStores(LayerGroupInfo lg, List<StoreInfo> stores) { List<PublishedInfo> layers = lg.getLayers(); int size = 0; for (PublishedInfo l : layers) { if (l instanceof LayerInfo) { if (stores.contains(((LayerInfo) l).getResource().getStore())) { size++; } } else if (l instanceof LayerGroupInfo) { if (countStores((LayerGroupInfo) l, stores) == ((LayerGroupInfo) l).getLayers().size()) { size++; } } } return size; }
@Test public void testGetLayersWithSameName() throws Exception { LayerInfo layerInfo1 = catalog.getLayerByName(new NameImpl("ws1", "lc")); ResourceInfo resource1 = layerInfo1.getResource(); NamespaceInfo namespace1 = resource1.getNamespace(); String nsPrefix1 = namespace1.getPrefix(); LayerInfo layerInfo2 = catalog.getLayerByName(new NameImpl("ws2", "lc")); ResourceInfo resource2 = layerInfo2.getResource(); NamespaceInfo namespace2 = resource2.getNamespace(); String nsPrefix2 = namespace2.getPrefix(); assertEquals("Invalid namespace prefix", "ws1", nsPrefix1); assertEquals("Invalid namespace prefix", "ws2", nsPrefix2); }
@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))); }
@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()); }
@Test public void testProxyBehaviour() throws Exception { testAddLayer(); // l = catalog.getLayerByName( "layerName"); LayerInfo l = catalog.getLayerByName(ft.getName()); assertTrue(l instanceof Proxy); ResourceInfo r = l.getResource(); assertTrue(r instanceof Proxy); String oldName = ft.getName(); r.setName("changed"); catalog.save(r); assertNull(catalog.getLayerByName(oldName)); l = catalog.getLayerByName(r.getName()); assertNotNull(l); assertEquals("changed", l.getResource().getName()); }
@Test public void testCascadeStore() { Catalog catalog = getCatalog(); DataStoreInfo store = (DataStoreInfo) catalog.getLayerByName(getLayerId(LAKES)).getResource().getStore(); new CascadeDeleteVisitor(catalog).visit(store); // that store actually holds all layers, so check we got empty assertEquals(0, catalog.count(LayerInfo.class, Filter.INCLUDE)); assertEquals(0, catalog.count(ResourceInfo.class, Filter.INCLUDE)); assertEquals(0, catalog.count(StoreInfo.class, Filter.INCLUDE)); List<LayerGroupInfo> groups = catalog.getLayerGroups(); assertEquals(0, catalog.count(LayerGroupInfo.class, Filter.INCLUDE)); }