@Override public LayerInfo getRootLayer() { return delegate.getRootLayer(); }
/** 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); } }
private void removeStyleInLayerGroup(LayerGroupInfo group, StyleInfo style) { boolean dirty = false; // root layer style if (style.equals(group.getRootLayerStyle())) { group.setRootLayerStyle( getResourceDefaultStyle(group.getRootLayer().getResource(), style)); dirty = true; } // layer styles List<StyleInfo> styles = group.getStyles(); for (int i = 0; i < styles.size(); i++) { StyleInfo publishedStyle = styles.get(i); if (publishedStyle != null && publishedStyle.equals(style)) { // if publishedStyle is not null, we have a layer LayerInfo layer = (LayerInfo) group.getLayers().get(i); if (!layer.getDefaultStyle().equals(style)) { // use default style styles.set(i, layer.getDefaultStyle()); } else { styles.set(i, getResourceDefaultStyle(layer.getResource(), style)); } dirty = true; } } if (dirty) { catalog.save(group); } }
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); }
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
public void remove(LayerGroupInfo layerGroup) { // ensure no references to the layer group for (LayerGroupInfo lg : facade.getLayerGroups()) { if (lg.getLayers().contains(layerGroup) || layerGroup.equals(lg.getRootLayer())) { String msg = "Unable to delete layer group referenced by layer group '" + lg.getName() + "'"; throw new IllegalArgumentException(msg); } } facade.remove(layerGroup); removed(layerGroup); }
throw new IllegalArgumentException("Layer group mode must not be null"); } else if (LayerGroupInfo.Mode.EO.equals(layerGroup.getMode())) { if (layerGroup.getRootLayer() == null) { throw new IllegalArgumentException( "Layer group in mode " if (layerGroup.getRootLayer() != null) { throw new IllegalArgumentException( "Layer group in mode "
LayerInfo rootLayer = group.getRootLayer(); if (LayerGroupInfo.Mode.EO.equals(group.getMode())) {
private void checkLayerGroupResourceIsInWorkspace(LayerGroupInfo layerGroup, WorkspaceInfo ws) { if (layerGroup == null) return; if (layerGroup.getWorkspace() != null && !ws.equals(layerGroup.getWorkspace())) { throw new IllegalArgumentException( "Layer group within a workspace (" + ws.getName() + ") can not contain resources from other workspace: " + layerGroup.getWorkspace().getName()); } checkLayerGroupResourceIsInWorkspace(layerGroup.getRootLayer(), ws); checkLayerGroupResourceIsInWorkspace(layerGroup.getRootLayerStyle(), ws); if (layerGroup.getLayers() != null) { for (PublishedInfo p : layerGroup.getLayers()) { if (p instanceof LayerGroupInfo) { checkLayerGroupResourceIsInWorkspace((LayerGroupInfo) p, ws); } else if (p instanceof LayerInfo) { checkLayerGroupResourceIsInWorkspace((LayerInfo) p, ws); } } } if (layerGroup.getStyles() != null) { for (StyleInfo s : layerGroup.getStyles()) { checkLayerGroupResourceIsInWorkspace(s, ws); } } }
private List<PublishedInfo> allPublished(LayerGroupInfo group, List<PublishedInfo> publisheds) { if (LayerGroupInfo.Mode.EO.equals(group.getMode())) { publisheds.add(group.getRootLayer());
} else if (!lg.getIdentifiers().equals(other.getIdentifiers())) return false; if (lg.getRootLayer() == null) { if (other.getRootLayer() != null) return false; } else if (!lg.getRootLayer().equals(other.getRootLayer())) return false;
switch (group.getMode()) { case EO: layers.add(group.getRootLayer()); break; case CONTAINER:
expect(lg.getStyles()).andReturn(grpStyles).anyTimes(); expect(lg.getRootLayer()).andReturn(null).anyTimes(); expect(lg.getRootLayerStyle()).andReturn(null).anyTimes();
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); } } }
assertEquals(l, lg2.getRootLayer()); assertEquals(s, lg2.getRootLayerStyle());
protected LayerGroupInfo buildEOLayerGroup( String name, LayerInfo rootLayer, StyleInfo style, WorkspaceInfo ws, PublishedInfo... contents) { LayerGroupInfo layerGroup = createNiceMock(LayerGroupInfo.class); expect(layerGroup.getName()).andReturn(name).anyTimes(); expect(layerGroup.prefixedName()) .andReturn((ws != null ? ws.getName() + ":" : "") + name) .anyTimes(); expect(layerGroup.getMode()).andReturn(Mode.EO).anyTimes(); expect(layerGroup.getRootLayer()).andReturn(rootLayer).anyTimes(); expect(layerGroup.getLayers()) .andReturn(new ArrayList<PublishedInfo>(Arrays.asList(contents))) .anyTimes(); expect(layerGroup.getStyles()).andReturn(Arrays.asList(style)).anyTimes(); expect(layerGroup.getWorkspace()).andReturn(ws).anyTimes(); expect(layerGroup.layers()) .andAnswer(() -> new LayerGroupHelper(layerGroup).allLayers()) .anyTimes(); expect(layerGroup.getId()) .andAnswer(() -> (ws == null ? name : ws.getName() + ":" + name) + "-id") .anyTimes(); replay(layerGroup); return layerGroup; }
&& lg.getRootLayer() != null && style.equals(lg.getRootLayer().getDefaultStyle()))) { return true;
assertNotNull(layerGroup.getRootLayer());
@Test public void testPostWithTypeEO() throws Exception { String xml = "<layerGroup>" + "<name>newLayerGroupWithTypeEO</name>" + "<mode>EO</mode>" + "<rootLayer>Ponds</rootLayer>" + "<rootLayerStyle>polygon</rootLayerStyle>" + "<layers>" + "<layer>Forests</layer>" + "</layers>" + "<styles>" + "<style>point</style>" + "</styles>" + "</layerGroup>"; MockHttpServletResponse response = postAsServletResponse(RestBaseController.ROOT_PATH + "/layergroups", xml); assertEquals(201, response.getStatus()); LayerGroupInfo lg = catalog.getLayerGroupByName("newLayerGroupWithTypeEO"); assertNotNull(lg); assertEquals(LayerGroupInfo.Mode.EO, lg.getMode()); assertEquals("Ponds", lg.getRootLayer().getName()); assertEquals("polygon", lg.getRootLayerStyle().getName()); }
@Test public void testEoLayerGroupCreation() { String groupName = "EO-Dataset2"; String groupTitle = "title"; LayerGroupInfo group = builder.createEoLayerGroup( ws, groupName, groupTitle, getUrl("EO_Nat"), getUrl("EO_Channels"), "airmass", getUrl("EO_Airmass"), null, null); assertNotNull(group); assertEquals(groupName, group.getName()); assertEquals(groupTitle, group.getTitle()); assertEquals(3, group.getLayers().size()); assertEquals(LayerGroupInfo.Mode.EO, group.getMode()); assertNotNull(group.getRootLayer()); assertEquals(groupName + "_BROWSE", group.getRootLayer().getName()); }