<commit_before>package org.clafer.ast;

import org.clafer.common.Check;

/**
 *
 * @author jimmy
 */
public class AstTransitiveClosure  implements AstSetExpr {

    private final AstSetExpr relation;

    AstTransitiveClosure(AstSetExpr relation) {
        this.relation = Check.notNull(relation);
    }

    public AstSetExpr getRelation() {
        return relation;
    }

    @Override
    public <A, B> B accept(AstExprVisitor<A, B> visitor, A a) {
        return visitor.visit(this, a);
    }
}<commit_msg>equals, hashcode, toString for AstTransitiveClosure.<commit_after>package org.clafer.ast;

import org.clafer.common.Check;

/**
 *
 * @author jimmy
 */
public class AstTransitiveClosure implements AstSetExpr {

    private final AstSetExpr relation;

    AstTransitiveClosure(AstSetExpr relation) {
        this.relation = Check.notNull(relation);
    }

    public AstSetExpr getRelation() {
        return relation;
    }

    @Override
    public <A, B> B accept(AstExprVisitor<A, B> visitor, A a) {
        return visitor.visit(this, a);
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof AstTransitiveClosure) {
            AstTransitiveClosure other = (AstTransitiveClosure) obj;
            return relation.equals(other.relation);
        }
        return false;
    }

    @Override
    public int hashCode() {
        return 83 * relation.hashCode();
    }

    @Override
    public String toString() {
        return relation + "*";
    }
}
{'fraction_non_alphanumeric': 0.09879839786381843, 'fraction_numerical': 0.0013351134846461949, 'mean_word_length': 2.7196029776674937, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, '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': '6076033', 'n_tokens_mistral': 472, 'n_tokens_neox': 447, 'n_words': 108}