From: <jes...@us...> - 2009-06-26 14:07:01
|
Revision: 4471 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=4471&view=rev Author: jesseeichar Date: 2009-06-26 14:06:57 +0000 (Fri, 26 Jun 2009) Log Message: ----------- changed geoid to be the geoid preceding the extent Modified Paths: -------------- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ExtentsStrategy.java sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ReusableObjManager.java Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ExtentsStrategy.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ExtentsStrategy.java 2009-06-26 13:51:32 UTC (rev 4470) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ExtentsStrategy.java 2009-06-26 14:06:57 UTC (rev 4471) @@ -333,16 +333,27 @@ } private String findGeoId(Result extents, Info e, String metadataLang) throws Exception { - int index = extents.geographic.indexOf(e); - Info geoIdElem = e; - if(index>0 && index < extents.geoId.size()){ - geoIdElem = extents.geoId.get(index); - }else if(!extents.geoId.isEmpty()){ + int index = extents.all.indexOf(e); + + int distance = -1; + Info geoIdElem = null; + for (Info geoId : extents.geoId) { + int gIndex = extents.all.indexOf(geoId); + int newDist = index - gIndex; + if(distance<0 || newDist>-1 && distance>newDist){ + geoIdElem = geoId; + distance = newDist; + } + } + if(geoIdElem==null && !extents.geoId.isEmpty()){ geoIdElem = extents.geoId.get(extents.geoId.size()-1); + } else if (geoIdElem == null ){ + geoIdElem = e; } Element xml = Xml.transform((Element) geoIdElem.copy.clone(), _flattenStyleSheet); String geoId = LangUtils.toInternalMultilingual(metadataLang, _appPath, xml.getChild("geoId")); + return geoId; } /** Modified: sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ReusableObjManager.java =================================================================== --- sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ReusableObjManager.java 2009-06-26 13:51:32 UTC (rev 4470) +++ sandbox/geocat.ch/trunk/src/org/fao/geonet/services/reusable/ReusableObjManager.java 2009-06-26 14:06:57 UTC (rev 4471) @@ -149,13 +149,15 @@ ProcessParams searchParams = new ProcessParams(dbms, logger, id, metadata, metadata, gc.getThesaurusManager(), gc .getExtentManager(), context.getBaseUrl(), gc.getSettingManager(),false); - Element changed = process(searchParams).get(0); + List<Element> process = process(searchParams); + if( process !=null ) { + Element changed = process.get(0); - if (changed!=null){ - XmlSerializer.update(dbms, id, changed); + if (changed!=null){ + XmlSerializer.update(dbms, id, changed); + } } - - return changed!=null; + return process!=null; } public List<Element> process(ProcessParams parameterObject) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |