com.google.inject
Class Key<T>

java.lang.Object
  extended by com.google.inject.Key<T>

public abstract class Key<T>
extends java.lang.Object

Binding key consisting of a type and a name. Matches the type and name (Inject.value()) at a point of injection.

For example, new Key<List<String>>("cities") {} will match:

   @Inject("cities")
   public void setList(List<String> cities) {
     ...
   }
 

Author:
crazybob@google.com (Bob Lee)

Field Summary
static java.lang.String DEFAULT_NAME
          Default binding name.
 
Constructor Summary
protected Key()
          Convenience method.
protected Key(java.lang.String name)
          Constructs a new key.
 
Method Summary
 boolean equals(java.lang.Object o)
           
static
<T> Key<T>
get(java.lang.Class<T> type)
          Gets a key for a Class.
static
<T> Key<T>
get(java.lang.Class<T> type, java.lang.String name)
          Gets a key for a Class and a name.
static Key<?> get(java.lang.reflect.Type type)
          Gets a key for a type.
static
<T> Key<T>
get(TypeLiteral<T> typeLiteral)
          Gets a key for a type.
static
<T> Key<T>
get(TypeLiteral<T> typeLiteral, java.lang.String name)
          Gets key for a type and a name.
static Key<?> get(java.lang.reflect.Type type, java.lang.String name)
          Gets a key for a type and a name.
 java.lang.String getName()
          Gets the binding name.
 TypeLiteral<T> getType()
          Gets the key type.
 boolean hasDefaultName()
          Returns true if this key has the default name.
 int hashCode()
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_NAME

public static final java.lang.String DEFAULT_NAME
Default binding name.

See Also:
Constant Field Values
Constructor Detail

Key

protected Key(java.lang.String name)
Constructs a new key. Derives the type from this class's type parameter.

Clients create an empty anonymous subclass. Doing so embeds the type parameter in the anonymous class's type hierarchy so we can reconstitute it at runtime despite erasure.

Example usage for a binding of type Foo named "bar": new Key<Foo>("bar") {}.


Key

protected Key()
Convenience method. Delegates to Key(String) with DEFAULT_NAME.

Method Detail

hasDefaultName

public boolean hasDefaultName()
Returns true if this key has the default name.


getType

public TypeLiteral<T> getType()
Gets the key type.


getName

public java.lang.String getName()
Gets the binding name.


hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object o)
Overrides:
equals in class java.lang.Object

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

get

public static <T> Key<T> get(java.lang.Class<T> type)
Gets a key for a Class. Defaults name to DEFAULT_NAME.


get

public static <T> Key<T> get(java.lang.Class<T> type,
                             java.lang.String name)
Gets a key for a Class and a name.


get

public static Key<?> get(java.lang.reflect.Type type)
Gets a key for a type. Defaults name to DEFAULT_NAME.


get

public static Key<?> get(java.lang.reflect.Type type,
                         java.lang.String name)
Gets a key for a type and a name.


get

public static <T> Key<T> get(TypeLiteral<T> typeLiteral)
Gets a key for a type. Defaults name to DEFAULT_NAME.


get

public static <T> Key<T> get(TypeLiteral<T> typeLiteral,
                             java.lang.String name)
Gets key for a type and a name.