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

com.xtremelabs.robolectric.internal.ClassNameResolver Maven / Gradle / Ivy

There is a newer version: 1.2
Show newest version
package com.xtremelabs.robolectric.internal;

public class ClassNameResolver {
    private String packageName;
    private String className;

    public ClassNameResolver(String packageName, String className) {
        this.packageName = packageName;
        this.className = className;
    }

    public Class resolve() {
        Class aClass;
        if (looksFullyQualified(className)) {
            aClass = safeClassForName(className);
        } else {
            aClass = safeClassForName(packageName + "." + className);
            if (aClass == null) {
                aClass = safeClassForName(packageName + className);
            }
        }

        if (aClass == null) {
            throw new RuntimeException("Could not find a class for package: "
                    + packageName + " and class name: " + className);
        }
        return aClass;
    }

    private boolean looksFullyQualified(String className) {
        return className.contains(".") && !className.startsWith(".");
    }

    private Class safeClassForName(String classNamePath) {
        try {
            return (Class) Class.forName(classNamePath);
        } catch (ClassNotFoundException e) {
            return null;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy