mirror of https://github.com/plexusorg/Plex.git
41 lines
1.7 KiB
Java
41 lines
1.7 KiB
Java
package dev.plex.toml;
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import static dev.plex.toml.ArrayValueReader.ARRAY_VALUE_READER;
|
|
import static dev.plex.toml.BooleanValueReaderWriter.BOOLEAN_VALUE_READER_WRITER;
|
|
import static dev.plex.toml.DateValueReaderWriter.DATE_VALUE_READER_WRITER;
|
|
import static dev.plex.toml.LiteralStringValueReader.LITERAL_STRING_VALUE_READER;
|
|
import static dev.plex.toml.MultilineLiteralStringValueReader.MULTILINE_LITERAL_STRING_VALUE_READER;
|
|
import static dev.plex.toml.MultilineStringValueReader.MULTILINE_STRING_VALUE_READER;
|
|
import static dev.plex.toml.StringValueReaderWriter.STRING_VALUE_READER_WRITER;
|
|
|
|
class ValueReaders
|
|
{
|
|
|
|
static final ValueReaders VALUE_READERS = new ValueReaders();
|
|
|
|
Object convert(String value, AtomicInteger index, dev.plex.toml.Context context)
|
|
{
|
|
String substring = value.substring(index.get());
|
|
for (dev.plex.toml.ValueReader valueParser : READERS)
|
|
{
|
|
if (valueParser.canRead(substring))
|
|
{
|
|
return valueParser.read(value, index, context);
|
|
}
|
|
}
|
|
|
|
dev.plex.toml.Results.Errors errors = new dev.plex.toml.Results.Errors();
|
|
errors.invalidValue(context.identifier.getName(), substring, context.line.get());
|
|
return errors;
|
|
}
|
|
|
|
private ValueReaders()
|
|
{
|
|
}
|
|
|
|
private static final dev.plex.toml.ValueReader[] READERS = {
|
|
MULTILINE_STRING_VALUE_READER, MULTILINE_LITERAL_STRING_VALUE_READER, LITERAL_STRING_VALUE_READER, STRING_VALUE_READER_WRITER, DATE_VALUE_READER_WRITER, NumberValueReaderWriter.NUMBER_VALUE_READER_WRITER, BOOLEAN_VALUE_READER_WRITER, ARRAY_VALUE_READER, InlineTableValueReader.INLINE_TABLE_VALUE_READER
|
|
};
|
|
}
|