Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 java.desktop.jmod - Desktop Module
JDK 11 java.desktop.jmod is the JMOD file for JDK 11 Desktop module.
JDK 11 Desktop module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.desktop.jmod.
JDK 11 Desktop module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Desktop module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.desktop.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ com/sun/beans/finder/AbstractFinder.java
/* * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package com.sun.beans.finder; import java.lang.reflect.Executable; import java.lang.reflect.Modifier; import java.util.HashMap; import java.util.Map; /** * This abstract class provides functionality * to find a public method or constructor * with specified parameter types. * It supports a variable number of parameters. * * @since 1.7 * * @author Sergey A. Malenkov */ abstract class AbstractFinder<T extends Executable> { private final Class<?>[] args; /** * Creates finder for array of classes of arguments. * If a particular element of array equals {@code null}, * than the appropriate pair of classes * does not take into consideration. * * @param args array of classes of arguments */ protected AbstractFinder(Class<?>[] args) { this.args = args; } /** * Checks validness of the method. * At least the valid method should be public. * * @param method the object that represents method * @return {@code true} if the method is valid, * {@code false} otherwise */ protected boolean isValid(T method) { return Modifier.isPublic(method.getModifiers()); } /** * Performs a search in the {@code methods} array. * The one method is selected from the array of the valid methods. * The list of parameters of the selected method shows * the best correlation with the list of arguments * specified at class initialization. * If more than one method is both accessible and applicable * to a method invocation, it is necessary to choose one * to provide the descriptor for the run-time method dispatch. * The most specific method should be chosen. * * @param methods the array of methods to search within * @return the object that represents found method * @throws NoSuchMethodException if no method was found or several * methods meet the search criteria * @see #isAssignable */ final T find(T[] methods) throws NoSuchMethodException { Map<T, Class<?>[]> map = new HashMap<T, Class<?>[]>(); T oldMethod = null; Class<?>[] oldParams = null; boolean ambiguous = false; for (T newMethod : methods) { if (isValid(newMethod)) { Class<?>[] newParams = newMethod.getParameterTypes(); if (newParams.length == this.args.length) { PrimitiveWrapperMap.replacePrimitivesWithWrappers(newParams); if (isAssignable(newParams, this.args)) { if (oldMethod == null) { oldMethod = newMethod; oldParams = newParams; } else { boolean useNew = isAssignable(oldParams, newParams); boolean useOld = isAssignable(newParams, oldParams); if (useOld && useNew) { // only if parameters are equal useNew = !newMethod.isSynthetic(); useOld = !oldMethod.isSynthetic(); } if (useOld == useNew) { ambiguous = true; } else if (useNew) { oldMethod = newMethod; oldParams = newParams; ambiguous = false; } } } } if (newMethod.isVarArgs()) { int length = newParams.length - 1; if (length <= this.args.length) { Class<?>[] array = new Class<?>[this.args.length]; System.arraycopy(newParams, 0, array, 0, length); if (length < this.args.length) { Class<?> type = newParams[length].getComponentType(); if (type.isPrimitive()) { type = PrimitiveWrapperMap.getType(type.getName()); } for (int i = length; i < this.args.length; i++) { array[i] = type; } } map.put(newMethod, array); } } } } for (T newMethod : methods) { Class<?>[] newParams = map.get(newMethod); if (newParams != null) { if (isAssignable(newParams, this.args)) { if (oldMethod == null) { oldMethod = newMethod; oldParams = newParams; } else { boolean useNew = isAssignable(oldParams, newParams); boolean useOld = isAssignable(newParams, oldParams); if (useOld && useNew) { // only if parameters are equal useNew = !newMethod.isSynthetic(); useOld = !oldMethod.isSynthetic(); } if (useOld == useNew) { if (oldParams == map.get(oldMethod)) { ambiguous = true; } } else if (useNew) { oldMethod = newMethod; oldParams = newParams; ambiguous = false; } } } } } if (ambiguous) { throw new NoSuchMethodException("Ambiguous methods are found"); } if (oldMethod == null) { throw new NoSuchMethodException("Method is not found"); } return oldMethod; } /** * Determines if every class in {@code min} array is either the same as, * or is a superclass of, the corresponding class in {@code max} array. * The length of every array must equal the number of arguments. * This comparison is performed in the {@link #find} method * before the first call of the isAssignable method. * If an argument equals {@code null} * the appropriate pair of classes does not take into consideration. * * @param min the array of classes to be checked * @param max the array of classes that is used to check * @return {@code true} if all classes in {@code min} array * are assignable from corresponding classes in {@code max} array, * {@code false} otherwise * * @see Class#isAssignableFrom */ private boolean isAssignable(Class<?>[] min, Class<?>[] max) { for (int i = 0; i < this.args.length; i++) { if (null != this.args[i]) { if (!min[i].isAssignableFrom(max[i])) { return false; } } } return true; } }
⏎ com/sun/beans/finder/AbstractFinder.java
Or download all of them as a single archive file:
File name: java.desktop-11.0.1-src.zip File size: 7974380 bytes Release date: 2018-11-04 Download
⇒ JDK 11 java.instrument.jmod - Instrument Module
2022-08-06, 163462👍, 5💬
Popular Posts:
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
Commons VFS provides a single API for accessing various different file systems. It presents a unifor...
JDOM provides a solution for using XML from Java that is as simple as Java itself. There is no compe...
What JAR files are required to run dom\Counter.java provided in the Apache Xerces package? You can f...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...