1 package edu.virginia.lib.ole.akubra;
2
3 import java.net.URI;
4
5 import org.akubraproject.map.IdMapper;
6
7 /**
8 * @author ajs6f
9 * @version 1.0
10 * @see org.akubraproject.map.IdMapper
11 */
12 public class FilePrefixMapper implements IdMapper {
13
14 private final static String prefix = "file:";
15
16 /**
17 * @param internalId internal ID of a blob in the mapped {@link org.akubraproject.BlobStore}
18 * @return {@link URI} external ID for this blob in the mapped BlobStore
19 * @see org.akubraproject.map.IdMapper#getExternalId(java.net.URI)
20 */
21 @Override
22 public URI getExternalId(URI internalId) throws NullPointerException {
23 return URI.create(internalId.toString().substring(getInternalPrefix("").length()));
24 }
25
26 /**
27 * @param externalId external ID of a blob in the mapped {@link org.akubraproject.BlobStore}
28 * @return {@link URI} internal ID for this blob in the mapped BlobStore
29 * @see org.akubraproject.map.IdMapper#getInternalId(java.net.URI)
30 */
31 @Override
32 public URI getInternalId(URI externalId) throws NullPointerException {
33 return URI.create(getInternalPrefix("") + externalId.toString());
34 }
35
36 /**
37 * @param externalPrefix ignored
38 * @return {@link String} The URI prefix in use by this mapper, normally "file:"
39 * @see org.akubraproject.map.IdMapper#getInternalPrefix(java.lang.String)
40 */
41 @Override
42 public String getInternalPrefix(String externalPrefix)
43 throws NullPointerException {
44 return prefix;
45 }
46
47 }