KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > google > inject > name > NamedImpl


1 /**
2  * Copyright (C) 2006 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package com.google.inject.name;
18
19 import java.lang.annotation.Annotation JavaDoc;
20 import com.google.inject.util.Objects;
21 import com.google.inject.name.Named;
22
23 class NamedImpl implements Named {
24
25   final String JavaDoc value;
26
27   public NamedImpl(String JavaDoc value) {
28     this.value = Objects.nonNull(value, "name");
29   }
30
31   public String JavaDoc value() {
32     return this.value;
33   }
34
35   public int hashCode() {
36     // This is specified in java.lang.Annotation.
37
return 127 * "value".hashCode() ^ value.hashCode();
38   }
39
40   public boolean equals(Object JavaDoc o) {
41     if (!(o instanceof Named)) {
42       return false;
43     }
44
45     Named other = (Named) o;
46     return value.equals(other.value());
47   }
48
49   public String JavaDoc toString() {
50     return "@" + Named.class.getName() + "(value=" + value + ")";
51   }
52
53   public Class JavaDoc<? extends Annotation JavaDoc> annotationType() {
54     return Named.class;
55   }
56 }
57
Popular Tags