Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.annotations.common.reflection.java.generics
Interface TypeEnvironment

All Known Implementing Classes:
  CompoundTypeEnvironment, IdentityTypeEnvironment

    public interface TypeEnvironment

A typing context that knows how to "resolve" the generic parameters of a `Type`.

For example:

>       class Shop<T>{
>         List<T> getCatalog() { ... }
>       }

>       class Bakery extends Shop<Bread>{}

Consider the type returned by method `getCatalog()`. There are two possible contexts here. In the context of `Shop`, the type is `List<T>`. In the context of `Bakery`, the type is `List<Bread>`. Each of these contexts can be represented by a `TypeEnvironment`.

Author:
  Davide Marchignoli, Paolo Perrotta

Method Summary
`Type` | `bind(Type type)` Binds as many generic components of the given type as possible in this context.

Method Detail

### bind

    Type bind(Type type)

  Binds as many generic components of the given type as possible in this context.

  Warning: if the returned `Type` is a `Class`, then it's guaranteed to be a regular Java `Class`. In all other cases, this method might return a custom implementation of some interface that extends `Type`. Be sure not to mix these objects with Java's implementations of `Type` to avoid potential identity problems.

  This class does not support bindings involving inner classes or upper/lower bounds.

  Returns:
    a type where the generic arguments have been replaced by raw classes whenever this is possible.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD