code: @SuppressWarnings("unchecked")
      public <T extends Type> T resolve(Class<T> typeClass, String fullyQualifiedName) {
          Type result = resolve(fullyQualifiedName);
          if (result == null) {
              return null;
          }
          if (typeClass.isAssignableFrom(result.getClass())) {
              return (T) result;
          }
          throw new ClassCastException(result.getClass() + " cannot be cast to " + typeClass);
      }
docs: Resolve a type declaration by it's fully-qualified name
  using this proto context.