<commit_before>package hm.binkley.inject;

import com.google.inject.AbstractModule;
import com.google.inject.Module;
import org.aeonbits.owner.Config;
import org.aeonbits.owner.ConfigFactory;

import javax.annotation.Nonnull;

/**
 * {@code OwnerModule} needs documentation.
 *
 * @author <a href="mailto:<EMAIL>"><NAME> (binkley)</a>
 * @todo Needs documentation.
 */
public final class OwnerModule<C extends Config>
        extends AbstractModule {
    private final Class<C> configType;

    private OwnerModule(final Class<C> configType) {
        this.configType = configType;
    }

    public static <C extends Config> Module ownerModule(@Nonnull final Class<C> configType) {
        return new OwnerModule<>(configType);
    }

    @Override<commit_msg>Javadoc for owner module.<commit_after>package hm.binkley.inject;

import com.google.inject.AbstractModule;
import com.google.inject.Module;
import org.aeonbits.owner.Config;
import org.aeonbits.owner.ConfigFactory;

import javax.annotation.Nonnull;

/**
 * {@code OwnerModule} is light-weight wiring of an OWNER API config instance into Guice.
 * <p/>
 * Guice does not support generic provider methods; each config needs to be separately configured.
 *
 * @author <a href="mailto:<EMAIL>"><NAME> (binkley)</a>
 */
public final class OwnerModule<C extends Config>
        extends AbstractModule {
    private final Class<C> configType;

    private OwnerModule(final Class<C> configType) {
        this.configType = configType;
    }

    /**
     * Creates a new Guice module for the given OWNER API config class.
     *
     * @param configType the config class, never missing
     * @param <C> the config type
     *
     * @return the Guice module, never missing
     */
    @Nonnull
    public static <C extends Config> Module ownerModule(@Nonnull final Class<C> configType) {
        return new OwnerModule<>(configType);
    }

    @Override
{'fraction_non_alphanumeric': 0.10366492146596859, 'fraction_numerical': 0.0, 'mean_word_length': 3.6723716381418092, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3829975', 'n_tokens_mistral': 569, 'n_tokens_neox': 554, 'n_words': 164}