{"id":187,"date":"2007-09-07T02:06:00","date_gmt":"2007-09-07T05:06:00","guid":{"rendered":"http:\/\/www.fernandoquadro.com.br\/html\/2007\/09\/07\/trabalhando-com-o-geoserver-catalog\/"},"modified":"2010-02-25T14:47:13","modified_gmt":"2010-02-25T17:47:13","slug":"trabalhando-com-o-geoserver-catalog","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2007\/09\/07\/trabalhando-com-o-geoserver-catalog\/","title":{"rendered":"Trabalhando com o GeoServer Catalog"},"content":{"rendered":"<p>Neste tutorial voc\u00ea aprender\u00e1 como interagir com o cat\u00e1logo do GeoServer. O objetivo \u00e9 criar um servi\u00e7o simples que ir\u00e1 interagir com os dados das FeatureTypes e DataStores.<\/p>\n<p>Primeiro criaremos nosso servi\u00e7o, o qual chamaremos de CatalogLister e realizar\u00e1 as seguinte opera\u00e7\u00f5es: listar todos os datastores e featuretypes do cat\u00e1logo.<\/p>\n<p>[source language=&#8221;:Java&#8221;]<br \/>\npublic class CatalogLister {<\/p>\n<p>    public void listDataStores( OutputStream output ) {<br \/>\n    }<\/p>\n<p>    public void listFeatureTypes( OutputStream output ) {<br \/>\n    }<\/p>\n<p>}<br \/>\n[\/source]<\/p>\n<p>A primeira coisa que que faremos \u00e9 uma refer\u00eancia ao pr\u00f3prio cat\u00e1logo. Adicionando ao construtor um cat\u00e1logo como par\u00e2metro.<\/p>\n<p>[source language=&#8221;:Java&#8221;]<br \/>\nGeoServerCatalog catalog;<\/p>\n<p>public CatalogLister( GeoServerCatalog catalog ) {<br \/>\n    this.catalog = catalog;<br \/>\n}<br \/>\n[\/source]<\/p>\n<p>Faremos primeiro o m\u00e9todo para listar as DataStores. Implementando esta opera\u00e7\u00e3o, n\u00f3s acharemos cada DataStore e os imprimiremos na tela. Veja o c\u00f3digo: <\/p>\n<p>[source language=&#8221;:Java&#8221;]<br \/>\npublic void listDataStores( OutputStream output ) {<br \/>\n    \/\/output<br \/>\n    PrintStream printer = new PrintStream( output );<\/p>\n<p>    \/\/get all services from the catalog<br \/>\n    List services = catalog.members( null );<br \/>\n    for ( Iterator s = services.iterator(); s.hasNext(); ) {<br \/>\n        Service service = (Service) s.next();<\/p>\n<p>        \/\/ first we must test to see wether this<br \/>\n        \/\/ handle is backed by a datastore<br \/>\n        if ( service.canResolve( DataStore.class ) ) {<br \/>\n            \/\/it is a data store, write it to output<br \/>\n            printer.println( service.getIdentifier().toString() );<br \/>\n        }<br \/>\n    }<br \/>\n}<br \/>\n[\/source]<\/p>\n<p>Agora iremos implementar a lista de featuretypes. Veja o abaixo:<\/p>\n<p>[source language=&#8221;:Java&#8221;]<br \/>\npublic void listFeatureType( OutputStream output ) {<br \/>\n    \/\/output<br \/>\n    PrintStream printer = new PrintStream( output );<\/p>\n<p>    \/\/get all services from the catalog<br \/>\n    List services = catalog.members( null );<br \/>\n    for ( Iterator s = services.iterator(); s.hasNext(); ) {<br \/>\n        Service service = (Service) s.next();<\/p>\n<p>        \/\/get all children<br \/>\n        List geoResources = service.members( null );<br \/>\n        for ( Iterator g = geoResources.iterator(); g.hasNext(); ) {<br \/>\n            GeoResource geoResource = (GeoResourfce) g.next();<\/p>\n<p>            \/\/do the test<br \/>\n            if ( geoResource.canResolve( FeatureType.class ) ) {<br \/>\n                \/\/do the resolve<br \/>\n                FeatureType featureType = (FeatureType)<br \/>\n                geoResource.resolve( FeatureType.class, null );<\/p>\n<p>                printer.println( featureType.getTypeName() );<br \/>\n            }<\/p>\n<p>        }<\/p>\n<p>    }<br \/>\n}<br \/>\n[\/source]<\/p>\n<p>Agora que voc\u00ea j\u00e1 tem o c\u00f3digo, voc\u00ea pode fazer facilmente a manipula\u00e7\u00e3o do seu cat\u00e1logo.<\/p>\n<p>Fonte: <a href=\"http:\/\/docs.codehaus.org\/display\/GEOSDOC\/Working+With+The+Catalog\" target=\"_blank\">GeoServer <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neste tutorial voc\u00ea aprender\u00e1 como interagir com o cat\u00e1logo do GeoServer. O objetivo \u00e9 criar um servi\u00e7o simples que ir\u00e1 interagir com os dados das FeatureTypes e DataStores. Primeiro criaremos nosso servi\u00e7o, o qual chamaremos de CatalogLister e realizar\u00e1 as&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2007\/09\/07\/trabalhando-com-o-geoserver-catalog\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,24,6],"tags":[208,223],"class_list":["post-187","post","type-post","status-publish","format-standard","hentry","category-geoserver","category-gis","category-tecnologia","tag-geoserver","tag-gis"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":2,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":3539,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/187\/revisions\/3539"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}