<commit_before>/*
 * Copyright (c) 2013, 2014 Sacred Scripture Foundation.
 * "All scripture is given by inspiration of God, and is profitable for
 * doctrine, for reproof, for correction, for instruction in righteousness:
 * That the man of God may be perfect, throughly furnished unto all good
 * works." (2 Tim 3:16-17)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.sacredscripture.platform.api.bible;

import org.sacredscripturefoundation.commons.Coded;
import org.sacredscripturefoundation.commons.Named;
import org.sacredscripturefoundation.commons.entity.Entity;
import org.sacredscripturefoundation.commons.locale.LocaleSensitive;

import java.util.List;

/**
 * This interface defines a bible book.
 *
 * @author <NAME>
 * @see Bible#getBooks()
 * @see BookGroup#getBooks()
 * @since Sacred Scripture Platform 1.0
 */
public interface Book extends Entity<Long>, Named, Coded<String> {

    /**
     * Retrieves the primary abbreviation of this book.
     *
     * @return the abbreviation
     * @see #getAbbreviations()
     */
    @LocaleSensitive
    String getAbbreviation();

    /**
     * Retrieves the abbreviations of this book. The order is important. The
     * first one is the primary abbreviation, the second is secondary, and so
     * forth. The first should be used when only one is to be displayed to the
     * user.
     *
     * @return the abbreviations
     * @see #getAbbreviation()
     */
    @LocaleSensitive
    List<String> getAbbreviations();

    /**
     * Retrieves the owning bible of this book.
     *
     * @return the bible
     */
    Bible getBible();

    /**
     * Retrieves the type of this book.
     *
     * @return the book type
     */
    BookType getBookType();

    /**
     * Retrieves the collection of chapters that belong to this book. The
     * collection is sorted accordingly to the bible edition.
     *
     * @return the collection
     */
    List<Chapter> getChapters();

    /**
     * Retrieves the common name of this book. The common name is the name which
     * the book is commonly known as in everyday life.
     *
     * @return the name
     */
    @Override
    @LocaleSensitive
    String getName();

    /**
     * Retrieves the order value of this book, with a higher value meaning
     * greater in terms of sorting. The meaning of the order is defined by the
     * canonical positioning within its owning Bible.
     *
     * @return the order value
     */
    int getOrder();

    /**
     * Returns the title of this book. The title is a long description like
     * "The Gospel of Jesus Christ according to Matthew".
     *
     * @return the formal name
     */
    @LocaleSensitive
    String getTitle();

}<commit_msg>Clarify javadoc headline<commit_after>/*
 * Copyright (c) 2013, 2014 Sacred Scripture Foundation.
 * "All scripture is given by inspiration of God, and is profitable for
 * doctrine, for reproof, for correction, for instruction in righteousness:
 * That the man of God may be perfect, throughly furnished unto all good
 * works." (2 Tim 3:16-17)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.sacredscripture.platform.api.bible;

import org.sacredscripturefoundation.commons.Coded;
import org.sacredscripturefoundation.commons.Named;
import org.sacredscripturefoundation.commons.entity.Entity;
import org.sacredscripturefoundation.commons.locale.LocaleSensitive;

import java.util.List;

/**
 * This interface defines a bible book inside a particular bible edition.
 *
 * @author <NAME>
 * @see Bible#getBooks()
 * @see BookGroup#getBooks()
 * @since Sacred Scripture Platform 1.0
 */
public interface Book extends Entity<Long>, Named, Coded<String> {

    /**
     * Retrieves the primary abbreviation of this book.
     *
     * @return the abbreviation
     * @see #getAbbreviations()
     */
    @LocaleSensitive
    String getAbbreviation();

    /**
     * Retrieves the abbreviations of this book. The order is important. The
     * first one is the primary abbreviation, the second is secondary, and so
     * forth. The first should be used when only one is to be displayed to the
     * user.
     *
     * @return the abbreviations
     * @see #getAbbreviation()
     */
    @LocaleSensitive
    List<String> getAbbreviations();

    /**
     * Retrieves the owning bible of this book.
     *
     * @return the bible
     */
    Bible getBible();

    /**
     * Retrieves the type of this book.
     *
     * @return the book type
     */
    BookType getBookType();

    /**
     * Retrieves the collection of chapters that belong to this book. The
     * collection is sorted accordingly to the bible edition.
     *
     * @return the collection
     */
    List<Chapter> getChapters();

    /**
     * Retrieves the common name of this book. The common name is the name which
     * the book is commonly known as in everyday life.
     *
     * @return the name
     */
    @Override
    @LocaleSensitive
    String getName();

    /**
     * Retrieves the order value of this book, with a higher value meaning
     * greater in terms of sorting. The meaning of the order is defined by the
     * canonical positioning within its owning Bible.
     *
     * @return the order value
     */
    int getOrder();

    /**
     * Returns the title of this book. The title is a long description like
     * "The Gospel of Jesus Christ according to Matthew".
     *
     * @return the formal name
     */
    @LocaleSensitive
    String getTitle();

}
{'fraction_non_alphanumeric': 0.07909939268256555, 'fraction_numerical': 0.005925048141016145, 'mean_word_length': 2.5057113187954307, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, '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': '5760101', 'n_tokens_mistral': 1987, 'n_tokens_neox': 1756, 'n_words': 739}