diff -r 783d04ecccc3 -r b1f360639517 src/jdk.rmic/share/classes/sun/rmi/rmic/newrmic/jrmp/Util.java --- a/src/jdk.rmic/share/classes/sun/rmi/rmic/newrmic/jrmp/Util.java Fri Nov 03 09:56:02 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2003, 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 sun.rmi.rmic.newrmic.jrmp; - -import com.sun.javadoc.ClassDoc; -import com.sun.javadoc.MethodDoc; -import com.sun.javadoc.Parameter; -import com.sun.javadoc.Type; - -/** - * Provides static utility methods. - * - * WARNING: The contents of this source file are not part of any - * supported API. Code that depends on them does so at its own risk: - * they are subject to change or removal without notice. - * - * @author Peter Jones - **/ -final class Util { - - private Util() { throw new AssertionError(); } - - /** - * Returns the binary name of the class or interface represented - * by the specified ClassDoc. - **/ - static String binaryNameOf(ClassDoc cl) { - String flat = cl.name().replace('.', '$'); - String packageName = cl.containingPackage().name(); - return packageName.equals("") ? flat : packageName + "." + flat; - } - - /** - * Returns the method descriptor for the specified method. - * - * See section 4.3.3 of The Java Virtual Machine Specification - * Second Edition for the definition of a "method descriptor". - **/ - static String methodDescriptorOf(MethodDoc method) { - String desc = "("; - Parameter[] parameters = method.parameters(); - for (int i = 0; i < parameters.length; i++) { - desc += typeDescriptorOf(parameters[i].type()); - } - desc += ")" + typeDescriptorOf(method.returnType()); - return desc; - } - - /** - * Returns the descriptor for the specified type, as appropriate - * for either a parameter or return type in a method descriptor. - **/ - private static String typeDescriptorOf(Type type) { - String desc; - ClassDoc classDoc = type.asClassDoc(); - if (classDoc == null) { - /* - * Handle primitive types. - */ - String name = type.typeName(); - if (name.equals("boolean")) { - desc = "Z"; - } else if (name.equals("byte")) { - desc = "B"; - } else if (name.equals("char")) { - desc = "C"; - } else if (name.equals("short")) { - desc = "S"; - } else if (name.equals("int")) { - desc = "I"; - } else if (name.equals("long")) { - desc = "J"; - } else if (name.equals("float")) { - desc = "F"; - } else if (name.equals("double")) { - desc = "D"; - } else if (name.equals("void")) { - desc = "V"; - } else { - throw new AssertionError( - "unrecognized primitive type: " + name); - } - } else { - /* - * Handle non-array reference types. - */ - desc = "L" + binaryNameOf(classDoc).replace('.', '/') + ";"; - } - - /* - * Handle array types. - */ - int dimensions = type.dimension().length() / 2; - for (int i = 0; i < dimensions; i++) { - desc = "[" + desc; - } - - return desc; - } - - /** - * Returns a reader-friendly string representation of the - * specified method's signature. Names of reference types are not - * package-qualified. - **/ - static String getFriendlyUnqualifiedSignature(MethodDoc method) { - String sig = method.name() + "("; - Parameter[] parameters = method.parameters(); - for (int i = 0; i < parameters.length; i++) { - if (i > 0) { - sig += ", "; - } - Type paramType = parameters[i].type(); - sig += paramType.typeName() + paramType.dimension(); - } - sig += ")"; - return sig; - } - - /** - * Returns true if the specified type is void. - **/ - static boolean isVoid(Type type) { - return type.asClassDoc() == null && type.typeName().equals("void"); - } -}