Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / configuration / file / YamlConfigurationOptions.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.configuration.file;

import org.apache.commons.lang.Validate;

/**
 * Various settings for controlling the input and output of a {@link
 * YamlConfiguration}
 */
public class YamlConfigurationOptions extends FileConfigurationOptions
{
	private int indent = 2;

	protected YamlConfigurationOptions(YamlConfiguration configuration)
	{
		super(configuration);
	}

	@Override
	public YamlConfiguration configuration()
	{
		return (YamlConfiguration) super.configuration();
	}

	@Override
	public YamlConfigurationOptions copyDefaults(boolean value)
	{
		super.copyDefaults(value);
		return this;
	}

	@Override
	public YamlConfigurationOptions pathSeparator(char value)
	{
		super.pathSeparator(value);
		return this;
	}

	@Override
	public YamlConfigurationOptions header(String value)
	{
		super.header(value);
		return this;
	}

	@Override
	public YamlConfigurationOptions copyHeader(boolean value)
	{
		super.copyHeader(value);
		return this;
	}

	/**
	 * Gets how much spaces should be used to indent each line.
	 * <p>
	 * The minimum value this may be is 2, and the maximum is 9.
	 *
	 * @return How much to indent by
	 */
	public int indent()
	{
		return indent;
	}

	/**
	 * Sets how much spaces should be used to indent each line.
	 * <p>
	 * The minimum value this may be is 2, and the maximum is 9.
	 *
	 * @param value New indent
	 * @return This object, for chaining
	 */
	public YamlConfigurationOptions indent(int value)
	{
		Validate.isTrue(value >= 2, "Indent must be at least 2 characters");
		Validate.isTrue(value <= 9, "Indent cannot be greater than 9 characters");

		this.indent = value;
		return this;
	}
}