<commit_before>package pl.openrest.filters.predicate.registry;

import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import pl.openrest.filters.predicate.annotation.Predicate;
import pl.openrest.filters.predicate.annotation.Predicate.PredicateType;
import pl.openrest.filters.query.registry.JoinInformation;

@Getter
@ToString
@EqualsAndHashCode
public class PredicateInformation {

    private final String name;
    private final Method method;
    private final PredicateType type;
    private final boolean defaultedPageable;
    private final List<JoinInformation> joins;

    public PredicateInformation(Method method, Predicate predicateAnn, List<JoinInformation> joins) {
        this.name = predicateAnn.name();
        this.method = method;
        this.type = predicateAnn.type();
        this.defaultedPageable = predicateAnn.defaultedPageable();
        this.joins = joins;
    }

    public PredicateInformation(Method method, Predicate predicateAnn) {
        this(method, predicateAnn, Collections.EMPTY_LIST);
    }

}
<commit_msg>Add joinsInformation creation to PredicateInformation constructor<commit_after>package pl.openrest.filters.predicate.registry;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.ToString;
import pl.openrest.filters.predicate.annotation.Predicate;
import pl.openrest.filters.predicate.annotation.Predicate.PredicateType;
import pl.openrest.filters.query.annotation.Join;
import pl.openrest.filters.query.registry.JoinInformation;
import pl.openrest.filters.query.registry.JoinInformationBuilder;

@Getter
@ToString
@EqualsAndHashCode
public class PredicateInformation {

    private final String name;
    private final Method method;
    private final PredicateType type;
    private final boolean defaultedPageable;
    private final List<JoinInformation> joins;

    public PredicateInformation(Method method, Predicate predicateAnn, Class<?> entityType) {
        this.name = predicateAnn.name();
        this.method = method;
        this.type = predicateAnn.type();
        this.defaultedPageable = predicateAnn.defaultedPageable();
        List<JoinInformation> joins = new ArrayList<>();
        for (Join join : predicateAnn.joins()) {
            joins.addAll(JoinInformationBuilder.getJoinsInformation(join.value(), entityType, join.fetch()));
        }
        this.joins = joins;
    }

}

{'fraction_non_alphanumeric': 0.08924395946999221, 'fraction_numerical': 0.0, 'mean_word_length': 4.438559322033898, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, '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': '6992539', 'n_tokens_mistral': 713, 'n_tokens_neox': 695, 'n_words': 154}