package org.ariadne_eu.utils.registry; import java.util.ArrayList; import java.util.List; import org.jdom.Element; import org.jdom.Namespace; public class OaiPmh{ List<MetadataFormat> _metadataFormats; String _granularity; String _earliestDateStamp; String _deletedRecord; List<String> _sets; public OaiPmh(){ _metadataFormats = new ArrayList<MetadataFormat>(); _sets = new ArrayList<String>(); } public OaiPmh(String granularity, String earliestDateStamp, String deletedRecord){ _granularity=granularity; _earliestDateStamp=earliestDateStamp; _deletedRecord=deletedRecord; } public void setGranularuty(String granularity){ _granularity=granularity; } public void setEarliestDateStamp(String earliestDateStamp){ _earliestDateStamp=earliestDateStamp; } public void setDeletedRecord(String deletedRecord){ _deletedRecord=deletedRecord; } public String getGranularity(){ return _granularity; } public String getEarliestDateStamp(){ return _earliestDateStamp; } public String getDeletedRecord(){ return _deletedRecord; } public List<MetadataFormat> getMetadataFormats(){ return _metadataFormats; } public List<String> getSets(){ return _sets; } public void addMetadataFormat(MetadataFormat metadataFormat){ _metadataFormats.add(metadataFormat); } public void addSets(String set){ _sets.add(set); } public void parseXMLOaiPmh(Element oaiPmh, Namespace ns){ Namespace oai =Namespace.getNamespace("http://www.imsglobal.org/services/lode/imslooaipmh-2p0_v1p0"); _granularity = oaiPmh.getChild("granularity", oai).getText(); _earliestDateStamp = oaiPmh.getChild("earliestDatestamp", oai).getText(); _deletedRecord = oaiPmh.getChild("deletedRecord",oai).getText(); List<Element> metadataFormats= oaiPmh.getChildren("metadataFormat",oai); for (int i=0;i<metadataFormats.size();i++){ MetadataFormat metadataFormat = new MetadataFormat(); metadataFormat.parseXMLMetadataFormat(metadataFormats.get(i), oai); addMetadataFormat(metadataFormat); } List<Element> sets = oaiPmh.getChildren("set",oai); for (int i=0;i<sets.size();i++){ addSets(sets.get(i).getText()); } } public String getXMLOaiPmh(String tab){ String xml = ""; xml = tab+"<oai-pmh xmlns=\"http://www.imsglobal.org/services/lode/imslooaipmh-2p0_v1p0\" xsi:schemaLocation=\"http://www.imsglobal.org/services/lode/imslooaipmh-2p0_v1p0 http://fire.eun.org/xsd/registry/imslooaipmh-2p0_v1p0.xsd\">\n"; for (int i=0;i<_metadataFormats.size();i++){ xml += tab+((MetadataFormat)_metadataFormats.get(i)).getXMLMetadataFormat(tab+"\t"); } for (int i=0;i<_sets.size();i++){ xml += tab+("\t<set>"+_sets.get(i)+"</set>\n"); } xml += tab+"\t<granularity>"+_granularity+"</granularity>\n" + tab+"\t<earliestDatestamp>"+_earliestDateStamp+"</earliestDatestamp>\n" + tab+"\t<deletedRecord>"+_deletedRecord+"</deletedRecord>\n" + tab+"</oai-pmh>\n"; return xml; } }