--- old/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/api/util/FilerCodeWriter.java 2015-10-21 14:12:05.000000000 +0200 +++ /dev/null 2015-10-21 14:12:05.000000000 +0200 @@ -1,81 +0,0 @@ -/* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.internal.xjc.api.util; - -import javax.tools.StandardLocation; -import java.io.IOException; -import java.io.OutputStream; -import java.io.Writer; - -import com.sun.codemodel.internal.CodeWriter; -import com.sun.codemodel.internal.JPackage; -import javax.annotation.processing.Filer; - -import static javax.tools.StandardLocation.CLASS_PATH; -import static javax.tools.StandardLocation.SOURCE_PATH; - -/** - * {@link CodeWriter} that generates source code to {@link Filer}. - * - * @author Kohsuke Kawaguchi - */ -public final class FilerCodeWriter extends CodeWriter { - - private final Filer filer; - - public FilerCodeWriter(Filer filer) { - this.filer = filer; - } - - public OutputStream openBinary(JPackage pkg, String fileName) throws IOException { - StandardLocation loc; - if(fileName.endsWith(".java")) { - // Annotation Processing doesn't do the proper Unicode escaping on Java source files, - // so we can't rely on Filer.createSourceFile. - loc = SOURCE_PATH; - } else { - // put non-Java files directly to the output folder - loc = CLASS_PATH; - } - return filer.createResource(loc, pkg.name(), fileName).openOutputStream(); - } - - public Writer openSource(JPackage pkg, String fileName) throws IOException { - String name; - if(pkg.isUnnamed()) - name = fileName; - else - name = pkg.name()+'.'+fileName; - - name = name.substring(0,name.length()-5); // strip ".java" - - return filer.createSourceFile(name).openWriter(); - } - - public void close() { - ; // noop - } -}