X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FUrlProvider.java;h=2cb01730681083e0f4edb8c84b850405dea56a49;hb=483ecb5e4541537778844529cc93204f9124b68d;hp=fcda1980bd97e986f5c4c5f5f3f70e577e4c8452;hpb=e63a4d52c27252dfb83efeeee1bda6c89b6dddec;p=jalview.git diff --git a/src/jalview/urls/UrlProvider.java b/src/jalview/urls/UrlProvider.java index fcda198..2cb0173 100644 --- a/src/jalview/urls/UrlProvider.java +++ b/src/jalview/urls/UrlProvider.java @@ -22,6 +22,8 @@ package jalview.urls; import static jalview.util.UrlConstants.SEP; +import jalview.urls.api.UrlProviderI; + import java.util.ArrayList; import java.util.List; import java.util.Vector; @@ -57,9 +59,15 @@ public class UrlProvider implements UrlProviderI customProvider = findCustomProvider(); // check that the defaultUrl still exists - if (!setDefaultUrl(defaultUrlString)) + if (!contains(defaultUrlString)) + { + // if the defaultUrl can't be found in any of the providers + // set up a custom default url + choosePrimaryUrl(); + } + else { - chooseDefaultUrl(); + setPrimaryUrl(defaultUrlString); } } @@ -70,31 +78,49 @@ public class UrlProvider implements UrlProviderI { for (UrlProviderI p : providers) { - if (p.getClass().equals(CustomUrlProvider.class)) + if (p instanceof CustomUrlProvider) { return p; } } - System.out - .println("Error initialising UrlProvider - no custom url provider"); + System.out.println( + "Error initialising UrlProvider - no custom url provider"); return null; } - + + @Override + public boolean setPrimaryUrl(String id) + { + boolean outcome = false; + for (UrlProviderI p : providers) + { + if (p.setPrimaryUrl(id)) + { + outcome = true; + } + } + if (!outcome) + { + throw new IllegalArgumentException(); + } + return outcome; + } + @Override - public boolean setDefaultUrl(String id) + public boolean contains(String id) { boolean outcome = false; for (UrlProviderI p : providers) { - if (p.setDefaultUrl(id)) + if (p.contains(id)) { outcome = true; } } return outcome; } - + @Override public String writeUrlsAsString(boolean selected) { @@ -149,24 +175,23 @@ public class UrlProvider implements UrlProviderI { for (UrlProviderI p : providers) { - p.setDefaultUrl(null); p.setUrlData(links); } } @Override - public String getDefaultUrl(String seqid) + public String getPrimaryUrl(String seqid) { String link = null; for (UrlProviderI p : providers) { - if (p.getDefaultUrl(seqid) == null) + if (p.getPrimaryUrl(seqid) == null) { continue; } else { - link = p.getDefaultUrl(seqid); + link = p.getPrimaryUrl(seqid); break; } } @@ -174,18 +199,18 @@ public class UrlProvider implements UrlProviderI } @Override - public String getDefaultUrlId() + public String getPrimaryUrlId() { String id = null; for (UrlProviderI p : providers) { - if (p.getDefaultUrlId() == null) + if (p.getPrimaryUrlId() == null) { continue; } else { - id = p.getDefaultUrlId(); + id = p.getPrimaryUrlId(); break; } } @@ -193,29 +218,29 @@ public class UrlProvider implements UrlProviderI } @Override - public String getDefaultTarget(String seqid) + public String getPrimaryTarget(String seqid) { String target = null; for (UrlProviderI p : providers) { - if (p.getDefaultTarget(seqid) == null) + if (p.getPrimaryTarget(seqid) == null) { continue; } else { - target = p.getDefaultTarget(seqid); + target = p.getPrimaryTarget(seqid); break; } } return target; } - + @Override - public String chooseDefaultUrl() + public String choosePrimaryUrl() { // choose a custom url default - return customProvider.chooseDefaultUrl(); + return customProvider.choosePrimaryUrl(); } @Override