<commit_before>package com.akikanellis.kata01.item;

import com.akikanellis.kata01.price.Price;
import com.akikanellis.kata01.utils.Preconditions;
import com.google.auto.value.AutoValue;

import java.util.Objects;

/**
 * Represents an item/product for our stock and groceries management. The identification is based off of barcode
 * identification where each barcode is unique per item.
 * <p>
 * An item's price can never be negative.
 */
@AutoValue
public abstract class Item {

    public static Builder builder() { return new AutoValue_Item.Builder(); }

    /**
     * The barcode of the item. Each barcode is unique per item.
     *
     * @return the barcode of the item
     */
    public abstract long barcode();

    /**
     * @return the name of the item
     */
    public abstract String name();

    /**
     * The price of the item. An item's price can never be negative.
     *
     * @return the price of the item
     */
    public abstract Price price();

    @Override public final boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Item other = (Item) o;
        return Objects.equals(barcode(), other.barcode());
    }

    @Override public final int hashCode() { return Long.hashCode(barcode()); }
<commit_msg>Add code blocks<commit_after>package com.akikanellis.kata01.item;

import com.akikanellis.kata01.price.Price;
import com.akikanellis.kata01.utils.Preconditions;
import com.google.auto.value.AutoValue;

import java.util.Objects;

/**
 * Represents an item/product for our stock and groceries management. The identification is based off of barcode
 * identification where each barcode is unique per item.
 * <p>
 * An {@code Item}'s price can never be negative.
 */
@AutoValue
public abstract class Item {

    public static Builder builder() { return new AutoValue_Item.Builder(); }

    /**
     * The barcode of the {@code Item}. Each barcode is unique per item.
     *
     * @return the barcode of the {@code Item}
     */
    public abstract long barcode();

    /**
     * @return the name of the {@code Item}
     */
    public abstract String name();

    /**
     * The price of the {@code Item}. An {@code Item}'s price can never be negative.
     *
     * @return the price of the {@code Item}
     */
    public abstract Price price();

    @Override public final boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Item other = (Item) o;
        return Objects.equals(barcode(), other.barcode());
    }

    @Override public final int hashCode() { return Long.hashCode(barcode()); }

{'fraction_non_alphanumeric': 0.11049519586104951, 'fraction_numerical': 0.004434589800443459, 'mean_word_length': 2.867142857142857, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, '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': '5759868', 'n_tokens_mistral': 790, 'n_tokens_neox': 765, 'n_words': 287}