code: static String decode(
        String text, ProcessingEnvironment processingEnv, String packageName, TypeMirror baseType) {
      return decode(
          text, processingEnv.getElementUtils(), processingEnv.getTypeUtils(), packageName, baseType);
    }
docs: Decodes the given string, respelling class names appropriately. The text is scanned for tokens
  like {@code `java.util.Locale`} or {@code `«java.util.Locale`} to determine which classes are
  referenced. An appropriate set of imports is computed based on the set of those types. If the
  special token {@code `import`} appears in {@code text} then it will be replaced by this set of
  import statements. Then all of the tokens are replaced by the class names they represent,
  spelled appropriately given the import statements.
  
  @param text the text to be decoded.
  @param packageName the package of the generated class. Other classes in the same package do not
  need to be imported.
  @param baseType a class or interface that the generated class inherits from. Nested classes in
  that type do not need to be imported, and if another class has the same name as one of
  those nested classes then it will need to be qualified.