@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); }
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 List<PublishedInfo> allPublished(LayerGroupInfo group, List<PublishedInfo> publisheds) { if (LayerGroupInfo.Mode.EO.equals(group.getMode())) { publisheds.add(group.getRootLayer()); int size = group.getLayers().size(); for (int i = 0; i < size; i++) { PublishedInfo p = group.getLayers().get(i); StyleInfo s; if (group.getStyles() == null || group.getStyles().size() == 0) { s = null; } else { s = group.getStyles().get(i); publisheds.add(l); } else if (p instanceof LayerGroupInfo) { publisheds.add(p); } else if (p == null && s != null) { List<LayerInfo> layers = new ArrayList<>();
FeatureTypeInfo ft2 = catalog.getFactory().createFeatureType(); ft2.setName("ft2Name"); ft2.setStore(ds); ft2.setNamespace(ns); catalog.add(ft2); LayerInfo l2 = catalog.getFactory().createLayer(); l2.setResource(ft2); l2.setDefaultStyle(s); catalog.add(l2); group.getLayers().add(l2); group.getStyles().add(null); catalog.save(group); PublishedInfo pi = group.getLayers().remove(1); group.getLayers().add(0, pi); catalog.save(group); StyleInfo s2 = catalog.getFactory().createStyle(); s2.setName("s2Name"); s2.setFilename("s2Filename"); catalog.add(s2);
@Test public void testAddLayerGroupNameConflict() throws Exception { addLayerGroup(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setName("layerGroup"); lg2.getLayers().add(l); lg2.getStyles().add(s); try { catalog.add(lg2); fail("should have failed because same name and no workspace set"); } catch (IllegalArgumentException expected) { } // setting a workspace shluld pass lg2.setWorkspace(ws); catalog.add(lg2); }
final List<PublishedInfo> layers = group.getLayers(); final List<StyleInfo> styles = group.getStyles(); final List<PublishedInfo> filteredLayers = new ArrayList<>(); final List<StyleInfo> filteredStyles = new ArrayList<>(); filteredLayers.add(p); filteredStyles.add(style); return null; } else { if (!group.getLayers().equals(filteredLayers)) { return new AdvertisedLayerGroup(group, filteredLayers, filteredStyles); } else {
public void visit(LayerInfo layer) { // first update the groups, remove the layer, and if no // other layers remained, remove the group as well Filter groupContainsLayer = Predicates.equal("layers.id", layer.getId(), MatchAction.ANY); try (CloseableIterator<LayerGroupInfo> groups = catalog.list(LayerGroupInfo.class, groupContainsLayer)) { while (groups.hasNext()) { LayerGroupInfo group = groups.next(); // parallel remove of layer and styles int index = group.getLayers().indexOf(layer); while (index != -1) { group.getLayers().remove(index); group.getStyles().remove(index); index = group.getLayers().indexOf(layer); } // either update or remove the group if (group.getLayers().size() == 0) { visit(catalog.getLayerGroup(group.getId())); } else { catalog.save(group); } } } // remove the layer and (for the moment) its resource as well // TODO: change this to just remove the resource once the // resource/publish split is done ResourceInfo resource = layer.getResource(); catalog.remove(layer); catalog.remove(resource); }
@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 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 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); } }
@Test public void testAddLayerGroupWithWorkspaceWithResourceFromAnotherWorkspace() { WorkspaceInfo ws = catalog.getFactory().createWorkspace(); ws.setName("other"); catalog.add(ws); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(ws); lg2.setName("layerGroup2"); lg2.getLayers().add(l); lg2.getStyles().add(s); try { catalog.add(lg2); fail(); } catch (IllegalArgumentException expected) { } }
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); } } }
public void visit(LayerGroupInfo layerGroupToRemove) { // remove layerGroupToRemove references from other groups Filter associatedTo = Predicates.equal("layers.id", layerGroupToRemove.getId(), MatchAction.ANY); try (CloseableIterator<LayerGroupInfo> it = catalog.list(LayerGroupInfo.class, associatedTo)) { while (it.hasNext()) { LayerGroupInfo group = it.next(); // parallel remove of layer and styles int index = getLayerGroupIndex(layerGroupToRemove, group); while (index != -1) { group.getLayers().remove(index); group.getStyles().remove(index); index = getLayerGroupIndex(layerGroupToRemove, group); } if (group.getLayers().size() == 0) { // if group is empty, delete it visit(group); } else { catalog.save(group); } } } // finally remove the group catalog.remove(layerGroupToRemove); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Catalog catalog = getCatalog(); LayerInfo layer = catalog.getLayerByName(new NameImpl(CiteTestData.BASIC_POLYGONS)); StyleInfo style = catalog.getStyleByName(CiteTestData.DEFAULT_VECTOR_STYLE); CatalogFactory factory = catalog.getFactory(); LayerGroupInfo lg1 = factory.createLayerGroup(); lg1.setName("LayerGroup1"); lg1.getLayers().add(layer); lg1.getStyles().add(style); catalog.add(lg1); LayerGroupInfo lg2 = factory.createLayerGroup(); lg2.setName("LayerGroup2"); lg2.setWorkspace(catalog.getWorkspaceByName(CiteTestData.CITE_PREFIX)); lg2.getLayers().add(layer); lg2.getStyles().add(style); catalog.add(lg2); }
switch (group.getMode()) { case EO: styles.add(group.getRootLayerStyle()); break; case CONTAINER: 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) { allStylesForRendering((LayerGroupInfo) p, styles, false);
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); } } }
@Test public void testLayerGroupNullLayerReferences() { addLayer(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); lg.setWorkspace(null); lg.setName("layerGroup2"); lg.getLayers().add(null); lg.getStyles().add(null); lg.getLayers().add(l); lg.getStyles().add(s); lg.getLayers().add(null); lg.getStyles().add(null); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("layerGroup2"); assertEquals(1, resolved.layers().size()); assertEquals(1, resolved.styles().size()); assertEquals(s, resolved.styles().get(0)); }
switch (group.getMode()) { case EO: layers.add(group.getRootLayer()); break; case CONTAINER: 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) { LayerInfo l = (LayerInfo) p; layers.add(l); } else if (p instanceof LayerGroupInfo) { allLayersForRendering((LayerGroupInfo) p, layers, false);
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.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 =