All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mockit.internal.util.ClassNaming Maven / Gradle / Ivy

/*
 * Copyright (c) 2006-2013 Rogério Liesenfeld
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.internal.util;

import org.jetbrains.annotations.*;

public final class ClassNaming
{
   /**
    * This method was created to work around an issue in the standard {@link Class#isAnonymousClass()} method, which
    * causes a sibling nested class to be loaded when called on a nested class. If that sibling nested class is not in
    * the classpath, a {@code ClassNotFoundException} would result.
    * 

* This method checks only the given class name, never causing any other classes to be loaded. */ public static boolean isAnonymousClass(@NotNull Class aClass) { return isAnonymousClass(aClass.getName()); } public static boolean isAnonymousClass(@NotNull String className) { int p = className.lastIndexOf('$'); return isAllNumeric(className, p); } public static boolean isAllNumeric(@NotNull String className, int positionJustBefore) { if (positionJustBefore <= 0) { return false; } int nextPos = positionJustBefore + 1; int n = className.length(); while (nextPos < n) { char c = className.charAt(nextPos); if (c < '0' || c > '9') return false; nextPos++; } return true; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy