public Annotator get(@NonNull AnnotatableType annotationType, @NonNull Language language) {
      String key = createKey(annotationType, language);
      if (!cache.containsKey(key)) {
         cache.put(key, annotationType.getAnnotator(language));
      }
      return cache.get(key);
   }
public Annotator get ( @ NonNull AnnotatableType annotationType , @ NonNull Language language ) { String key = createKey ( annotationType , language ) ; if ( ! cache . containsKey ( key ) ) { cache . put ( key , annotationType . getAnnotator ( language ) ) ; } return cache . get ( key ) ; }
Gets (from cache or constructs) the annotator specified via the configs for a given annotation type. Annotators
are specified by using the fully qualified name of the annotation and .annotator. As with all config values the
setting can be language specific. Configs will be checked for the language of the passed in. An example of a
settings is: <code>AnnotationType.TOKEN.annotator=com.davidbracewell.annotation.Tokenizer</code>

@param annotationType The annotation type
@param language       The language of the annotator we want
@return An annotator that can annotate the given annotation class