@Override public Mode getMode() { return delegate.getMode(); }
public boolean hideLayer(LayerInfo layer) { PublishedInfo local = LocalPublished.get(); if (local == null) { return false; } else if (local instanceof LayerInfo) { return !local.equals(layer); } else if (local instanceof LayerGroupInfo) { LayerGroupInfo lg = (LayerGroupInfo) local; Request request = Dispatcher.REQUEST.get(); if (request != null && "WMS".equalsIgnoreCase(request.getService()) && "GetCapabilities".equals(request.getRequest()) && lg.getMode() == Mode.SINGLE) { return true; } else { return !new LayerGroupHelper(lg).allLayers().contains(layer); } } else { throw new RuntimeException("Unknown PublishedInfo of type " + local.getClass()); } }
/** * Returns true if there is a path from the group to the resource that does not involve crossing * a opaque group */ private boolean allowsAccessViaNonOpaqueGroup(LayerGroupInfo gi, ResourceInfo resource) { for (PublishedInfo pi : gi.getLayers()) { if (pi instanceof LayerInfo) { if (resource.equals(((LayerInfo) pi).getResource())) { return true; } } else { LayerGroupInfo lg = (LayerGroupInfo) pi; if (lg.getMode() != LayerGroupInfo.Mode.OPAQUE_CONTAINER && allowsAccessViaNonOpaqueGroup(lg, resource)) { return true; } } } return false; }
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); }
if (LayerGroupInfo.Mode.EO.equals(group.getMode())) {
private List<PublishedInfo> allPublished(LayerGroupInfo group, List<PublishedInfo> publisheds) { if (LayerGroupInfo.Mode.EO.equals(group.getMode())) { publisheds.add(group.getRootLayer());
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); } } }
private static void allLayersForRendering( LayerGroupInfo group, List<LayerInfo> layers, boolean root) { switch (group.getMode()) { case EO: layers.add(group.getRootLayer());
private static void allStylesForRendering( LayerGroupInfo group, List<StyleInfo> styles, boolean root) { switch (group.getMode()) { case EO: styles.add(group.getRootLayerStyle());
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); } } }
if (layerGroup.getMode() == null) { 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( throw new IllegalArgumentException( "Layer group in mode " + layerGroup.getMode().getName() + " must not have a root layer"); throw new IllegalArgumentException( "Layer group in mode " + layerGroup.getMode().getName() + " must not have a root layer style");
&& "WMS".equalsIgnoreCase(request.getService()) && "GetCapabilities".equals(request.getRequest()) && lg.getMode() == Mode.SINGLE) { return !lg.equals(layerGroup); } else if (!lg.equals(layerGroup)
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());
&& "WMS".equalsIgnoreCase(request.getService()) && "GetCapabilities".equals(request.getRequest()) && lg.getMode() == Mode.SINGLE) {
@Test public void testLegacyLayerGroupWithoutMode() throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<layerGroup>\n" + "<name>foo</name>\n" + "<title>foo title</title>\n" + "<abstractTxt>foo abstract</abstractTxt>\n" + "<layers>\n" + "<layer>\n" + "<id>LayerInfoImpl--570ae188:124761b8d78:-7fb0</id>\n" + "</layer>\n" + "</layers>\n" + "<styles>\n" + "<style/>\n" + "</styles>\n" + "<bounds>\n" + "<minx>589425.9342365642</minx>\n" + "<maxx>609518.6719560538</maxx>\n" + "<miny>4913959.224611808</miny>\n" + "<maxy>4928082.949945881</maxy>\n" + "<crs class=\"projected\">EPSG:26713</crs>\n" + "</bounds>\n" + "</layerGroup>\n"; LayerGroupInfo group = persister.load(new ByteArrayInputStream(xml.getBytes()), LayerGroupInfo.class); Assert.assertEquals(LayerGroupInfo.Mode.SINGLE, group.getMode()); Catalog catalog = new CatalogImpl(); Assert.assertTrue(catalog.validate(group, false).isValid()); }
if (other.getName() != null) return false; } else if (!lg.getName().equals(other.getName())) return false; if (lg.getMode() == null) { if (other.getMode() != null) return false; } else if (!lg.getMode().equals(other.getMode())) return false; if (lg.getTitle() == null) { if (other.getTitle() != null) {
@Test public void testLayerGroupType() { addLayer(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(null); lg2.setName("layerGroup2"); lg2.setMode(LayerGroupInfo.Mode.NAMED); lg2.getLayers().add(l); lg2.getStyles().add(s); catalog.add(lg2); assertEquals(1, catalog.getLayerGroups().size()); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals(LayerGroupInfo.Mode.NAMED, lg2.getMode()); lg2.setMode(LayerGroupInfo.Mode.SINGLE); catalog.save(lg2); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals(LayerGroupInfo.Mode.SINGLE, lg2.getMode()); }
private void testSerializationWithMode(Mode mode) throws Exception { Catalog catalog = new CatalogImpl(); CatalogFactory cFactory = catalog.getFactory(); LayerGroupInfo group1 = cFactory.createLayerGroup(); group1.setName("foo"); group1.setTitle("foo title"); group1.setAbstract("foo abstract"); group1.setMode(mode); ByteArrayOutputStream out = out(); persister.save(group1, out); // print(in(out)); ByteArrayInputStream in = in(out); LayerGroupInfo group2 = persister.load(in, LayerGroupInfo.class); assertEquals(group1.getName(), group2.getName()); assertEquals(group1.getTitle(), group2.getTitle()); assertEquals(group1.getAbstract(), group2.getAbstract()); assertEquals(group1.getMode(), group2.getMode()); Document dom = dom(in(out)); assertEquals("layerGroup", dom.getDocumentElement().getNodeName()); }
assertEquals(LayerGroupInfo.Mode.EO, lg2.getMode()); assertEquals(l, lg2.getRootLayer()); assertEquals(s, lg2.getRootLayerStyle());
@Test public void testPostWithTypeContainer() throws Exception { String xml = "<layerGroup>" + "<name>newLayerGroupWithTypeCONTAINER</name>" + "<mode>CONTAINER</mode>" + "<layers>" + "<layer>Ponds</layer>" + "<layer>Forests</layer>" + "</layers>" + "<styles>" + "<style>polygon</style>" + "<style>point</style>" + "</styles>" + "</layerGroup>"; MockHttpServletResponse response = postAsServletResponse(RestBaseController.ROOT_PATH + "/layergroups", xml); assertEquals(201, response.getStatus()); LayerGroupInfo lg = catalog.getLayerGroupByName("newLayerGroupWithTypeCONTAINER"); assertNotNull(lg); assertEquals(LayerGroupInfo.Mode.CONTAINER, lg.getMode()); }