@@ -0,0 +1,1795 @@
+/**%0A * Copyright 2015 The original authors.%0A * %0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A * %0A *     http://www.apache.org/licenses/LICENSE-2.0%0A * %0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A * %0A**/%0A%0Apackage io.sundr.codegen.apt;%0A%0Aimport java.io.IOException;%0Aimport java.io.Writer;%0Aimport java.util.function.Function;%0A%0Aimport javax.annotation.processing.Filer;%0Aimport javax.tools.JavaFileManager.Location;%0Aimport javax.tools.StandardLocation;%0A%0Aimport io.sundr.SundrException;%0Aimport io.sundr.codegen.api.Output;%0A%0Apublic class GenericAptOutput%3CT%3E implements Output%3CT%3E %7B%0A%0A  private final Filer filer;%0A  private final Location location;%0A  private final String moduleAndPackage;%0A  private final String relativePath;%0A%0A  public GenericAptOutput(Filer filer, String relativePath) %7B%0A    this(filer, StandardLocation.CLASS_OUTPUT, %22%22, relativePath);%0A  %7D%0A%0A  public GenericAptOutput(Filer filer, Location location, String moduleAndPackage, String relativePath) %7B%0A    this.filer = filer;%0A    this.location = location;%0A    this.moduleAndPackage = moduleAndPackage;%0A    this.relativePath = relativePath;%0A  %7D%0A%0A  @Override%0A  public Function%3CT, Writer%3E getFunction() %7B%0A    return type -%3E %7B%0A      try %7B%0A        return filer.createResource(location, moduleAndPackage, relativePath).openWriter();%0A      %7D catch (IOException e) %7B%0A        throw SundrException.launderThrowable(e);%0A      %7D%0A    %7D;%0A  %7D%0A%0A%7D%0A

Introduce generic apt output