Eclipse JDT
Release 3.7

org.eclipse.jdt.core
Class BindingKey

java.lang.Object
  extended by org.eclipse.jdt.core.BindingKey

public final class BindingKey
extends Object

Utility class to decode or create a binding key.

This class is not intended to be subclassed by clients.

Since:
3.1
See Also:
IBinding.getKey()

Constructor Summary
BindingKey(String key)
          Creates a new binding key.
 
Method Summary
static String createArrayTypeBindingKey(String typeKey, int arrayDimension)
          Creates a new array type binding key from the given type binding key and the given array dimension.
static String createParameterizedTypeBindingKey(String genericTypeKey, String[] argumentTypeKeys)
          Creates a new parameterized type binding key from the given generic type binding key and the given argument type binding keys.
static String createTypeBindingKey(String typeName)
          Creates a new type binding key from the given type name.
static String createTypeVariableBindingKey(String typeVariableName, String declaringKey)
          Creates a new type variable binding key from the given type variable name and the given declaring key.
static String createWilcardTypeBindingKey(String typeKey, char kind)
          Deprecated. This method is missing crucial information necessary for proper wildcard binding key creation.
static String createWildcardTypeBindingKey(String genericTypeKey, char boundKind, String boundTypeKey, int rank)
          Creates a new wildcard type binding key from the given generic type binding key, the given wildcard kind (one of Signature.C_STAR, Signature.C_SUPER, or Signature.C_EXTENDS the given bound type binding key and the given rank.
 String[] getThrownExceptions()
          Returns the thrown exception signatures of the element represented by this binding key.
 String[] getTypeArguments()
          Returns the type argument signatures of the element represented by this binding key.
 boolean isParameterizedMethod()
          Returns whether this binding key represents a parameterized method, or if its declaring method is a parameterized method.
 boolean isParameterizedType()
          Returns whether this binding key represents a parameterized type, or if its declaring type is a parameterized type.
 boolean isRawType()
          Returns whether this binding key represents a raw type.
 String toSignature()
          Transforms this binding key into a resolved signature.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BindingKey

public BindingKey(String key)
Creates a new binding key.

Parameters:
key - the key to decode
Method Detail

createArrayTypeBindingKey

public static String createArrayTypeBindingKey(String typeKey,
                                               int arrayDimension)
Creates a new array type binding key from the given type binding key and the given array dimension.

For example:

 
 createArrayTypeBindingKey("Ljava/lang/Object;", 1) -> "[Ljava/lang/Object;"
 createArrayTypeBindingKey("I", 2) -> "[[I"
 
 

Parameters:
typeKey - the binding key of the given type
arrayDimension - the given array dimension
Returns:
a new array type binding key

createParameterizedTypeBindingKey

public static String createParameterizedTypeBindingKey(String genericTypeKey,
                                                       String[] argumentTypeKeys)
Creates a new parameterized type binding key from the given generic type binding key and the given argument type binding keys. If the argument type keys array is empty, then a raw type binding key is created.

For example:

 
 createParameterizedTypeBindingKey(
     "Ljava/util/Map<TK;TV;>;",
     new String[] {"Ljava/lang/String;", "Ljava/lang/Object;"}) ->
       "Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;"
 createParameterizedTypeBindingKey(
     "Ljava/util/List<TE;>;", new String[] {}) ->
       "Ljava/util/List<>;"
 
 

Parameters:
genericTypeKey - the binding key of the generic type
argumentTypeKeys - the possibly empty list of binding keys of argument types
Returns:
a new parameterized type binding key

createTypeBindingKey

public static String createTypeBindingKey(String typeName)
Creates a new type binding key from the given type name. The type name must be either a fully qualified name, an array type name or a primitive type name. If the type name is fully qualified, then it is expected to be dot-based. Note that inner types, generic types and parameterized types are not supported.

For example:

 
 createTypeBindingKey("int") -> "I"
 createTypeBindingKey("java.lang.String") -> "Ljava/lang/String;"
 createTypeBindingKey("boolean[]") -> "[Z"
 
 

Parameters:
typeName - the possibly qualified type name
Returns:
a new type binding key

createTypeVariableBindingKey

public static String createTypeVariableBindingKey(String typeVariableName,
                                                  String declaringKey)
Creates a new type variable binding key from the given type variable name and the given declaring key. The declaring key can either be a type binding key or a method binding key.

For example:

 
 createTypeVariableBindingKey("T", "Ljava/util/List<TE;>;") ->
   "Ljava/util/List<TE;>;:TT;"
 createTypeVariableBindingKey("SomeTypeVariable", "Lp/X;.foo()V") ->
   "Lp/X;.foo()V:TSomeTypeVariable;"
 
 

Parameters:
typeVariableName - the name of the given type variable
declaringKey - the binding key of the type or method the type variable belongs to
Returns:
a new type variable binding key

createWilcardTypeBindingKey

public static String createWilcardTypeBindingKey(String typeKey,
                                                 char kind)
Deprecated. This method is missing crucial information necessary for proper wildcard binding key creation.

Creates a new wildcard type binding key from the given type binding key and the given wildcard kind (one of Signature.C_STAR, Signature.C_SUPER, or Signature.C_EXTENDS. If the wildcard is Signature.C_STAR, the given type binding key is ignored.

For example:

 
 createWilcardTypeBindingKey(null, Signature.C_STAR) -> "*"
 createWilcardTypeBindingKey("Ljava/util/List<TE;>;",
    Signature.C_SUPER) -> "-Ljava/util/List<TE;>;"
 createWilcardTypeBindingKey("Ljava/util/ArrayList;", Signature.C_EXTENDS) ->
    "+Ljava/util/ArrayList;"
 
 

Parameters:
typeKey - the binding key of the given type
kind - one of Signature.C_STAR, Signature.C_SUPER, or Signature.C_EXTENDS
Returns:
a new wildcard type binding key
See Also:
createWildcardTypeBindingKey(String, char, String, int)

createWildcardTypeBindingKey

public static String createWildcardTypeBindingKey(String genericTypeKey,
                                                  char boundKind,
                                                  String boundTypeKey,
                                                  int rank)
Creates a new wildcard type binding key from the given generic type binding key, the given wildcard kind (one of Signature.C_STAR, Signature.C_SUPER, or Signature.C_EXTENDS the given bound type binding key and the given rank. If the wildcard kind is Signature.C_STAR, the given bound type binding key is ignored.

For example:

 
 createWildcardTypeBindingKey("Ljava/util/ArrayList;", Signature.C_STAR, null, 0) -> "Ljava/util/ArrayList;{0}*"
 createWildcardTypeBindingKey("Ljava/util/ArrayList;", Signature.C_SUPER, "Ljava/lang/String;", 0) -> "Ljava/util/ArrayList;{0}-Ljava/lang/String;"
 createWildcardTypeBindingKey("Ljava/util/HashMap;", Signature.C_EXTENDS, "Ljava/lang/String;", 1) ->
    "Ljava/util/HashMap;{1}+Ljava/lang/String;"
 
 

Parameters:
genericTypeKey - the binding key of the generic type
boundKind - one of Signature.C_STAR, Signature.C_SUPER, or Signature.C_EXTENDS
boundTypeKey - the binding key of the bounding type.
rank - the relative position of this wild card type in the parameterization of the generic type.
Returns:
a new wildcard type binding key
Since:
3.5

getThrownExceptions

public String[] getThrownExceptions()
Returns the thrown exception signatures of the element represented by this binding key. If this binding key does not represent a method or does not throw any exception, returns an empty array.

Returns:
the thrown exceptions signatures
Since:
3.3

getTypeArguments

public String[] getTypeArguments()
Returns the type argument signatures of the element represented by this binding key. If this binding key doesn't represent a parameterized type or a parameterized method, returns an empty array.

Returns:
the type argument signatures

isRawType

public boolean isRawType()
Returns whether this binding key represents a raw type.

Returns:
whether this binding key represents a raw type

isParameterizedType

public boolean isParameterizedType()
Returns whether this binding key represents a parameterized type, or if its declaring type is a parameterized type.

Returns:
whether this binding key represents a parameterized type

isParameterizedMethod

public boolean isParameterizedMethod()
Returns whether this binding key represents a parameterized method, or if its declaring method is a parameterized method.

Returns:
whether this binding key represents a parameterized method

toSignature

public String toSignature()
Transforms this binding key into a resolved signature. If this binding key represents a field, the returned signature is the field type's signature.

Returns:
the resolved signature for this binding key
Since:
3.2
See Also:
Signature

toString

public String toString()
Overrides:
toString in class Object

Eclipse JDT
Release 3.7

Guidelines for using Eclipse APIs.

Copyright (c) 2000, 2011 IBM Corporation and others. All rights reserved.