class InternalImportOptions extends ImportOptions implements InstallHookProcessorFactory {

    @Override
    public InstallHookProcessor createInstallHookProcessor() {
        if (!isSkip()) {
            if (installHookProcessorFactoryDelegate != null) {
                return new InstallHookProcessorWrapper(packageId, installHookPolicy, violationReporter,
                        installHookProcessorFactoryDelegate.createInstallHookProcessor());
            } else if (internalInstallHookProcessorClazz != null) {
                try {
                    return new InstallHookProcessorWrapper(packageId, installHookPolicy, violationReporter,
                            internalInstallHookProcessorClazz.newInstance());
                } catch (InstantiationException | IllegalAccessException e) {
                    LOGGER.error("failed to create instance of wrapped processor class", e);
                }
            }
        }
        return NOOP_INSTALL_HOOK_PROCESSOR;
    }

      InternalImportOptions(final @NotNull PackageId packageId, final @NotNull ClassLoader implClassLoader);
      InternalImportOptions(final @NotNull PackageId packageId,
                          final @Nullable ImportOptions optionsDelegate,
                          final @Nullable Class<? extends InstallHookProcessor> internalInstallHookProcessorClazz);

}