langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/file/BaseFileObject.java
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/file/BaseFileObject.java Thu Dec 10 08:17:12 2015 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
- * Copyright (c) 2005, 2014, 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.javac.file;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.charset.CharsetDecoder;
-import java.nio.file.Path;
-
-import javax.lang.model.element.Modifier;
-import javax.lang.model.element.NestingKind;
-import javax.tools.FileObject;
-import javax.tools.JavaFileObject;
-
-import com.sun.tools.javac.util.DefinedBy;
-import com.sun.tools.javac.util.DefinedBy.Api;
-
-/**
- * <p><b>This is NOT part of any supported API.
- * If you write code that depends on this, you do so at your own risk.
- * This code and its internal interfaces are subject to change or
- * deletion without notice.</b>
-*/
-public abstract class BaseFileObject implements JavaFileObject {
- protected BaseFileObject(JavacFileManager fileManager) {
- this.fileManager = fileManager;
- }
-
- /** Return a short name for the object, such as for use in raw diagnostics
- */
- public abstract String getShortName();
-
- @Override
- public String toString() {
- return getClass().getSimpleName() + "[" + getName() + "]";
- }
-
- @DefinedBy(Api.COMPILER)
- public NestingKind getNestingKind() { return null; }
-
- @DefinedBy(Api.COMPILER)
- public Modifier getAccessLevel() { return null; }
-
- @DefinedBy(Api.COMPILER)
- public Reader openReader(boolean ignoreEncodingErrors) throws IOException {
- return new InputStreamReader(openInputStream(), getDecoder(ignoreEncodingErrors));
- }
-
- protected CharsetDecoder getDecoder(boolean ignoreEncodingErrors) {
- throw new UnsupportedOperationException();
- }
-
- protected abstract String inferBinaryName(Iterable<? extends Path> path);
-
- protected static JavaFileObject.Kind getKind(String filename) {
- return BaseFileManager.getKind(filename);
- }
-
- protected static String removeExtension(String fileName) {
- int lastDot = fileName.lastIndexOf(".");
- return (lastDot == -1 ? fileName : fileName.substring(0, lastDot));
- }
-
- protected static URI createJarUri(Path jarFile, String entryName) {
- URI jarURI = jarFile.toUri().normalize();
- String separator = entryName.startsWith("/") ? "!" : "!/";
- try {
- // The jar URI convention appears to be not to re-encode the jarURI
- return new URI("jar:" + jarURI + separator + entryName);
- } catch (URISyntaxException e) {
- throw new CannotCreateUriError(jarURI + separator + entryName, e);
- }
- }
-
- /** Used when URLSyntaxException is thrown unexpectedly during
- * implementations of (Base)FileObject.toURI(). */
- protected static class CannotCreateUriError extends Error {
- private static final long serialVersionUID = 9101708840997613546L;
- public CannotCreateUriError(String value, Throwable cause) {
- super(value, cause);
- }
- }
-
- /** Return the last component of a presumed hierarchical URI.
- * From the scheme specific part of the URI, it returns the substring
- * after the last "/" if any, or everything if no "/" is found.
- */
- public static String getSimpleName(FileObject fo) {
- URI uri = fo.toUri();
- String s = uri.getSchemeSpecificPart();
- return s.substring(s.lastIndexOf("/") + 1); // safe when / not found
-
- }
-
- // force subtypes to define equals
- @Override
- public abstract boolean equals(Object other);
-
- // force subtypes to define hashCode
- @Override
- public abstract int hashCode();
-
- /** The file manager that created this JavaFileObject. */
- protected final JavacFileManager fileManager;
-}