class ActionFactory {

    public static void registerActionClass(String name, Class<?> clazz) {
        if (!BaseSpellAction.class.isAssignableFrom(clazz)) {
            throw new IllegalArgumentException("Must extend SpellAction");
        }

        ActionConstructor constructor = InternalActionResolver
                .createConstructor(clazz);

        if (constructor == null) {
            throw new IllegalArgumentException(
                    "Class does not have a valid no-args constructor");
        }

        InternalActionResolver.actionClasses.put(name, constructor);
    }

    private  ActionFactory();

}