code: @Override
      public FileObject getFileForOutput(JavaFileManager.Location location,
              String packageName,
              String relativeName,
              FileObject sibling)
              throws IOException {
          throw new UnsupportedOperationException("getFileForOutput: location: " + location +
                  ", packageName: " + packageName +
                  ", relativeName: " + relativeName +
                  ", sibling: " + sibling);
      }
docs: Returns a {@linkplain FileObject file object} for output
  representing the specified <a href="JavaFileManager.html#relative_name">relative
  name</a> in the specified package in the given location.
  
  <p>Optionally, this file manager might consider the sibling as
  a hint for where to place the output.  The exact semantics of
  this hint is unspecified.  The JDK compiler, javac, for
  example, will place class files in the same directories as
  originating source files unless a class file output directory
  is provided.  To facilitate this behavior, javac might provide
  the originating source file as sibling when calling this
  method.
  
  <p>If the returned object represents a {@linkplain
  JavaFileObject.Kind#SOURCE source} or {@linkplain
  JavaFileObject.Kind#CLASS class} file, it must be an instance
  of {@link JavaFileObject}.
  
  <p>Informally, the file object returned by this method is
  located in the concatenation of the location, package name, and
  relative name or next to the sibling argument.  See {@link
  #getFileForInput getFileForInput} for an example.
  
  @param location a location
  @param packageName a package name
  @param relativeName a relative name
  @param sibling a file object to be used as hint for placement;
  might be {@code null}
  @return a file object
  @throws IllegalArgumentException if sibling is not known to
  this file manager, or if the location is not known to this file
  manager and the file manager does not support unknown
  locations, or if {@code relativeName} is not valid
  @throws IOException if an I/O error occurred, or if {@link
  #close} has been called and this file manager cannot be
  reopened
  @throws IllegalStateException if {@link #close} has been called
  and this file manager cannot be reopened