<commit_before>package com.matthewtamlin.sliding_intro_screen_library.buttons;

import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.view.View;


/**
 * Provides indirect access to an IntroButton, to allow limited modification and inspection. Each
 * accessor provides access to a single IntroButton only. This class is immutable but not
 * necessarily thread-safe, as its methods interact with non-thread safe objects.
 * <p>
 * See {@link IntroButton}.
 */
public final class IntroButtonAccessor {
	/**
	 * The IntroButton this accessor provides access to.
	 */
	private final IntroButton button;

	/**
	 * Constructs a new IntroButtonAccessor instance.
	 *
	 * @param button
	 * 		the IntroButton to provide access to
	 */
	public IntroButtonAccessor(final IntroButton button) {
		this.button = button;
	}

	/**
	 * Sets the Behaviour of the accessed IntroButton. The IntroButton class contains predefined
	 * Behaviours which meet most needs, but custom implementations of the Behaviour interface are
	 * also accepted. The {@link IntroButton.BehaviourAdapter} class can be used to reduce
	 * boilerplate code when implementing the interface. This method does not accept null; to do
	 * nothing when the button is clicked, pass an instance of {@link IntroButton.DoNothing}.
	 * <p>
	 * See {@link com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton.Behaviour}.
	 *
	 * @param behaviour
	 * 		the Behaviour to use, not null
	 * @throws IllegalArgumentException
	 * 		if {@code behaviour} is null
	 */
	public final void setBehaviour(final IntroButton.Behaviour behaviour) {
		button.setBehaviour(behaviour);
	}

	/**
	 * @return the current Behaviour of the accessed IntroButton, not null
	 */
	public final IntroButton.Behaviour getBehaviour() {
		return button.getBehaviour();
	}

	/**
	 * Sets the Appearance of the accessed IntroButton. The Appearance defines how the button is
	 * displayed.
	 * <p>
	 * See {@link com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton.Appearance}.
	 *
	 * @param appearance
	 * 		the predefined Appearance to use, not null
	 * @throws IllegalArgumentException
	 * 		if {@code appearance} is null
	 */
	public final void setAppearance(final IntroButton.Appearance appearance) {
		button.setAppearance(appearance);
	}

	/**
	 * @return the current Appearance of the accessed IntroButton, not null
	 */<commit_msg>Updated IntroButtonAccessor<commit_after>package com.matthewtamlin.sliding_intro_screen_library.buttons;

import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.view.View;


/**
 * Provides indirect access to an IntroButton, to allow limited modification and inspection. Each
 * accessor provides access to a single IntroButton only.
 * <p/>
 * See {@link IntroButton}.
 */
public final class IntroButtonAccessor {
	/**
	 * The IntroButton this accessor provides access to.
	 */
	private final IntroButton button;

	/**
	 * Constructs a new IntroButtonAccessor instance.
	 *
	 * @param button
	 * 		the IntroButton to provide access to, not null
	 * @throws IllegalArgumentException
	 * 		if {@code button} is null
	 */
	public IntroButtonAccessor(final IntroButton button) {
		if (button == null) {
			throw new IllegalArgumentException("button cannot be null");
		}

		this.button = button;
	}

	/**
	 * Sets the Behaviour of the accessed IntroButton. The IntroButton class contains predefined
	 * Behaviours which meet most needs, but custom implementations of the Behaviour interface are
	 * also accepted. The {@link IntroButton.BehaviourAdapter} class can be used to reduce
	 * boilerplate code when implementing the interface. This method does not accept null; to do
	 * nothing when the button is clicked, pass an instance of {@link IntroButton.DoNothing}.
	 * <p/>
	 * See {@link com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton.Behaviour}.
	 *
	 * @param behaviour
	 * 		the Behaviour to use, not null
	 * @throws IllegalArgumentException
	 * 		if {@code behaviour} is null
	 */
	public final void setBehaviour(final IntroButton.Behaviour behaviour) {
		button.setBehaviour(behaviour);
	}

	/**
	 * Returns the current Behaviour of the accessed IntroButton.
	 * <p/>
	 * See {@link com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton.Behaviour}.
	 *
	 * @return the current Behaviour, not null
	 */
	public final IntroButton.Behaviour getBehaviour() {
		return button.getBehaviour();
	}

	/**
	 * Sets the Appearance of the accessed IntroButton. The Appearance defines how the button is
	 * displayed.
	 * <p/>
	 * See {@link com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton.Appearance}.
	 *
	 * @param appearance
	 * 		the predefined Appearance to use, not null
	 * @throws IllegalArgumentException
	 * 		if {@code appearance} is null
	 */
	public final void setAppearance(final IntroButton.Appearance appearance) {
		button.setAppearance(appearance);
	}

	/**
	 * Returns the current Appearance of the accessed IntroButton.
	 * <p/>
	 * See {@link com.matthewtamlin.sliding_intro_screen_library.buttons.IntroButton.Appearance}.
	 *
	 * @return the current Appearance, not null
	 */
{'fraction_non_alphanumeric': 0.08344549125168237, 'fraction_numerical': 0.0, 'mean_word_length': 4.125123152709359, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, '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': '836150', 'n_tokens_mistral': 1581, 'n_tokens_neox': 1421, 'n_words': 498}