import static jalview.util.UrlConstants.SEP;
+import jalview.urls.api.UrlProviderI;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
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);
}
}
{
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))
{
- return true;
+ outcome = true;
}
}
- return false;
+ return outcome;
}
-
+
@Override
- public String writeUrlsAsString()
+ public String writeUrlsAsString(boolean selected)
{
String result = "";
for (UrlProviderI p : providers)
{
- result += p.writeUrlsAsString();
- result += SEP;
+ String next = p.writeUrlsAsString(selected);
+ if (!next.isEmpty())
+ {
+ result += next;
+ result += SEP;
+ }
}
// remove last sep
- result = result.substring(0, result.length() - 1);
+ if (!result.isEmpty())
+ {
+ result = result.substring(0, result.length() - 1);
+ }
return result;
}
}
@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;
}
}
}
@Override
- public String getDefaultTarget(String seqid)
+ public String getPrimaryUrlId()
+ {
+ String id = null;
+ for (UrlProviderI p : providers)
+ {
+ if (p.getPrimaryUrlId() == null)
+ {
+ continue;
+ }
+ else
+ {
+ id = p.getPrimaryUrlId();
+ break;
+ }
+ }
+ return id;
+ }
+
+ @Override
+ 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