/* Copyright (c) 2001 - 2011 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, availible at the root * application directory. */ package org.geoserver.ows; import org.geoserver.catalog.LayerInfo; import org.geoserver.catalog.ResourceInfo; import org.geoserver.catalog.WorkspaceInfo; import org.geoserver.security.AbstractCatalogFilter; /** * Filters the resources that are not in the current workspace (used only if virtual services are * active) * * @author Justin DeOliveira * */ public class LocalWorkspaceCatalogFilter extends AbstractCatalogFilter { public boolean hideLayer(LayerInfo layer) { return LocalLayer.get() != null && !LocalLayer.get().equals(layer); } public boolean hideResource(ResourceInfo resource) { if (LocalLayer.get() != null) { for (LayerInfo l : resource.getCatalog().getLayers(resource)) { if (!l.equals(LocalLayer.get())) { return true; } } } return hideWorkspace(resource.getStore().getWorkspace()); } public boolean hideWorkspace(WorkspaceInfo workspace) { return LocalWorkspace.get() != null && !LocalWorkspace.get().equals(workspace); } }