View Javadoc

1   /**
2    * Licensed to jclouds, Inc. (jclouds) under one or more
3    * contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  jclouds licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.jclouds.savvis.vpdc.domain;
20  
21  import java.net.URI;
22  
23  /**
24   * Location of a Rest resource
25   * 
26   * @author Adrian Cole
27   * 
28   */
29  public class Link extends ResourceImpl {
30     protected final String rel;
31  
32     public Link( String id,String name, String type, URI href, String rel) {
33        super(id, name, type, href);
34        this.rel = rel;
35     }
36  
37     public String getRel() {
38        return rel;
39     }
40  
41     public int compareTo(Link that) {
42        return (this == that) ? 0 : getHref().compareTo(that.getHref());
43     }
44  
45     @Override
46     public int hashCode() {
47        final int prime = 31;
48        int result = super.hashCode();
49        result = prime * result + ((rel == null) ? 0 : rel.hashCode());
50        return result;
51     }
52  
53     @Override
54     public boolean equals(Object obj) {
55        if (this == obj)
56           return true;
57        if (!super.equals(obj))
58           return false;
59        if (getClass() != obj.getClass())
60           return false;
61        Link other = (Link) obj;
62        if (rel == null) {
63           if (other.rel != null)
64              return false;
65        } else if (!rel.equals(other.rel))
66           return false;
67        return true;
68     }
69  
70     @Override
71     public String toString() {
72        return "[id=" + id + ", href=" + href + ", name=" + name + ", type=" + type + ", rel=" + rel + "]";
73     }
74  }