View Javadoc

1   /**
2    *
3    * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com>
4    *
5    * ====================================================================
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * 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, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   * ====================================================================
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  }