From: <hei...@us...> - 2009-03-22 14:21:38
|
Revision: 2636 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=2636&view=rev Author: heikkidoeleman Date: 2009-03-22 14:21:28 +0000 (Sun, 22 Mar 2009) Log Message: ----------- Register ISO metadata into ebRIM registry. Added Paths: ----------- sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/ebrimregistry/ sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/ebrimregistry/EbrimUpdater.java Added: sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/ebrimregistry/EbrimUpdater.java =================================================================== --- sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/ebrimregistry/EbrimUpdater.java (rev 0) +++ sandbox/3.0.x/geonetwork_legacy/src/org/fao/geonet/ebrimregistry/EbrimUpdater.java 2009-03-22 14:21:28 UTC (rev 2636) @@ -0,0 +1,64 @@ +package org.fao.geonet.ebrimregistry; + +import java.io.ByteArrayInputStream; +import java.util.List; + +import jeeves.server.context.ServiceContext; +import jeeves.utils.Xml; + +import org.fao.geonet.kernel.DataManager; +import org.geonetwork.client.ebrim.csw202.ISO19139InsertionClient; +import org.geonetwork.domain.ebrim.exception.GeoNetworkException; +import org.jdom.Element; + +/** + * + * Registers all unregistered ISO19139 metadata into the ebRIM registry. + * + * @author heikki doeleman + * + */ +public class EbrimUpdater { + + private ServiceContext srvContext ; + private DataManager dataMan; + public EbrimUpdater(ServiceContext srvContext, DataManager dataMan){ + this.srvContext = srvContext; + this.dataMan = dataMan; + }; + + /** + * Registers all unregistered ISO19139 metadata into the ebRIM registry. + * + * @throws EbrimUpdaterException + */ + public void updateRegistry() throws EbrimUpdaterException { + try { + ISO19139InsertionClient client = new ISO19139InsertionClient(); + // read all ISO19139 metadata from the database that needs to be registered + List<Element> unregisteredMetadata = dataMan.getUnregisteredMetadata(srvContext); + + // register ISO19139 metadata + for(Element metadata : unregisteredMetadata) { + String metadataString = Xml.getString(metadata); + ByteArrayInputStream bs = new ByteArrayInputStream(metadataString.getBytes()); + client.webInsert(bs); + } + // update isRegistered flag + dataMan.setRegistered(unregisteredMetadata, srvContext); + } + catch(Exception x) { + throw new EbrimUpdaterException(x.getMessage()); + } + } + + @SuppressWarnings("serial") + class EbrimUpdaterException extends GeoNetworkException { + public EbrimUpdaterException(String newMessage) { + super(newMessage); + } + } + + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |