Added functionality for getting/setting mimetypes for Aggregated Resources.
git-svn-id: https://oai4j-client.svn.sourceforge.net/svnroot/oai4j-client/trunk@14 201c9376-5148-0410-b534-98494c770f31
This commit is contained in:
parent
ae23cb5e34
commit
2055261027
|
@ -31,6 +31,8 @@ import java.net.URISyntaxException;
|
|||
*/
|
||||
public class AggregatedResource extends AggregateBase {
|
||||
|
||||
private String mimetype;
|
||||
|
||||
/**
|
||||
* Create an <code>AggreagatedResource</code> with the specified id.
|
||||
*
|
||||
|
@ -51,7 +53,24 @@ public class AggregatedResource extends AggregateBase {
|
|||
public AggregatedResource(URI id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the MIME type (if known) for this <code>AggreagatedResource</code>.
|
||||
*
|
||||
* @return the MIME type, or <code>null</code> if not known
|
||||
*/
|
||||
public String getMimeType() {
|
||||
return mimetype;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the MIME type for this <code>AggreagatedResource</code>.
|
||||
*
|
||||
* @param mimetype the MIME type
|
||||
*/
|
||||
public void setMimeType(String mimetype) {
|
||||
this.mimetype = mimetype;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an <code>InputStream</code> for the content held in this
|
||||
* <code>AggreagatedResource</code>.
|
||||
|
|
|
@ -18,6 +18,7 @@ package se.kb.oai.ore;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import org.dom4j.Element;
|
||||
|
||||
|
@ -35,16 +36,26 @@ import org.dom4j.Element;
|
|||
* @author Oskar Grenholm, National Library of Sweden
|
||||
*/
|
||||
public interface ResourceMapSerializer {
|
||||
|
||||
/**
|
||||
* Serialize the resource map to an <code>OutputStream</code>.
|
||||
*
|
||||
* @param map a resource map
|
||||
* @param stream a stream to serialize to
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
public void serializeToStream(ResourceMap map, OutputStream stream) throws IOException;
|
||||
|
||||
/**
|
||||
* Serialize the resource map to the given file.
|
||||
*
|
||||
* @param file a file
|
||||
* @param map a resource map
|
||||
* @param file a file
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
public void serializeToFile(File file, ResourceMap map) throws IOException;
|
||||
public void serializeToFile(ResourceMap map, File file) throws IOException;
|
||||
|
||||
/**
|
||||
* Serialize the resource map and return it as a <code>String</code>.
|
||||
|
|
|
@ -53,6 +53,7 @@ public class AtomConstants extends OREConstants {
|
|||
public static final String LABEL = "label";
|
||||
public static final String REL = "rel";
|
||||
public static final String HREF = "href";
|
||||
public static final String MIME_TYPE = "type";
|
||||
|
||||
public static final String ORE_TERMS_URL = "http://www.openarchives.org/ore/terms/";
|
||||
public static final String ORE_TERMS_REM_URL = "http://www.openarchives.org/ore/terms/ResourceMap";
|
||||
|
|
|
@ -117,6 +117,8 @@ public class AtomSerializer extends SerializerBase {
|
|||
|
||||
link = DocumentHelper.createElement(LINK);
|
||||
link.addAttribute(REL, "alternate");
|
||||
if (resource.getMimeType() != null)
|
||||
link.addAttribute(MIME_TYPE, resource.getMimeType());
|
||||
link.addAttribute(HREF, resource.getId().toString());
|
||||
entry.add(link);
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ package se.kb.oai.ore.impl;
|
|||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
import org.dom4j.Element;
|
||||
|
||||
|
@ -33,10 +34,14 @@ import se.kb.xml.XMLUtils;
|
|||
*/
|
||||
public abstract class SerializerBase implements ResourceMapSerializer {
|
||||
|
||||
public void serializeToFile(File file, ResourceMap map) throws IOException {
|
||||
FileOutputStream out = new FileOutputStream(file);
|
||||
XMLUtils.writeXmlTo(serializeToXml(map), out);
|
||||
out.close();
|
||||
public void serializeToStream(ResourceMap map, OutputStream stream) throws IOException {
|
||||
XMLUtils.writeXmlTo(serializeToXml(map), stream);
|
||||
}
|
||||
|
||||
public void serializeToFile(ResourceMap map, File file) throws IOException {
|
||||
FileOutputStream stream = new FileOutputStream(file);
|
||||
serializeToStream(map, stream);
|
||||
stream.close();
|
||||
}
|
||||
|
||||
public String serializeToString(ResourceMap map) throws IOException {
|
||||
|
|
|
@ -27,8 +27,7 @@ Examples
|
|||
|
||||
+-----+
|
||||
|
||||
String baseurl = "http://magasin.kb.se:8080/oaiprovider/";
|
||||
OaiPmhServer server = new OaiPmhServer(baseurl);
|
||||
OaiPmhServer server = new OaiPmhServer("http://magasin.kb.se:8080/oaiprovider/");
|
||||
Record record = server.getRecord("oai:kb:1", "oai_dc");
|
||||
|
||||
+-----+
|
||||
|
@ -125,7 +124,7 @@ serializer.serializeToFile(new File("atom.xml"), map);
|
|||
ResourceMap map = factory.getResourceMap("http://test.kb.se/atom.xml");
|
||||
|
||||
// Add one more AggregatedResource to the Aggregation.
|
||||
map.getAggregation.addResource(aResource);
|
||||
map.getAggregation().addResource(aResource);
|
||||
|
||||
// Set the modified date to now.
|
||||
map.setModified(new Date());
|
||||
|
|
Loading…
Reference in New Issue