@Override public LayerGroupInfo getLayerGroupByName(WorkspaceInfo workspace, String name) { if (null == workspace) { workspace = DefaultCatalogFacade.NO_WORKSPACE; } LayerGroupInfo layerGroup = facade.getLayerGroupByName(workspace, name); return layerGroup; }
@Override public List<WorkspaceInfo> getWorkspaces() { return facade.getWorkspaces(); }
@Override public LayerInfo add(LayerInfo layer) { return facade.add(layer); }
@Override public <T extends CatalogInfo> CloseableIterator<T> list( Class<T> of, Filter filter, @Nullable Integer offset, @Nullable Integer count, @Nullable SortBy... sortOrder) { return filterIsolated(of, facade.list(of, filter, offset, count, sortOrder)); }
@Override public <T extends CatalogInfo> CloseableIterator<T> list( final Class<T> of, final Filter filter, Integer offset, Integer count, SortBy sortOrder) { CatalogFacade facade = getFacade(); if (sortOrder != null && !facade.canSort(of, sortOrder.getPropertyName().getPropertyName())) { // TODO: use GeoTools' merge-sort code to provide sorting anyways throw new UnsupportedOperationException( "Catalog backend can't sort on property " + sortOrder.getPropertyName() + " in-process sorting is pending implementation"); } return facade.list(of, filter, offset, count, sortOrder); }
dao.add(ws); dao.add(ns); dao.add(store); dao.add(resource); dao.add(s); dao.add(l); dao.add(lg); dao.add(m); dao.setDefaultWorkspace(defaultWorkspace); dao.setDefaultNamespace(defaultNamespace); WorkspaceInfo ws = workspaces.findById(e.getKey(), WorkspaceInfo.class); if (null != ws) { dao.setDefaultDataStore(ws, e.getValue());
facade.remove(workspace); List<WorkspaceInfo> workspaces = facade.getWorkspaces();
@Override public boolean canSort(Class<? extends CatalogInfo> type, String propertyName) { return facade.canSort(type, propertyName); }
public <T extends CatalogInfo> int count(Class<T> of, Filter filter) { return facade.count(of, filter); }
public static <T extends CatalogInfo> T any(Class<T> clazz) { return CatalogFacade.any(clazz); }
@Override public <T extends CatalogInfo> int count(Class<T> of, Filter filter) { CloseableIterator<T> found = facade.list(of, filter, null, null); try (CloseableIterator<T> filtered = filterIsolated(of, found)) { int count = 0; while (filtered.hasNext()) { count++; filtered.next(); } return count; } }
public boolean canSort(Class<? extends CatalogInfo> type, String propertyName) { return facade.canSort(type, propertyName); }
@Override public <T extends CatalogInfo> int count(final Class<T> of, final Filter filter) { final CatalogFacade facade = getFacade(); return facade.count(of, filter); }
public <T extends CatalogInfo> CloseableIterator<T> list( Class<T> of, Filter filter, Integer offset, Integer count, SortBy... sortBy) { Filter securityFilter = securityFilter(of, filter); CloseableIterator<T> filtered; // HACK here, go straigth to the facade of the delegate to get a method supporting sortby[] filtered = delegate.getFacade().list(of, securityFilter, offset, count, sortBy); // create secured decorators on-demand. Assume this method is used only for listing, not // for accessing a single resource by name/id, thus use hide policy for mixed mode final Function<T, T> securityWrapper = securityWrapper(of, MixedModeBehavior.HIDE); final CloseableIterator<T> filteredWrapped; filteredWrapped = CloseableIteratorAdapter.transform(filtered, securityWrapper); // wrap the iterator in a notNull filter to ensure any filtered // layers (result is null) don't get passed on from the securityWrapper // Function. When the AccessLevel is HIDDEN and a layer gets filtered // out via a CatalogFilter - for example, this can happen with a // LocalWorkspaceCatalogFilter and a virtual service request return CloseableIteratorAdapter.filter( filteredWrapped, com.google.common.base.Predicates.<T>notNull()); }
@Override public NamespaceInfo add(NamespaceInfo namespace) { return facade.add(namespace); }
@Override public LayerGroupInfo getLayerGroupByName(WorkspaceInfo workspace, String name) { return enforceLayerGroupIsolation(facade.getLayerGroupByName(workspace, name)); }
public List<WorkspaceInfo> getWorkspaces() { return facade.getWorkspaces(); }
public CatalogStoreFeatureIterator(int offset, int count, SortBy[] sortOrder, Filter filter, Catalog catalog, CatalogStoreMapping mapping, RecordDescriptor recordDescriptor, Map<String, String> interpolationProperties) { this.offset = offset; this.count = count; this.sortOrder = sortOrder; this.filter = filter; catalogFacade = catalog.getFacade(); this.mapping = mapping; this.interpolationProperties = interpolationProperties; layerIt = catalogFacade.list(ResourceInfo.class, filter, null, null, sortOrder); nextLayer(); layerGroupIt = catalogFacade.list(LayerGroupInfo.class, filter, null, null, sortOrder); nextLayerGroup(); comparator = sortOrder==null || sortOrder.length==0 ? null : CatalogComparatorFactory.buildComparator(sortOrder); index = 0; while (index < offset && hasNext()) { nextInternal(); } builder = new GenericRecordBuilder(recordDescriptor); }
@Override public StoreInfo add(StoreInfo store) { return facade.add(store); }
@Override public LayerGroupInfo getLayerGroupByName(String name) { return enforceLayerGroupIsolation(facade.getLayerGroupByName(name)); }