final int prime = 31; int result = 1; result = prime * result + ((lg.getBounds() == null) ? 0 : lg.getBounds().hashCode()); result = prime * result + ((lg.getId() == null) ? 0 : lg.getId().hashCode()); result = prime * result + ((lg.getLayers() == null) ? 0 : lg.getLayers().hashCode()); result = prime * result + ((lg.getMetadata() == null) ? 0 : lg.getMetadata().hashCode()); result = prime * result + ((lg.getName() == null) ? 0 : lg.getName().hashCode()); result = prime * result + ((lg.getMode() == null) ? 0 : lg.getMode().hashCode()); result = prime * result + ((lg.getTitle() == null) ? 0 : lg.getTitle().hashCode()); result = prime * result + ((lg.getAbstract() == null) ? 0 : lg.getAbstract().hashCode()); result = prime * result + ((lg.getWorkspace() == null) ? 0 : lg.getWorkspace().hashCode()); result = prime * result + ((lg.getStyles() == null) ? 0 : lg.getStyles().hashCode()); result = prime * result + ((lg.getRootLayer() == null) ? 0 : lg.getRootLayer().hashCode()); result = prime * result + ((lg.getRootLayerStyle() == null) ? 0 : lg.getRootLayerStyle().hashCode()); result = prime * result + ((lg.getAuthorityURLs() == null) ? 0 : lg.getAuthorityURLs().hashCode()); result = prime * result + ((lg.getIdentifiers() == null) ? 0 : lg.getIdentifiers().hashCode()); result = prime * result + ((lg.getAttribution() == null) ? 0 : lg.getAttribution().hashCode()); result = prime * result
@Override public void setName(String name) { delegate.setName(name); }
@Override public String prefixedName() { return delegate.prefixedName(); }
LayerGroupSummary(LayerGroupInfo lg) { this.id = lg.getId(); this.workspace = lg.getWorkspace() != null ? lg.getWorkspace().getName() : null; this.name = lg.getName(); this.mode = lg.getMode(); containerGroups = CONCURRENT_SET_BUILDER.apply(null); }
/** * Returns the possible location of the group in the secured tree based on name and workspace * * @param layerGroup * @return */ private String[] getLayerGroupPath(LayerGroupInfo layerGroup) { if (layerGroup.getWorkspace() == null) { return new String[] {layerGroup.getName()}; } else { return new String[] {layerGroup.getWorkspace().getName(), layerGroup.getName()}; } }
private void addLocalGroup(CatalogFactory factory, WorkspaceInfo citeWs) { LayerGroupInfo localGroup = factory.createLayerGroup(); localGroup.setName(LOCAL_GROUP); localGroup.setWorkspace(citeWs); localGroup.getLayers().add(getBuildingsLayer()); localGroup.getLayers().add(getBridgesLayer()); localGroup.getStyles().add(null); localGroup.getStyles().add(null); catalog.add(localGroup); }
private static void allLayers(LayerGroupInfo group, List<LayerInfo> layers) { if (LayerGroupInfo.Mode.EO.equals(group.getMode())) { layers.add(group.getRootLayer()); } int size = group.getLayers().size(); for (int i = 0; i < size; i++) { PublishedInfo p = group.getLayers().get(i); StyleInfo s; // Handle incomplete layer groups, especially those constructed by the XStreamPersister if (group.getStyles() == null || group.getStyles().size() == 0) { s = null; } else { s = group.getStyles().get(i); } if (p instanceof LayerInfo) { LayerInfo l = (LayerInfo) p; layers.add(l); } else if (p instanceof LayerGroupInfo) { allLayers((LayerGroupInfo) p, layers); } else if (p == null && s != null) { expandStyleGroup( s, group.getBounds() == null ? null : group.getBounds().getCoordinateReferenceSystem(), layers, null); } } }
/** Reattaches a serialized {@link LayerGroupInfo} to the catalog */ public void attach(LayerGroupInfo groupInfo) { if (groupInfo.getRootLayer() != null) { attach(groupInfo.getRootLayer()); } if (groupInfo.getRootLayerStyle() != null) { attach(groupInfo.getRootLayerStyle()); } for (PublishedInfo p : groupInfo.getLayers()) { if (p instanceof LayerInfo) { attach((LayerInfo) p); } else { attach((LayerGroupInfo) p); } } for (StyleInfo style : groupInfo.getStyles()) { if (style != null) attach(style); } }
public ValidationResult validate(LayerGroupInfo layerGroup, boolean isNew) { if (isNull(layerGroup.getName())) { throw new NullPointerException("Layer group name must not be null"); WorkspaceInfo ws = layerGroup.getWorkspace(); LayerGroupInfo existing = getLayerGroupByName(ws, layerGroup.getName()); if (existing != null && !existing.getId().equals(layerGroup.getId())) { WorkspaceInfo ews = existing.getWorkspace(); if ((ws == null && ews == null) || (ws != null && ws.equals(ews))) { String msg = "Layer group named '" + layerGroup.getName() + "' already exists"; if (ws != null) { msg += " in workspace " + ws.getName(); List<PublishedInfo> layers = layerGroup.getLayers(); List<StyleInfo> styles = layerGroup.getStyles(); for (int i = 0; i < layers.size(); ) { if (layers != null if (layerGroup.getLayers() == null || layerGroup.getLayers().isEmpty()) { throw new IllegalArgumentException("Layer group must not be empty"); if (layerGroup.getStyles() != null && !layerGroup.getStyles().isEmpty() && !(layerGroup.getStyles().size() == layerGroup.getLayers().size())) { throw new IllegalArgumentException( "Layer group has different number of styles than layers"); if (layerGroup.getMode() == null) { throw new IllegalArgumentException("Layer group mode must not be null");
@SuppressWarnings("PMD.UnusedLocalVariable") public void add(LayerGroupInfo layerGroup) { layerGroup = resolve(layerGroup); validate(layerGroup, true); if (layerGroup.getStyles().isEmpty()) { for (PublishedInfo l : layerGroup.getLayers()) { // default style layerGroup.getStyles().add(null); } } LayerGroupInfo added = facade.add(layerGroup); added(added); }
addLayer(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(null); lg2.setName("layerGroup2"); lg2.getLayers().add(l); lg2.getStyles().add(s); lg2.setRootLayer(l); lg2.setMode(LayerGroupInfo.Mode.SINGLE); try { catalog.add(lg2); lg2.setMode(LayerGroupInfo.Mode.NAMED); try { catalog.add(lg2); lg2.setMode(LayerGroupInfo.Mode.CONTAINER); try { catalog.add(lg2); lg2.setMode(LayerGroupInfo.Mode.EO); lg2.setRootLayer(null); try { catalog.add(lg2); lg2.setRootLayer(l); try { catalog.add(lg2);
private static void allStyles(LayerGroupInfo group, List<StyleInfo> styles) { if (LayerGroupInfo.Mode.EO.equals(group.getMode())) { styles.add(group.getRootLayerStyle()); } int size = group.getLayers().size(); for (int i = 0; i < size; i++) { PublishedInfo p = group.getLayers().get(i); StyleInfo s = group.getStyles().get(i); if (p instanceof LayerInfo) { styles.add(group.getStyles().get(i)); } else if (p instanceof LayerGroupInfo) { allStyles((LayerGroupInfo) p, styles); } else if (p == null && s != null) { expandStyleGroup( s, group.getBounds() == null ? null : group.getBounds().getCoordinateReferenceSystem(), null, styles); } } }
@Test public void testLayerGroupBounds() throws Exception { Catalog cat = getCatalog(); CatalogBuilder cb = new CatalogBuilder(cat); cb.setStore(cat.getDataStoreByName(MockData.LINES.getPrefix())); FeatureTypeInfo fti = cb.buildFeatureType(toName(MockData.LINES)); cb.setupBounds(fti); LayerInfo layer = cat.getFactory().createLayer(); layer.setResource(fti); layer.setName(fti.getName()); layer.setEnabled(true); layer.setType(PublishedType.VECTOR); LayerGroupInfo group = cat.getFactory().createLayerGroup(); group.setName("group"); group.getLayers().add(layer); group.getStyles().add(null); assertNull(group.getBounds()); // force bounds computation cb.calculateLayerGroupBounds(group); assertNotNull(group.getBounds()); assertEquals(fti.getNativeBoundingBox(), group.getBounds()); }
@Test public void testSingleStyleGroup() throws Exception { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); StyleInfo s = catalog.getStyleByName("singleStyleGroup"); lg.setWorkspace(null); lg.setName("singleStyleLayerGroup"); lg.getLayers().add(null); lg.getStyles().add(s); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("singleStyleLayerGroup"); assertEquals(1, resolved.layers().size()); assertEquals(1, resolved.styles().size()); assertEquals(s.getStyle(), resolved.styles().get(0).getStyle()); // Test bounds calculation new LayerGroupHelper(lg).calculateBounds(); assertEquals( catalog.getLayerByName((getLayerId(MockData.STREAMS))) .getResource() .getLatLonBoundingBox(), lg.getBounds()); }
layerGroups.add(lg); expect(lg.getId()).andReturn(newId()).anyTimes(); expect(lg.getName()).andReturn(name).anyTimes(); expect(lg.getLayers()).andReturn(grpLayers).anyTimes(); expect(lg.getStyles()).andReturn(grpStyles).anyTimes(); expect(lg.getRootLayer()).andReturn(null).anyTimes(); expect(lg.getRootLayerStyle()).andReturn(null).anyTimes(); lg.accept((CatalogVisitor) anyObject()); expectLastCall() .andAnswer(
@Test public void testContainerLayerGroup() throws Exception { String layerId = getLayerId(MockData.BUILDINGS); LayerInfo layer = getCatalog().getLayerByName(layerId); LayerGroupInfo group = getCatalog().getFactory().createLayerGroup(); group.setName("testContainerLayerGroup"); group.setMode(LayerGroupInfo.Mode.CONTAINER); group.getLayers().add(layer); getCatalog().add(group); try { PreviewLayerProvider provider = new PreviewLayerProvider(); PreviewLayer pl = getPreviewLayer(provider, group.prefixedName()); assertNull(pl); } finally { getCatalog().remove(group); } }
buildWrapperPolicy(user, group, group.getName(), mixedModeBehavior, containers); if (policy.level == AccessLevel.HIDDEN) { return null; LayerInfo rootLayer = group.getRootLayer(); if (LayerGroupInfo.Mode.EO.equals(group.getMode())) { extendedContainers.add(group); final List<PublishedInfo> layers = group.getLayers(); final List<StyleInfo> styles = group.getStyles(); final List<StyleInfo> selectedStyles = new ArrayList<>(layers.size()); ArrayList<PublishedInfo> wrapped = new ArrayList<>(layers.size());
@Test public void testAddLayerGroup() throws Exception { testAddLayer(); // testAddStyle(); File f = new File(testData.getDataDirectoryRoot(), "layergroups/lg.xml"); assertFalse(f.exists()); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); lg.setName("lg"); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(catalog.getStyleByName("foostyle")); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(/* default style */ null); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(catalog.getStyleByName("foostyle")); catalog.add(lg); assertTrue(f.exists()); }
private void registerContainedGroups(LayerGroupInfo lg) { lg.getLayers() .stream() .filter(IS_GROUP) .forEach( p -> { String containerId = lg.getId(); String containedId = p.getId(); LayerGroupSummary container = groupCache.get(containerId); LayerGroupSummary contained = groupCache.get(containedId); if (container != null && contained != null) { contained.containerGroups.add(container); } }); }
public void remove(LayerInfo layer) { // ensure no references to the layer for (LayerGroupInfo lg : facade.getLayerGroups()) { if (lg.getLayers().contains(layer) || layer.equals(lg.getRootLayer())) { String msg = "Unable to delete layer referenced by layer group '" + lg.getName() + "'"; throw new IllegalArgumentException(msg); } } facade.remove(layer); removed(layer); }