Commit c4ba0ea6 authored by Patrick Dowler's avatar Patrick Dowler Committed by GitHub
Browse files

Merge pull request #18 from brianmajor/issue-10

issue-10 - fix to GroupURI equals()
parents 07f9b1f1 24b660d1
...@@ -15,7 +15,7 @@ sourceCompatibility = 1.7 ...@@ -15,7 +15,7 @@ sourceCompatibility = 1.7
group = 'org.opencadc' group = 'org.opencadc'
version = '1.1.2' version = '1.1.3'
mainClassName = 'ca.nrc.cadc.ac.client.Main' mainClassName = 'ca.nrc.cadc.ac.client.Main'
......
...@@ -83,7 +83,6 @@ public class GroupURI ...@@ -83,7 +83,6 @@ public class GroupURI
private static Logger log = Logger.getLogger(GroupURI.class); private static Logger log = Logger.getLogger(GroupURI.class);
private URI uri; private URI uri;
private String name;
/** /**
* Attempts to create a URI using the specified uri. * Attempts to create a URI using the specified uri.
...@@ -99,8 +98,6 @@ public class GroupURI ...@@ -99,8 +98,6 @@ public class GroupURI
throw new IllegalArgumentException("Null URI"); throw new IllegalArgumentException("Null URI");
} }
this.uri = uri;
// Ensure the scheme is correct // Ensure the scheme is correct
if (uri.getScheme() == null) if (uri.getScheme() == null)
{ {
...@@ -117,13 +114,9 @@ public class GroupURI ...@@ -117,13 +114,9 @@ public class GroupURI
throw new IllegalArgumentException("Missing authority and/or path."); throw new IllegalArgumentException("Missing authority and/or path.");
} }
log.debug("URI: " + uri);
log.debug(" scheme: " + uri.getScheme());
log.debug(" authority: " + uri.getAuthority());
log.debug(" path: " + uri.getPath());
String fragment = uri.getFragment(); String fragment = uri.getFragment();
String query = uri.getQuery(); String query = uri.getQuery();
String name = null;
if (query == null) if (query == null)
{ {
if (fragment != null) if (fragment != null)
...@@ -144,6 +137,9 @@ public class GroupURI ...@@ -144,6 +137,9 @@ public class GroupURI
} }
name = query; name = query;
} }
this.uri = URI.create(
uri.getScheme() + "://" + uri.getAuthority() + uri.getPath() + "?" + name);
} }
/** /**
...@@ -156,16 +152,16 @@ public class GroupURI ...@@ -156,16 +152,16 @@ public class GroupURI
} }
@Override @Override
public boolean equals(Object rhs) public boolean equals(Object other)
{ {
if (rhs == null) if (other == null)
return false; return false;
if (this == rhs) if (this == other)
return true; return true;
if (rhs instanceof GroupURI) if (other instanceof GroupURI)
{ {
GroupURI vu = (GroupURI) rhs; GroupURI otherURI = (GroupURI) other;
return uri.toString().equals(vu.uri.toString()); return uri.equals(otherURI.getURI());
} }
return false; return false;
} }
...@@ -180,16 +176,6 @@ public class GroupURI ...@@ -180,16 +176,6 @@ public class GroupURI
return uri; return uri;
} }
/**
* Returns the decoded authority component of the URI.
*
* @return authority of the URI, or null if the authority is undefined.
*/
public String getAuthority()
{
return uri.getAuthority();
}
/** /**
* Returns the decoded fragment component of the URI. * Returns the decoded fragment component of the URI.
* *
...@@ -197,18 +183,18 @@ public class GroupURI ...@@ -197,18 +183,18 @@ public class GroupURI
*/ */
public String getName() public String getName()
{ {
return name; return uri.getQuery();
} }
public URI getServiceID() public URI getServiceID()
{ {
String serviceID = uri.getScheme() + String serviceIDString = uri.getScheme() +
"://" + "://" +
uri.getAuthority() + uri.getAuthority() +
uri.getPath(); uri.getPath();
try try
{ {
return new URI(serviceID); return new URI(serviceIDString);
} }
catch (URISyntaxException e) catch (URISyntaxException e)
{ {
...@@ -220,7 +206,7 @@ public class GroupURI ...@@ -220,7 +206,7 @@ public class GroupURI
@Override @Override
public String toString() public String toString()
{ {
return getServiceID() + "?" + name; return uri.toString();
} }
} }
...@@ -18,6 +18,18 @@ public class GroupURITest ...@@ -18,6 +18,18 @@ public class GroupURITest
Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG); Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG);
} }
@Test
public void testEquals()
{
GroupURI uri1 = new GroupURI("ivo://example.org/gms?name");
GroupURI uri2 = new GroupURI("ivo://example.org/gms?name");
Assert.assertTrue(uri1.equals(uri2));
uri1 = new GroupURI("ivo://example.org/gms?name");
uri2 = new GroupURI("ivo://example.org/gms#name");
Assert.assertTrue(uri1.equals(uri2));
}
@Test @Test
public void testMalformed() public void testMalformed()
{ {
...@@ -46,7 +58,6 @@ public class GroupURITest ...@@ -46,7 +58,6 @@ public class GroupURITest
{ {
GroupURI g = new GroupURI("ivo://my.authority/gms?name"); GroupURI g = new GroupURI("ivo://my.authority/gms?name");
Assert.assertEquals("ivo", g.getURI().getScheme()); Assert.assertEquals("ivo", g.getURI().getScheme());
Assert.assertEquals("my.authority", g.getAuthority());
Assert.assertEquals("/gms", g.getURI().getPath()); Assert.assertEquals("/gms", g.getURI().getPath());
Assert.assertEquals("name", g.getName()); Assert.assertEquals("name", g.getName());
Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString()); Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString());
...@@ -65,7 +76,6 @@ public class GroupURITest ...@@ -65,7 +76,6 @@ public class GroupURITest
{ {
GroupURI g = new GroupURI("ivo://my.authority/gms#name"); GroupURI g = new GroupURI("ivo://my.authority/gms#name");
Assert.assertEquals("ivo", g.getURI().getScheme()); Assert.assertEquals("ivo", g.getURI().getScheme());
Assert.assertEquals("my.authority", g.getAuthority());
Assert.assertEquals("/gms", g.getURI().getPath()); Assert.assertEquals("/gms", g.getURI().getPath());
Assert.assertEquals("name", g.getName()); Assert.assertEquals("name", g.getName());
Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString()); Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString());
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment