protected DataAccessLimits intersection(DataAccessLimits a, DataAccessLimits b) { if (a == null) return b; if (b == null) return a; if (a instanceof VectorAccessLimits && b instanceof VectorAccessLimits) { return intersection((VectorAccessLimits) a, (VectorAccessLimits) b); } else if (a instanceof CoverageAccessLimits && b instanceof CoverageAccessLimits) { return intersection((CoverageAccessLimits) a, (CoverageAccessLimits) b); } else if (a instanceof WMSAccessLimits && b instanceof WMSAccessLimits) { return intersection((WMSAccessLimits) a, (WMSAccessLimits) b); } throw new IllegalArgumentException( "Tried to get intersection of differing or unanticipated types of DataAccessLimits (" + a + " && " + b + ")"); }
protected VectorAccessLimits intersection(VectorAccessLimits a, VectorAccessLimits b) { if (a == null) return b; if (b == null) return a; CatalogMode mode = intersection(a.getMode(), b.getMode()); List<PropertyName> readAttributes = intersection(a.getReadAttributes(), b.getReadAttributes()); Filter readFilter = intersection(a.getReadFilter(), b.getReadFilter()); List<PropertyName> writeAttributes = intersection(a.getReadAttributes(), b.getReadAttributes()); Filter writeFilter = intersection(a.getWriteFilter(), b.getWriteFilter()); return new VectorAccessLimits( mode, readAttributes, readFilter, writeAttributes, writeFilter); }
if (b == null) return a; final CatalogMode mode = intersection(a.getMode(), b.getMode()); final MultiPolygon rasterFilter; readFilter = Filter.EXCLUDE; } else { readFilter = intersection(a.getReadFilter(), b.getReadFilter()); GeneralParameterValue[] params = intersection(a.getParams(), b.getParams());
protected WMSAccessLimits intersection(WMSAccessLimits a, WMSAccessLimits b) { if (a == null) return b; if (b == null) return a; CatalogMode mode = intersection(a.getMode(), b.getMode()); Filter readFilter = intersection(a.getReadFilter(), b.getReadFilter()); MultiPolygon rasterFilter = null; { MultiPolygon aFilter = a.getRasterFilter(), bFilter = b.getRasterFilter(); if (aFilter == null) rasterFilter = bFilter; else if (bFilter == null) rasterFilter = aFilter; else rasterFilter = (MultiPolygon) aFilter.intersection(bFilter); } boolean allowFeatureInfo = a.isAllowFeatureInfo() && b.isAllowFeatureInfo(); return new WMSAccessLimits(mode, readFilter, rasterFilter, allowFeatureInfo); }
protected WorkspaceAccessLimits intersection(WorkspaceAccessLimits a, WorkspaceAccessLimits b) { CatalogMode mode = intersection(a.getMode(), b.getMode()); return new WorkspaceAccessLimits( mode, a.isReadable() && b.isReadable(), a.isWritable() && b.isWritable(), a.isAdminable() && b.isAdminable()); }