package org.netbeans.gradle.project.others;
import org.jtrim.utils.ExceptionHelper;
public final class PluginEnum implements ClassFinder {
private final ClassFinder pluginClass;
public PluginEnum(ClassFinder pluginClass) {
ExceptionHelper.checkNotNullArgument(pluginClass, "pluginClass");
this.pluginClass = pluginClass;
}
public PluginEnum(PluginClassFactory classFactory, String className) {
this(new PluginClass(classFactory, className));
}
@Override
public Class<?> tryGetClass() {
return pluginClass.tryGetClass();
}
public Object tryGetEnumConst(String name) {
ExceptionHelper.checkNotNullArgument(name, "name");
Class<?> type = pluginClass.tryGetClass();
if (type == null) {
return null;
}
Object[] enumTypes = type.getEnumConstants();
if (enumTypes == null) {
return null;
}
for (Object enumType: enumTypes) {
if (enumType instanceof Enum) {
if (name.equals(((Enum<?>)enumType).name())) {
return enumType;
}
}
}
return null;
}
}