<commit_before>package de.is24.deadcode4j.analyzer;

import de.is24.deadcode4j.Analyzer;
import de.is24.deadcode4j.CodeContext;
import javassist.CtClass;

import javax.annotation.Nonnull;
import java.util.Set;

import static com.google.common.collect.Sets.newHashSet;
import static java.util.Arrays.asList;
import static java.util.Collections.disjoint;

/**
 * Serves as a base class with which to mark classes as being in use if they implement one of the specified interfaces.
 *
 * @since 1.4
 */
public abstract class InterfaceAnalyzer extends ByteCodeAnalyzer implements Analyzer {

    private final String dependerId;
    private final Set<String> interfaceClasses;

    /**
     * Creates a new <code>InterfaceAnalyzer</code>.
     *
     * @param dependerId     a description of the <i>depending entity</i> with which to
     *                       call {@link de.is24.deadcode4j.CodeContext#addDependencies(String, java.util.Collection)}
     * @param interfaceNames a list of fully qualified interface names indicating that the implementing class is still
     *                       in use
     * @since 1.4
     */
    protected InterfaceAnalyzer(@Nonnull String dependerId, @Nonnull String... interfaceNames) {
        this.dependerId = dependerId;
        this.interfaceClasses = newHashSet(interfaceNames);
        if (this.interfaceClasses.isEmpty()) {
            throw new IllegalArgumentException("interfaceNames cannot by empty!");
        }
    }
<commit_msg>tiny clarification<commit_after>package de.is24.deadcode4j.analyzer;

import de.is24.deadcode4j.Analyzer;
import de.is24.deadcode4j.CodeContext;
import javassist.CtClass;

import javax.annotation.Nonnull;
import java.util.Set;

import static com.google.common.collect.Sets.newHashSet;
import static java.util.Arrays.asList;
import static java.util.Collections.disjoint;

/**
 * Serves as a base class with which to mark classes as being in use if they explicitly implement one of the specified
 * interfaces.
 *
 * @since 1.4
 */
public abstract class InterfaceAnalyzer extends ByteCodeAnalyzer implements Analyzer {

    private final String dependerId;
    private final Set<String> interfaceClasses;

    /**
     * Creates a new <code>InterfaceAnalyzer</code>.
     *
     * @param dependerId     a description of the <i>depending entity</i> with which to
     *                       call {@link de.is24.deadcode4j.CodeContext#addDependencies(String, java.util.Collection)}
     * @param interfaceNames a list of fully qualified interface names indicating that the implementing class is still
     *                       in use
     * @since 1.4
     */
    protected InterfaceAnalyzer(@Nonnull String dependerId, @Nonnull String... interfaceNames) {
        this.dependerId = dependerId;
        this.interfaceClasses = newHashSet(interfaceNames);
        if (this.interfaceClasses.isEmpty()) {
            throw new IllegalArgumentException("interfaceNames cannot by empty!");
        }
    }

{'fraction_non_alphanumeric': 0.08347301374455246, 'fraction_numerical': 0.010727455581629233, 'mean_word_length': 3.244665718349929, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, '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': '6100341', 'n_tokens_mistral': 828, 'n_tokens_neox': 794, 'n_words': 242}