X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fdbsources%2Fdas%2Fdatamodel%2FJalviewSource.java;h=9cc423979d35ddf965e856f0f895cb33eae80779;hb=4d7f98a6dd54d9863ba449ec79dcd95d25ed863d;hp=c9caf6eefdef2d4564d54a76ded3874463b6f7f3;hpb=be78a936034455f8ab1be4df53736000631d87ff;p=jalview.git
diff --git a/src/jalview/ws/dbsources/das/datamodel/JalviewSource.java b/src/jalview/ws/dbsources/das/datamodel/JalviewSource.java
index c9caf6e..9cc4239 100644
--- a/src/jalview/ws/dbsources/das/datamodel/JalviewSource.java
+++ b/src/jalview/ws/dbsources/das/datamodel/JalviewSource.java
@@ -1,5 +1,29 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ws.dbsources.das.datamodel;
+import jalview.util.MessageManager;
+import jalview.ws.dbsources.das.api.jalviewSourceI;
+import jalview.ws.seqfetcher.DbSourceProxy;
+
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
@@ -7,9 +31,9 @@ import java.util.Hashtable;
import java.util.List;
import java.util.Map;
+import org.biodas.jdas.client.threads.MultipleConnectionPropertyProviderI;
import org.biodas.jdas.dassources.Capabilities;
import org.biodas.jdas.dassources.utils.DasTimeFormat;
-import org.biodas.jdas.dassources.utils.RegistrySourceAdapter;
import org.biodas.jdas.schema.sources.CAPABILITY;
import org.biodas.jdas.schema.sources.COORDINATES;
import org.biodas.jdas.schema.sources.MAINTAINER;
@@ -17,15 +41,16 @@ import org.biodas.jdas.schema.sources.PROP;
import org.biodas.jdas.schema.sources.SOURCE;
import org.biodas.jdas.schema.sources.VERSION;
-import jalview.ws.dbsources.das.api.jalviewSourceI;
-import jalview.ws.seqfetcher.DbSourceProxy;
-
public class JalviewSource implements jalviewSourceI
{
SOURCE source;
- public JalviewSource(SOURCE local2, boolean local)
+ MultipleConnectionPropertyProviderI connprov;
+
+ public JalviewSource(SOURCE local2,
+ MultipleConnectionPropertyProviderI connprov, boolean local)
{
+ this.connprov = connprov;
this.local = local;
source = local2;
}
@@ -257,7 +282,7 @@ public class JalviewSource implements jalviewSourceI
seqsources.add(ds = new DasSequenceSource(getTitle() + " ("
+ cs.getAuthority() + " " + cs.getSource()
+ (cs.getVersion() != null ? " " + cs.getVersion() : "")
- + ")", cs.getAuthority(), source, v, cs));
+ + ")", cs.getAuthority(), source, v, cs, connprov));
if (seqsources.size() > 1)
{
System.err.println("Added another sequence DB source for "
@@ -277,7 +302,7 @@ public class JalviewSource implements jalviewSourceI
try
{
seqsources.add(new DasSequenceSource(getTitle(), getTitle(),
- source, getVersion(), null));
+ source, getVersion(), null, connprov));
} catch (Exception e)
{
// TODO Auto-generated catch block
@@ -309,9 +334,29 @@ public class JalviewSource implements jalviewSourceI
{
try
{
- String url = new RegistrySourceAdapter(source)
- .getOriginalDataSourceUri();
- return url;
+ // kind of dumb, since
+ // org.biodas.jdas.dassources.utils.VersionAdapter.getSourceUriFromQueryUri()
+ // does this,
+ // but this way, we can access non DAS 1.6 compliant sources (which have
+ // to have a URL like /das/ and cause a validation exception)
+
+ for (CAPABILITY cap : getVersion().getCAPABILITY())
+ {
+ String capname = cap.getType().substring(
+ cap.getType().indexOf(":") + 1);
+ int p = cap.getQueryUri().lastIndexOf(capname);
+ if (p < -1)
+ {
+ throw new Exception(MessageManager.formatMessage(
+ "exception.invalid_das_source",
+ new String[] { source.getUri() }));
+ }
+ if (cap.getQueryUri().charAt(p) == '/')
+ {
+ p--;
+ }
+ return cap.getQueryUri().substring(0, p);
+ }
} catch (Exception x)
{
System.err.println("Serious: Couldn't get the URL for source "
@@ -327,4 +372,12 @@ public class JalviewSource implements jalviewSourceI
return isLaterThan(getVersion().getCreated(), other.getVersion()
.getCreated());
}
+
+ @Override
+ public boolean isReferenceSource()
+ {
+ // TODO check source object for indication that we are the primary for a DAS
+ // coordinate system
+ return false;
+ }
}