Package org.geoserver.catalog

Examples of org.geoserver.catalog.LayerInfo


   * @return the resource for that layer
   * @throws LimbServiceException if the layer does not exist or is not a feature layer
   */
  protected FeatureTypeInfo getFeatureLayer( String name ) throws LimbServiceException
  {
    LayerInfo layer = this.geoServer.getCatalog().getLayerByName( name );
    if (layer == null)
      throw new LimbServiceException( "Layer '" + name + "' does not exist." );
   
    if (layer.getType() != LayerInfo.Type.VECTOR)
      throw new LimbServiceException( "Layer '" + name + "' is of type " + layer.getType() + ". Only vector layers are supported." );
   
    return (FeatureTypeInfo)layer.getResource();
  }
View Full Code Here


        Catalog cat2 = createCatalog();
        new CatalogCreator(cat2).workspace("bam");

        doImport(doExport("foo"), "bam", cat2);

        LayerInfo stuff = cat2.getLayerByName("bam:stuff");
        assertNotNull(stuff);

        assertNotNull(stuff.getDefaultStyle());
        assertNotNull(stuff.getResource());

        assertNotNull(((FeatureTypeInfo)stuff.getResource()).getFeatureSource(null, null));
    }
View Full Code Here

        Catalog cat2 = createCatalog();
        new CatalogCreator(cat2).workspace("bam");

        doImport(doExport("foo"), "bam", cat2);

        LayerInfo stuff = cat2.getLayerByName("bam:stuff");
        assertNotNull(stuff);

        assertNotNull(stuff.getDefaultStyle());
        assertEquals(1, stuff.getStyles().size());

        assertNotNull(stuff.getStyles().iterator().next());
    }
View Full Code Here

        protected ResourceBuilder(T resource, LayerBuilder layerBuilder) {
            this.resource = resource;
            this.layerBuilder = layerBuilder;

            LayerInfo layer = layerBuilder.layer;
            when(resource.getName()).thenReturn(layerBuilder.name);
            when(resource.getNativeName()).thenReturn(layerBuilder.name);
            when(resource.getNamespace()).thenAnswer(new Answer<NamespaceInfo>() {
                @Override
                public NamespaceInfo answer(InvocationOnMock invocation) throws Throwable {
                    return ResourceBuilder.this.layerBuilder.workspaceBuilder.namespace;
                }
            });
            when(layer.getResource()).thenReturn(resource);
        }
View Full Code Here

            .contentType(MediaType.APPLICATION_JSON)
            .content(obj.toString());

        mvc.perform(req).andExpect(status().isOk()).andReturn();

        LayerInfo l = gs.getCatalog().getLayerByName("foo:one");
        verify(l, times(1)).setTitle("new title");
    }
View Full Code Here

        r.setStore(s);
        r.setNamespace(namespace);
        catalog.add(r);

        File layerFile = new File(resourceDir, "layer.xml");
        LayerInfo l = depersist(layerFile, LayerInfo.class);
        l.setResource(r);

        // have to do a bit more hacking to get the style to resolve properly since it's reference is
        // encoded by name, basically parse the layer.xml and pull out the name and resolve it
        // manually
        resolveStyles(l, layerFile);
View Full Code Here

        }
        return ws;
    }

    protected LayerInfo findLayer(String wsName, String name, Catalog cat) {
        LayerInfo l = cat.getLayerByName(wsName+":"+name);
        if( l == null ){
            throw new NotFoundException(String.format("No such layer %s:%s", wsName, name));
        }
        return l;
    }
View Full Code Here

        String name = obj.str("name");
        if (name == null) {
            throw new BadRequestException("Layer object requires name");
        }
        try {
            @SuppressWarnings("unused")
            LayerInfo l = findLayer(wsName, name, cat);
            throw new BadRequestException("Layer named '" + wsName + ":" + name
                    + "' already exists");
        } catch (NotFoundException good) {
        }

        LayerInfo l = null;
        try {
            if (obj.has("layer")) {
                l = createLayerFromLayer(obj.object("layer"), ws, cat);
            } else if (obj.has("resource")) {
                l = createLayerFromResource(obj.object("resource"), ws, cat);
            } else {
                throw new BadRequestException("Layer create requires from (to create from existing layer) or resource " +
                    "(to create from store data)");
            }
        }
        catch(IOException e) {
            throw new RuntimeException("Failed to create layer: " + e.getMessage(), e);
        }

        // proj specified?
        JSONObj proj = obj.object("proj");
        if (proj != null) {
            String srs = null;
            try {
                srs = IO.srs(proj);
            } catch (IllegalArgumentException e) {
                throw new BadRequestException(e.getMessage(), e);
            }

            ResourceInfo r = l.getResource();
            r.setSRS(srs);
            try {
                new CatalogBuilder(cat).setupBounds(r);
            } catch (IOException e) {
                throw new RuntimeException("Unable to set projection on resource: " + e.getMessage(), e);
            }
        }

        // restore name in case it was replaced by duplicate
        l.getResource().setName(name);
        l.setName(name);

        // title
        String title = obj.str("title");
        if (title == null) {
            title = WordUtils.capitalize(name);
        }

        l.getResource().setTitle(title);
        l.setTitle(title);

        // description
        String desc = obj.str("description");
        if (desc != null) {
            l.getResource().setAbstract(desc);
            l.setAbstract(desc);
        }

        // copy the style into it's own unique
        try {
            l.setDefaultStyle(copyStyle(l, ws, cat));
        } catch (IOException e) {
            throw new RuntimeException("Error copying style: " + e.getMessage(), e);
        }

        Date created = new Date();
        Metadata.created(l, created);

        cat.add(l.getDefaultStyle());
        cat.add(l.getResource());
        cat.add(l);

        Metadata.modified(ws, created);
        cat.save(ws);
View Full Code Here

        return IO.layer(new JSONObj(), l, req);
    }

    LayerInfo createLayerFromLayer(JSONObj from, WorkspaceInfo ws, Catalog cat) {
        LayerInfo orig = findLayer(ws.getName(), from.str("name"), cat);
        ResourceInfo origResource = orig.getResource();

        CatalogFactory factory = cat.getFactory();

        CatalogBuilder builder = new CatalogBuilder(cat);
        builder.setWorkspace(ws);

        LayerInfo l = factory.createLayer();
        if (origResource instanceof FeatureTypeInfo){
            FeatureTypeInfo resource = (FeatureTypeInfo) origResource;
            FeatureTypeInfo data = factory.createFeatureType();
            builder.updateFeatureType(data, resource);
            l.setResource(data);
        }
        else if (origResource instanceof CoverageInfo){
            CoverageInfo resource = (CoverageInfo) origResource;
            CoverageInfo data = factory.createCoverage();
            builder.updateCoverage( data,  resource);
            l.setResource(data);
        }
        else if (origResource instanceof WMSLayerInfo){
            WMSLayerInfo resource = (WMSLayerInfo) origResource;
            WMSLayerInfo data = factory.createWMSLayer();
            builder.updateWMSLayer( data,  resource);
            l.setResource(data);
        }
        else {
            throw new BadRequestException("Unable to copy layer from " + origResource.getClass().getSimpleName());
        }

        l.setDefaultStyle(orig.getDefaultStyle());
        //builder.updateLayer( l, orig );
        return l;
    }
View Full Code Here



    @RequestMapping(value="/{wsName}/{name}", method = RequestMethod.GET)
    public @ResponseBody JSONObj get(@PathVariable String wsName, @PathVariable String name, HttpServletRequest req) {
        LayerInfo l = findLayer(wsName, name, geoServer.getCatalog());
        return layer(new JSONObj(), l, req);
    }
View Full Code Here

TOP

Related Classes of org.geoserver.catalog.LayerInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.