1 /*
2 * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
327 * Returns the enclosing type of this type, if it exists, or {@code null}.
328 */
329 ResolvedJavaType getEnclosingType();
330
331 /**
332 * Returns an array reflecting all the constructors declared by this type. This method is
333 * similar to {@link Class#getDeclaredConstructors()} in terms of returned constructors.
334 */
335 ResolvedJavaMethod[] getDeclaredConstructors();
336
337 /**
338 * Returns an array reflecting all the methods declared by this type. This method is similar to
339 * {@link Class#getDeclaredMethods()} in terms of returned methods.
340 */
341 ResolvedJavaMethod[] getDeclaredMethods();
342
343 /**
344 * Returns the {@code <clinit>} method for this class if there is one.
345 */
346 ResolvedJavaMethod getClassInitializer();
347
348 /**
349 * Returns true if this type represents an interface and it should be trusted even in places
350 * where the JVM verifier would not give any guarantees other than {@link Object}.
351 */
352 boolean isTrustedInterfaceType();
353
354 default ResolvedJavaMethod findMethod(String name, Signature signature) {
355 for (ResolvedJavaMethod method : getDeclaredMethods()) {
356 if (method.getName().equals(name) && method.getSignature().equals(signature)) {
357 return method;
358 }
359 }
360 return null;
361 }
362 }
|
1 /*
2 * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
327 * Returns the enclosing type of this type, if it exists, or {@code null}.
328 */
329 ResolvedJavaType getEnclosingType();
330
331 /**
332 * Returns an array reflecting all the constructors declared by this type. This method is
333 * similar to {@link Class#getDeclaredConstructors()} in terms of returned constructors.
334 */
335 ResolvedJavaMethod[] getDeclaredConstructors();
336
337 /**
338 * Returns an array reflecting all the methods declared by this type. This method is similar to
339 * {@link Class#getDeclaredMethods()} in terms of returned methods.
340 */
341 ResolvedJavaMethod[] getDeclaredMethods();
342
343 /**
344 * Returns the {@code <clinit>} method for this class if there is one.
345 */
346 ResolvedJavaMethod getClassInitializer();
347
348 default ResolvedJavaMethod findMethod(String name, Signature signature) {
349 for (ResolvedJavaMethod method : getDeclaredMethods()) {
350 if (method.getName().equals(name) && method.getSignature().equals(signature)) {
351 return method;
352 }
353 }
354 return null;
355 }
356 }
|