code: @SuppressWarnings({ "unchecked", "rawtypes" })
  	private static Set<Class<? extends Enum<?>>> listupEnumClasses(final String packageName) {
  		String resourceName = packageName.replace('.', '/');
  		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
  		List<URL> roots;
  		try {
  			roots = Collections.list(classLoader.getResources(resourceName));
  		} catch (IOException e) {
  			LOG.error(e.getMessage(), e);
  			return Collections.emptySet();
  		}
  
  		Set<Class<?>> classes = new HashSet<>();
  		for (URL root : roots) {
  			if ("file".equalsIgnoreCase(root.getProtocol())) {
  				try {
  					classes.addAll(findEnumClassesWithFile(packageName, Paths.get(root.toURI())));
  				} catch (URISyntaxException e) {
  					LOG.error(e.getMessage(), e);
  				}
  			}
  			if ("jar".equalsIgnoreCase(root.getProtocol())) {
  				try (JarFile jarFile = ((JarURLConnection) root.openConnection()).getJarFile()) {
  					classes.addAll(findEnumClassesWithJar(packageName, jarFile));
  				} catch (IOException e) {
  					LOG.error(e.getMessage(), e);
  				}
  			}
  		}
  
  		return (Set) classes;
  	}
docs: 対象パッケージ以下のクラスを取得
  
  @param packageName ルートパッケージ名
  @return クラスリスト