
com.electronwill.nightconfig.json.JsonFormat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of json_android Show documentation
Show all versions of json_android Show documentation
Powerful, easy-to-use and multi-language configuration library for the JVM - json_android module
package com.electronwill.nightconfig.json;
import com.electronwill.nightconfig.core.Config;
import com.electronwill.nightconfig.core.ConfigFormat;
import com.electronwill.nightconfig.core.file.FormatDetector;
import com.electronwill.nightconfig.core.io.ConfigParser;
import com.electronwill.nightconfig.core.io.ConfigWriter;
import com.electronwill.nightconfig.core.utils.WriterSupplier;
import com.electronwill.nightconfig.core.utils.Supplier;
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
/**
* @author TheElectronWill
*/
public abstract class JsonFormat implements ConfigFormat {
private static final JsonFormat FANCY = new JsonFormat() {
@Override
public FancyJsonWriter createWriter() {
return new FancyJsonWriter();
}
@Override
public ConfigParser createParser() {
return new JsonParser(this);
}
};
private static final JsonFormat MINIMAL = new JsonFormat() {
@Override
public MinimalJsonWriter createWriter() {
return new MinimalJsonWriter();
}
@Override
public ConfigParser createParser() {
return new JsonParser(this);
}
};
/**
* @return the unique instance of JsonFormat that creates FancyJsonWriters.
*/
public static JsonFormat fancyInstance() {
return FANCY;
}
/**
* @return the unique instance of JsonFormat that creates MinimalJsonWriters.
*/
public static JsonFormat minimalInstance() {
return MINIMAL;
}
/**
* @return an instance of JsonFormat with a parser that accepts empty inputs and a fancy writer
*/
public static JsonFormat emptyTolerantInstance() {
return new JsonFormat() {
@Override
public FancyJsonWriter createWriter() {
return new FancyJsonWriter();
}
@Override
public ConfigParser createParser() {
return new JsonParser(this).setEmptyDataAccepted(true);
}
};
}
/**
* @return an instance of JsonFormat with a parser that accepts empty inputs and a minimal writer
*/
public static JsonFormat minimalEmptyTolerantInstance() {
return new JsonFormat() {
@Override
public MinimalJsonWriter createWriter() {
return new MinimalJsonWriter();
}
@Override
public ConfigParser createParser() {
return new JsonParser(this).setEmptyDataAccepted(true);
}
};
}
/**
* @return a new config with the format {@link JsonFormat#fancyInstance()}.
*/
public static Config newConfig() {
return FANCY.createConfig();
}
/**
* @return a new config with the given map creator
*/
public static Config newConfig(Supplier
© 2015 - 2025 Weber Informatics LLC | Privacy Policy