2022-05-06 01:51:35 +00:00
|
|
|
package dev.plex.toml;
|
2014-08-12 15:38:23 +00:00
|
|
|
|
2015-02-10 22:59:48 +00:00
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
2014-08-12 14:44:47 +00:00
|
|
|
|
2014-08-13 12:27:23 +00:00
|
|
|
|
2015-08-14 09:12:08 +00:00
|
|
|
class BooleanValueReaderWriter implements ValueReader, ValueWriter {
|
2014-08-12 14:44:47 +00:00
|
|
|
|
2015-08-14 09:12:08 +00:00
|
|
|
static final BooleanValueReaderWriter BOOLEAN_VALUE_READER_WRITER = new BooleanValueReaderWriter();
|
2014-08-12 14:44:47 +00:00
|
|
|
|
|
|
|
@Override
|
2015-08-14 09:12:08 +00:00
|
|
|
public boolean canRead(String s) {
|
2014-08-12 14:44:47 +00:00
|
|
|
return s.startsWith("true") || s.startsWith("false");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2015-08-14 09:12:08 +00:00
|
|
|
public Object read(String s, AtomicInteger index, Context context) {
|
2015-02-10 22:59:48 +00:00
|
|
|
s = s.substring(index.get());
|
2015-01-23 13:27:48 +00:00
|
|
|
Boolean b = s.startsWith("true") ? Boolean.TRUE : Boolean.FALSE;
|
2014-08-13 12:27:23 +00:00
|
|
|
|
2015-01-23 13:27:48 +00:00
|
|
|
int endIndex = b == Boolean.TRUE ? 4 : 5;
|
|
|
|
|
2015-02-10 22:59:48 +00:00
|
|
|
index.addAndGet(endIndex - 1);
|
2014-08-12 14:44:47 +00:00
|
|
|
|
2015-01-23 13:27:48 +00:00
|
|
|
return b;
|
2014-08-12 14:44:47 +00:00
|
|
|
}
|
|
|
|
|
2015-06-27 19:50:15 +00:00
|
|
|
@Override
|
|
|
|
public boolean canWrite(Object value) {
|
|
|
|
return Boolean.class.isInstance(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void write(Object value, WriterContext context) {
|
2015-06-29 16:49:34 +00:00
|
|
|
context.write(value.toString());
|
2015-06-27 19:50:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isPrimitiveType() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2015-08-14 09:12:08 +00:00
|
|
|
private BooleanValueReaderWriter() {}
|
2015-06-28 21:35:39 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return "boolean";
|
|
|
|
}
|
2014-08-12 14:44:47 +00:00
|
|
|
}
|