View Javadoc

1   package com.atlassian.marketplace.client.api;
2   
3   import java.net.URI;
4   
5   import com.google.common.base.Function;
6   
7   import static com.google.common.base.Preconditions.checkNotNull;
8   
9   /**
10   * Base class for simple value types that wrap a resource URI.
11   * @since 2.0.0
12   */
13  public class ResourceId
14  {
15      private final URI uri;
16      
17      protected ResourceId(URI uri)
18      {
19          this.uri = checkNotNull(uri);
20      }
21      
22      /**
23       * Returns the wrapped resource URI.
24       */
25      public URI getUri()
26      {
27          return uri;
28      }
29      
30      @Override
31      public String toString()
32      {
33          return this.getClass().getSimpleName() + "(" + uri + ")";
34      }
35      
36      @Override
37      public boolean equals(Object other)
38      {
39          return (other.getClass() == this.getClass()) && ((ResourceId) other).uri.equals(uri);
40      }
41      
42      @Override
43      public int hashCode()
44      {
45          return uri.hashCode();
46      }
47      
48      public static Function<ResourceId, URI> resourceIdToUri()
49      {
50          return new Function<ResourceId, URI>()
51          {
52              public URI apply(ResourceId input)
53              {
54                  return input.getUri();
55              }
56          };
57      }
58  }