From: <aca...@us...> - 2007-06-19 22:03:39
|
Revision: 470 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=470&view=rev Author: acarboni Date: 2007-06-19 15:03:41 -0700 (Tue, 19 Jun 2007) Log Message: ----------- Now removed metadata are backupped Modified Paths: -------------- trunk/src/org/fao/geonet/kernel/DataManager.java trunk/src/org/fao/geonet/services/metadata/Delete.java Modified: trunk/src/org/fao/geonet/kernel/DataManager.java =================================================================== --- trunk/src/org/fao/geonet/kernel/DataManager.java 2007-06-19 22:02:28 UTC (rev 469) +++ trunk/src/org/fao/geonet/kernel/DataManager.java 2007-06-19 22:03:41 UTC (rev 470) @@ -28,6 +28,7 @@ package org.fao.geonet.kernel; import java.util.Enumeration; +import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; @@ -334,6 +335,46 @@ //-------------------------------------------------------------------------- + public MdInfo getMetadataInfo(Dbms dbms, String id) throws Exception + { + String query = "SELECT id, uuid, schemaId, isTemplate, isHarvested, createDate, "+ + "changeDate, source, title, root FROM Metadata WHERE id=?"; + + List list = dbms.select(query, new Integer(id)).getChildren(); + + if (list.size() == 0) + return null; + + Element record = (Element) list.get(0); + + MdInfo info = new MdInfo(); + + info.id = id; + info.uuid = record.getChildText("uuid"); + info.schemaId = record.getChildText("schemaid"); + info.isHarvested = "y".equals(record.getChildText("isharvested")); + info.createDate = record.getChildText("createdate"); + info.changeDate = record.getChildText("changedate"); + info.source = record.getChildText("source"); + info.title = record.getChildText("title"); + info.root = record.getChildText("root"); + + String temp = record.getChildText("istemplate"); + + if ("y".equals(temp)) + info.template = MdInfo.Template.TEMPLATE; + + else if ("s".equals(temp)) + info.template = MdInfo.Template.SUBTEMPLATE; + + else + info.template = MdInfo.Template.METADATA; + + return info; + } + + //-------------------------------------------------------------------------- + public String getVersion(String id) { return editLib.getVersion(id); Modified: trunk/src/org/fao/geonet/services/metadata/Delete.java =================================================================== --- trunk/src/org/fao/geonet/services/metadata/Delete.java 2007-06-19 22:02:28 UTC (rev 469) +++ trunk/src/org/fao/geonet/services/metadata/Delete.java 2007-06-19 22:03:41 UTC (rev 470) @@ -41,6 +41,7 @@ import org.fao.geonet.constants.Params; import org.fao.geonet.kernel.AccessManager; import org.fao.geonet.kernel.DataManager; +import org.fao.geonet.kernel.MdInfo; import org.fao.geonet.kernel.mef.MEFLib; import org.fao.geonet.kernel.search.MetaSearcher; import org.fao.geonet.lib.Lib; @@ -75,9 +76,9 @@ //----------------------------------------------------------------------- //--- check access - String uuid = dataMan.getMetadataUuid(dbms, id); + MdInfo info = dataMan.getMetadataInfo(dbms, id); - if (uuid == null) + if (info == null) throw new IllegalArgumentException("Metadata not found --> " + id); HashSet hsOper = accessMan.getOperations(context, id, context.getIpAddress()); @@ -88,7 +89,8 @@ //----------------------------------------------------------------------- //--- backup metadata in 'removed' folder - backupFile(context, id, uuid, MEFLib.doExport(context, uuid, "full", false)); + if (info.template != MdInfo.Template.SUBTEMPLATE) + backupFile(context, id, info.uuid, MEFLib.doExport(context, info.uuid, "full", false)); //----------------------------------------------------------------------- //--- delete metadata and return status This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |