Changeset 5535


Ignore:
Timestamp:
08/07/14 14:16:17 (10 years ago)
Author:
Twan Goosen
Message:

Made HandleLinkModel? work for handles as well as DOIs (+made a test)
Refs #613

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src
Files:
3 added
1 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/HandleLinkModel.java

    r5489 r5535  
    1717package eu.clarin.cmdi.virtualcollectionregistry.gui;
    1818
     19import java.util.regex.Matcher;
     20import java.util.regex.Pattern;
    1921import org.apache.wicket.model.IModel;
    2022
     
    2830
    2931    private final IModel<String> linkModel;
    30     public static final String HANDLE_PREFIX = "hdl:";
     32    public static final Pattern HANDLE_PATTERN = Pattern.compile("^(hdl|doi):(.*)$", Pattern.CASE_INSENSITIVE);
    3133    public static final String HANDLE_PROXY = "http://hdl.handle.net/";
    3234    public static final String URN_NBN_PREFIX = "urn:nbn";
    3335    public static final String URN_NBN_RESOLVER_URL = "http://www.nbn-resolving.org/redirect/";
     36    private static final int HANDLE_ID_GROUP = 2;
    3437
    3538    public HandleLinkModel(IModel<String> linkModel) {
     
    4144        final String link = linkModel.getObject();
    4245        if (link != null) {
    43             if (link.toLowerCase().startsWith(HANDLE_PREFIX)) {
    44                 return HANDLE_PROXY + link.substring(HANDLE_PREFIX.length());
     46            final Matcher handleMatcher = HANDLE_PATTERN.matcher(link);
     47            if (handleMatcher.matches()) {
     48                return HANDLE_PROXY + handleMatcher.group(HANDLE_ID_GROUP);
    4549            }
    4650            if (link.toLowerCase().startsWith(URN_NBN_PREFIX)) {
Note: See TracChangeset for help on using the changeset viewer.