@Override public <T extends CatalogInfo> CloseableIterator<T> list(Class<T> of, Filter filter) { return list(of, filter, (Integer) null, (Integer) null, (SortBy) null); }
public void setCatalog(Catalog catalog) { this.catalog = catalog; // This instance of check is has to be here because this Geoserver cannot be injected // into LocalWorkspaceCatalog because it causes a circular reference if (catalog instanceof LocalWorkspaceCatalog) { LocalWorkspaceCatalog lwCatalog = (LocalWorkspaceCatalog) catalog; lwCatalog.setGeoServer(this); } }
@Override public ValidationResult validate(LayerInfo layer, boolean isNew) { return super.validate(unwrap(layer), isNew); }
private void assertPrefixInclusion( boolean includePrefix, boolean setLocalWorkspace, boolean createGeoServer) { if (createGeoServer) { SettingsInfo settings = createNiceMock(SettingsInfo.class); expect(settings.isLocalWorkspaceIncludesPrefix()).andReturn(includePrefix).anyTimes(); replay(settings); GeoServer geoServer = createNiceMock(GeoServer.class); expect(geoServer.getSettings()).andReturn(settings).anyTimes(); replay(geoServer); catalog.setGeoServer(geoServer); } if (setLocalWorkspace) { WorkspaceInfo workspaceByName = catalog.getWorkspaceByName("ws1"); LocalWorkspace.set(workspaceByName); } checkLayerNamePrefixInclusion(includePrefix, catalog.getLayers().iterator()); checkLayerNamePrefixInclusion(includePrefix, catalog.list(LayerInfo.class, Filter.INCLUDE)); }
@Test public void testGetLayerByName() throws Exception { assertNull(catalog.getLayerByName("l1")); assertNull(catalog.getLayerByName("l2")); WorkspaceInfo ws1 = catalog.getWorkspaceByName("ws1"); WorkspaceInfo ws2 = catalog.getWorkspaceByName("ws2"); LocalWorkspace.set(ws1); assertNotNull(catalog.getLayerByName("l1")); assertNull(catalog.getLayerByName("l2")); LocalWorkspace.remove(); LocalWorkspace.set(ws2); assertNull(catalog.getLayerByName("l1")); assertNotNull(catalog.getLayerByName("l2")); LocalWorkspace.remove(); assertNull(catalog.getLayerByName("l1")); assertNull(catalog.getLayerByName("l2")); }
@Override public LayerInfo getLayerByName(Name name) { if (LocalWorkspace.get() != null) { // if local workspace active drop the prefix return getLayerByName(name.getLocalPart()); } else { return super.getLayerByName(name); } }
@Test public void testGetLayerGroupByName() throws Exception { assertNull(catalog.getLayerGroupByName("lg1")); assertNull(catalog.getLayerGroupByName("lg2")); WorkspaceInfo ws1 = catalog.getWorkspaceByName("ws1"); WorkspaceInfo ws2 = catalog.getWorkspaceByName("ws2"); LocalWorkspace.set(ws1); assertNotNull(catalog.getLayerGroupByName("lg1")); assertNotNull(catalog.getLayerGroupByName("ws1:lg1")); assertNull(catalog.getLayerGroupByName("lg2")); LocalWorkspace.remove(); assertNull(catalog.getLayerGroupByName("lg1")); assertNull(catalog.getLayerGroupByName("lg2")); LocalWorkspace.set(ws2); assertNull(catalog.getLayerGroupByName("lg1")); assertNotNull(catalog.getLayerGroupByName("ws2:lg2")); assertNotNull(catalog.getLayerGroupByName("lg2")); LocalWorkspace.remove(); assertNull(catalog.getLayerGroupByName("lg1")); assertNull(catalog.getLayerGroupByName("lg2")); }
@Test public void testGetStyleByName() throws Exception { assertNull(catalog.getStyleByName("s1")); assertNull(catalog.getStyleByName("s2")); WorkspaceInfo ws1 = catalog.getWorkspaceByName("ws1"); WorkspaceInfo ws2 = catalog.getWorkspaceByName("ws2"); LocalWorkspace.set(ws1); assertNotNull(catalog.getStyleByName("s1")); assertNull(catalog.getStyleByName("s2")); LocalWorkspace.remove(); assertNull(catalog.getStyleByName("s1")); assertNull(catalog.getStyleByName("s2")); LocalWorkspace.set(ws2); assertNull(catalog.getStyleByName("s1")); assertNotNull(catalog.getStyleByName("s2")); LocalWorkspace.remove(); assertNull(catalog.getStyleByName("s1")); assertNull(catalog.getStyleByName("s2")); }
<T> T wrap(T obj, Class<T> clazz) { if (obj == null) { return null; } if (useNameDequalifyingProxy()) { return NameDequalifyingProxy.create(obj, clazz); } return obj; }
replay(cat); catalog = new LocalWorkspaceCatalog(cat);
@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); }
List<LayerGroupInfo> wrap(List<LayerGroupInfo> layerGroups) { if (useNameDequalifyingProxy()) { return NameDequalifyingProxy.createList(layerGroups, LayerGroupInfo.class); } return layerGroups; }
@Override public void remove(LayerInfo layer) { super.remove(unwrap(layer)); }
@Override public List<LayerInfo> getLayers() { if (useNameDequalifyingProxy()) { return NameDequalifyingProxy.createList(super.getLayers(), LayerInfo.class); } return super.getLayers(); }
@Override public void add(LayerInfo layer) { super.add(unwrap(layer)); }
/** * Returns a decorating iterator over the one returned by the delegate that wraps every object * it returns, if possible. * * @see #wrap(Object, Class) * @see org.geoserver.catalog.Catalog#list(java.lang.Class, org.geoserver.catalog.Predicate, * java.lang.Integer, java.lang.Integer, org.geoserver.catalog.OrderBy) */ @Override public <T extends CatalogInfo> CloseableIterator<T> list( final Class<T> of, final Filter filter, final Integer offset, final Integer count, final SortBy sortBy) { CloseableIterator<T> iterator = delegate.list(of, filter, offset, count, sortBy); if (iterator.hasNext() && useNameDequalifyingProxy()) { return CloseableIteratorAdapter.transform( iterator, obj -> obj == null ? null : NameDequalifyingProxy.create(obj, of)); } return iterator; }
@Override public void save(LayerInfo layer) { super.save(unwrap(layer)); }
@Override public LayerInfo detach(LayerInfo layer) { return super.detach(unwrap(layer)); }
public LayerGroupInfo detach(LayerGroupInfo layerGroup) { return super.detach(unwrap(layerGroup)); }
public void add(LayerGroupInfo layerGroup) { super.add(unwrap(layerGroup)); }