Changeset 276 for VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/GWDGPersistentIdentifierProvider.java
- Timestamp:
- 03/23/10 13:27:50 (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/GWDGPersistentIdentifierProvider.java
r273 r276 1 package eu.clarin.cmdi.virtualcollectionregistry .model;1 package eu.clarin.cmdi.virtualcollectionregistry; 2 2 3 3 import java.net.URI; … … 30 30 import org.slf4j.LoggerFactory; 31 31 32 import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistryException; 33 34 public class GWDGPersistentIdentifierProvider extends 35 PersistentIdentifierProvider { 32 import eu.clarin.cmdi.virtualcollectionregistry.model.PersistentIdentifier; 33 import eu.clarin.cmdi.virtualcollectionregistry.model.PersistentIdentifierProvider; 34 import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection; 35 36 public class GWDGPersistentIdentifierProvider extends PersistentIdentifierProvider { 36 37 private static enum Attribute { 37 38 PID, URL, CREATOR, EXPDATE; … … 78 79 private XMLInputFactory factory; 79 80 80 /* XXX: refactor Internal and GWDG PID class/providers, so only one 81 * PID class exists. 82 * Maybe: store type in generic PID class 83 * inject dependency to PID provider in PID classes and 84 * make factory method in provider for creating URIs 85 */ 86 public GWDGPersistentIdentifierProvider(Map<String,String> config) 81 GWDGPersistentIdentifierProvider(Map<String,String> config) 87 82 throws VirtualCollectionRegistryException { 88 83 super(config); 89 84 try { 90 String base_uri = get Parameter(config, BASE_URI);85 String base_uri = getConfigParameter(config, BASE_URI); 91 86 if (!base_uri.endsWith("/")) { 92 87 base_uri = base_uri + "/"; … … 98 93 "parameter \"" + BASE_URI + "\" is invalid", e); 99 94 } 100 this.username = get Parameter(config, USERNAME);101 this.password = get Parameter(config, PASSWORD);95 this.username = getConfigParameter(config, USERNAME); 96 this.password = getConfigParameter(config, PASSWORD); 102 97 103 98 this.factory = XMLInputFactory.newInstance(); … … 107 102 } 108 103 109 public PersistentIdentifier createPersistentIdentifier(VirtualCollection vc) 110 throws VirtualCollectionRegistryException { 104 public PersistentIdentifier createIdentifier(VirtualCollection vc) 105 throws VirtualCollectionRegistryException { 106 if (vc == null) { 107 throw new NullPointerException("vc == null"); 108 } 111 109 logger.debug("creating handle for virtual collection \"{}\"", 112 110 vc.getUUID()); … … 129 127 logger.info("created handle \"{}\" for virtual collection \"{}\"", 130 128 pid, vc.getUUID()); 131 return new GWDGPersistentIdentifier(vc, pid);129 return doCreate(vc, PersistentIdentifier.Type.GWDG, pid); 132 130 } catch (VirtualCollectionRegistryException e) { 133 131 throw new RuntimeException("failed to create handle", e); … … 135 133 } 136 134 137 @SuppressWarnings("unused") 138 private void update(String pid, URI target) throws VirtualCollectionRegistryException { 135 public void updateIdentifier(String pid, URI target) throws VirtualCollectionRegistryException { 136 if (pid == null) { 137 throw new NullPointerException("pid == null"); 138 } 139 if (pid.isEmpty()) { 140 throw new IllegalArgumentException("pid is empty"); 141 } 142 if (target == null) { 143 throw new NullPointerException("target == null"); 144 } 139 145 List<NameValuePair> params = new ArrayList<NameValuePair>(); 140 146 params.add(new BasicNameValuePair("pid", pid)); … … 142 148 URI serviceURI = URI.create(SERVICE_URI_BASE + "write/modify"); 143 149 invokeWebService(serviceURI, params); 150 logger.info("updated handle \"{}\"", pid); 151 } 152 153 public void deleteIdentifier(String pid) 154 throws VirtualCollectionRegistryException { 155 if (pid == null) { 156 throw new NullPointerException("pid == null"); 157 } 158 if (pid.isEmpty()) { 159 throw new IllegalArgumentException("pid is empty"); 160 } 161 /* 162 * actually one cannot delete a handle, but we can set an expired 163 * date to mark it invalid 164 */ 165 List<NameValuePair> params = new ArrayList<NameValuePair>(); 166 params.add(new BasicNameValuePair("pid", pid)); 167 params.add(new BasicNameValuePair("expdate", "1970-01-01")); 168 URI serviceURI = URI.create(SERVICE_URI_BASE + "write/modify"); 169 invokeWebService(serviceURI, params); 170 logger.info("deleted/expired handle \"{}\"", pid); 144 171 } 145 172 146 173 private String makeCollectionURI(VirtualCollection vc) { 147 174 return base_uri + "service/clarin-virtualcollection/" + vc.getUUID(); 148 }149 150 private static String getParameter(Map<String, String> config,151 String parameter) throws VirtualCollectionRegistryException {152 String value = config.get(parameter);153 if (value == null) {154 throw new VirtualCollectionRegistryException("configuration "155 + "parameter \"" + parameter + "\" is not set");156 }157 value = value.trim();158 if (value.isEmpty()) {159 throw new VirtualCollectionRegistryException("configuration "160 + "parameter \"" + parameter + "\" is invalid");161 }162 return value;163 175 } 164 176 … … 182 194 // disable expect continue, GWDG does not like very well 183 195 client.getParams() 184 .setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, Boolean.FALSE); 196 .setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, 197 Boolean.FALSE); 185 198 // set a proper user agent 186 199 client.getParams()
Note: See TracChangeset
for help on using the changeset viewer.