/*
* This file is part of Foxbot.
*
* Foxbot is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Foxbot is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Foxbot. If not, see <http://www.gnu.org/licenses/>.
*/
package co.foxdev.foxbot.config.yamlconfig.file;
import com.google.common.base.Preconditions;
/**
* Various settings for controlling the input and output of a
* {@link YamlConfiguration}
*/
public class YamlConfigurationOptions extends FileConfigurationOptions
{
private int indent = 4;
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)
{
Preconditions.checkArgument(value >= 2, "Indent must be at least 2 characters");
Preconditions.checkArgument(value <= 9, "Indent cannot be greater than 9 characters");
this.indent = value;
return this;
}
}