I came across the following Java code that uses generics and inheritance. I truly do not understand what the following snippet does:

```
class A<B extends A<B>> {
   ...
}

```

What does this code do? 

(I got this from [DBMaker in MapDB](http://www.mapdb.org/apidocs/org/mapdb/DBMaker.html))