From: <jos...@us...> - 2009-05-04 23:43:11
|
Revision: 3558 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=3558&view=rev Author: josegar74 Date: 2009-05-04 23:43:04 +0000 (Mon, 04 May 2009) Log Message: ----------- ElementSet.full Modified Paths: -------------- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/csw202/CSW202ServiceImpl.java Modified: sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/csw202/CSW202ServiceImpl.java =================================================================== --- sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/csw202/CSW202ServiceImpl.java 2009-05-04 23:38:39 UTC (rev 3557) +++ sandbox/3.0.x/geonetwork-services-ebrim/src/main/java/org/geonetwork/services/ebrim/csw202/CSW202ServiceImpl.java 2009-05-04 23:43:04 UTC (rev 3558) @@ -1,11 +1,7 @@ package org.geonetwork.services.ebrim.csw202; import java.io.IOException; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; @@ -36,16 +32,13 @@ import org.geonetwork.domain.csw202.publication.HarvestResponse; import org.geonetwork.domain.csw202.publication.Transaction; import org.geonetwork.domain.csw202.publication.TransactionResponse; -import org.geonetwork.domain.csw202.record.AbstractRecord; -import org.geonetwork.domain.csw202.record.BoundingBox; -import org.geonetwork.domain.csw202.record.BriefRecord; -import org.geonetwork.domain.csw202.record.DCMIRecord; -import org.geonetwork.domain.csw202.record.SummaryRecord; +import org.geonetwork.domain.csw202.record.*; import org.geonetwork.domain.ebrim.extensionpackage.basicextension.storedquery.StoredQuery; import org.geonetwork.domain.ebrim.informationmodel.core.Identifiable; import org.geonetwork.domain.ebrim.informationmodel.core.RegistryObject; import org.geonetwork.domain.ebrim.informationmodel.core.Slot; import org.geonetwork.domain.ebrim.informationmodel.core.datatype.LongName; +import org.geonetwork.domain.ebrim.informationmodel.core.datatype.LocalizedString; import org.geonetwork.domain.ebrim.informationmodel.event.AdhocQuery; import org.geonetwork.domain.ebrim.informationmodel.xsd.ValueList; import org.geonetwork.domain.filter110.sort.SortBy; @@ -644,25 +637,27 @@ // // identifier // - Slot identifierSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/elements/1.1/identifier"); - String identifier = FindSlot.findslotValueAsString(identifierSlot); - brief.setIdentifier(identifier); + String identifier = registryObject.getId().getValue(); + brief.setIdentifier(identifier); // // title // - Slot titleSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/elements/1.1/title"); - String title = FindSlot.findslotValueAsString(titleSlot); - brief.setIdentifier(identifier); - brief.setTitle(title); - // + Set<LocalizedString> ls = registryObject.getName().getLocalizedStrings(); + for (LocalizedString s : ls) { + brief.setTitle(s.getValue()); + break; + } + + // // type // String type = registryObject.getObjectType().getValue(); brief.setType(type); - // + + // // bounding box // - Slot envelopeSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/spatial"); + Slot envelopeSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/envelope"); BoundingBox boundingBox = FindSlot.createBoundingBox(envelopeSlot); brief.setBoundingBox(boundingBox); @@ -670,14 +665,272 @@ } if(elementSet == ElementSet.summary) { SummaryRecord summary = new SummaryRecord(); + + // + // identifier + // + String identifier = registryObject.getId().getValue(); + summary.setIdentifier(identifier); + + // + // title + // + Set<LocalizedString> lsName = registryObject.getName().getLocalizedStrings(); + for (LocalizedString s : lsName) { + summary.setTitle(s.getValue()); + break; + } + + // + // type + // + String type = registryObject.getObjectType().getValue(); + summary.setType(type); + // + // bounding box + // + Slot envelopeSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/envelope"); + BoundingBox boundingBox = FindSlot.createBoundingBox(envelopeSlot); + summary.setBoundingBox(boundingBox); + // + // subject + // + Slot subjectSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/elements/1.1/subject"); + String subject = FindSlot.findslotValueAsString(subjectSlot); + summary.setSubject(subject); + // + // format + // + Slot formatSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/elements/1.1/format"); + String format = FindSlot.findslotValueAsString(formatSlot); + summary.setFormat(format); + // + // relation + // + Slot relationSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/elements/1.1/relation"); + String relation = FindSlot.findslotValueAsString(relationSlot); + summary.setRelation(relation); + // + // modified + // + Slot modifiedSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/modified"); + String modified = FindSlot.findslotValueAsString(modifiedSlot); + summary.setModified(modified); + // + // abstrack + // + //Slot abstractkSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/abstract"); + //String abstrackt = FindSlot.findslotValueAsString(abstractkSlot); + //summary.setAbstrakt(abstrackt); + Set<LocalizedString> lsDescription = registryObject.getDescription().getLocalizedStrings(); + for (LocalizedString s : lsDescription) { + summary.setAbstrakt(s.getValue()); + break; + } + + // + // spatial + // + Slot spatialSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/spatial"); + String spatial = FindSlot.findslotValueAsString(spatialSlot); + summary.setSpatial(spatial); + + return summary; } if(elementSet == ElementSet.full) { - DCMIRecord DCMI = new DCMIRecord(); - return DCMI; + Record full = createFullRecord(registryObject); + + return full; } return null; } + + private Record createFullRecord(RegistryObject registryObject) { + Record full = new Record(); + + // audience + full.setAudience(getSlotValue(registryObject, "http://purl.org/dc/terms/audience")); + + // educationLevel + full.setEducationLevel(getSlotValue(registryObject, "http://purl.org/dc/terms/educationLevel")); + + // mediator + full.setMediator(getSlotValue(registryObject, "http://purl.org/dc/terms/mediator")); + + // contributor + full.setContributor(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/contributor")); + + // coverage + full.setCoverage(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/coverage")); + + // spatial + full.setSpatial(getSlotValue(registryObject, "http://purl.org/dc/terms/spatial")); + + // temporal + full.setTemporal(getSlotValue(registryObject, "http://purl.org/dc/terms/temporal")); + + // creator + full.setCreator(getSlotValue(registryObject, "http://purl.org/dc/terms/creator")); + + // date + full.setDate(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/date")); + + // available + full.setAvailable(getSlotValue(registryObject, "http://purl.org/dc/terms/avalaible")); + + // created + full.setCreated(getSlotValue(registryObject, "http://purl.org/dc/terms/created")); + + // dateAccepted + full.setDateAccepted(getSlotValue(registryObject, "http://purl.org/dc/terms/dateAccepted")); + + // dateCopyrighted + full.setAvailable(getSlotValue(registryObject, "http://purl.org/dc/terms/dateCopyrighted")); + + // dateSubmitted + full.setDateSubmitted(getSlotValue(registryObject, "http://purl.org/dc/terms/dateSubmitted")); + + // issued + full.setIssued(getSlotValue(registryObject, "http://purl.org/dc/terms/issued")); + + // modified + full.setModified(getSlotValue(registryObject, "http://purl.org/dc/terms/modified")); + + // valid + full.setValid(getSlotValue(registryObject, "http://purl.org/dc/terms/valid")); + + // description + full.setDescription(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/description")); + + // abstrakt + //full.setAbstrakt(getSlotValue(registryObject, "http://purl.org/dc/terms/abstract")); + Set<LocalizedString> lsDescription = registryObject.getDescription().getLocalizedStrings(); + for (LocalizedString s : lsDescription) { + full.setAbstrakt(s.getValue()); + break; + } + + // tableOfContents + full.setTableOfContents(getSlotValue(registryObject, "http://purl.org/dc/terms/avalaible")); + + // format + full.setFormat(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/format")); + + // extent + full.setExtent(getSlotValue(registryObject, "http://purl.org/dc/terms/extent")); + + // medium + full.setMedium(getSlotValue(registryObject, "http://purl.org/dc/terms/medium")); + + // identifier + String identifier = registryObject.getId().getValue(); + full.setIdentifier(identifier); + + // bibliographicCitation; + full.setBibliographicCitation(getSlotValue(registryObject, "http://purl.org/dc/terms/bibliographicCitation")); + + // language + full.setLanguage(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/language")); + + // provenance + full.setProvenance(getSlotValue(registryObject, "http://purl.org/dc/terms/provenance")); + + // publisher + full.setPublisher(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/publisher")); + + // relation + full.setRelation(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/relation")); + + // conformsTo + full.setConformsTo(getSlotValue(registryObject, "http://purl.org/dc/terms/conformsTo")); + + // hasFormat + full.setHasFormat(getSlotValue(registryObject, "http://purl.org/dc/terms/hasFormat")); + + // hasPart + full.setHasPart(getSlotValue(registryObject, "http://purl.org/dc/terms/hasPart")); + + // hasVersion + full.setHasVersion(getSlotValue(registryObject, "http://purl.org/dc/terms/hasVersion")); + + // isFormatOf + full.setFormatOf(getSlotValue(registryObject, "http://purl.org/dc/terms/isFormatOf")); + + // isPartOf + full.setPartOf(getSlotValue(registryObject, "http://purl.org/dc/terms/isPartOf")); + + // isReferencedBy + full.setReferencedBy(getSlotValue(registryObject, "http://purl.org/dc/terms/isReferencedBy")); + + // isReplacedBy + full.setReplacedBy(getSlotValue(registryObject, "http://purl.org/dc/terms/isReplacedBy")); + + // isRequiredBy + full.setRequiredBy(getSlotValue(registryObject, "http://purl.org/dc/terms/isRequiredBy")); + + // isVersionOf + full.setVersionOf(getSlotValue(registryObject, "http://purl.org/dc/terms/isVersionOf")); + + // references + full.setReferences(getSlotValue(registryObject, "http://purl.org/dc/terms/references")); + + // replaces + full.setReplaces(getSlotValue(registryObject, "http://purl.org/dc/terms/replaces")); + + // requires + full.setRequires(getSlotValue(registryObject, "http://purl.org/dc/terms/requires")); + + // rights + full.setRights(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/rights")); + + // accessRights + full.setAccessRights(getSlotValue(registryObject, "http://purl.org/dc/terms/accessRights")); + + // license + full.setLicense(getSlotValue(registryObject, "http://purl.org/dc/terms/license")); + + // rightsHolder + full.setRightsHolder(getSlotValue(registryObject, "http://purl.org/dc/terms/rightsHolder")); + + // source + full.setSource(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/source")); + + // subject + full.setSubject(getSlotValue(registryObject, "http://purl.org/dc/elements/1.1/subject")); + + // title + Set<LocalizedString> lsName = registryObject.getName().getLocalizedStrings(); + for (LocalizedString s : lsName) { + full.setTitle(s.getValue()); + break; + } + + // alternative; + full.setAlternative(getSlotValue(registryObject, "http://purl.org/dc/terms/alternative")); + + // type + String type = registryObject.getObjectType().getValue(); + full.setType(type); + + // + // bounding box + // + Slot envelopeSlot = FindSlot.findByName(registryObject, "http://purl.org/dc/terms/envelope"); + BoundingBox boundingBox = FindSlot.createBoundingBox(envelopeSlot); + full.setBoundingBox(boundingBox); + + return full; + } + + private String getSlotValue(RegistryObject registryObject, String url) { + Slot slot = FindSlot.findByName(registryObject, url); + if (slot != null) + return FindSlot.findslotValueAsString(slot); + else + return null; + } + /** * Converts a list of search results (RegistryObjects) to a list of AbstractRecords, taking * into account the elementSet ('brief', 'summary' or 'full') and outputSchema parameters. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |