Plex/proxy/src/main/java/com/moandjiezana/toml/LiteralStringValueReader.java

48 lines
1.2 KiB
Java

package com.moandjiezana.toml;
import java.util.concurrent.atomic.AtomicInteger;
public class LiteralStringValueReader implements ValueReader
{
public static final LiteralStringValueReader LITERAL_STRING_VALUE_READER = new LiteralStringValueReader();
@Override
public boolean canRead(String s)
{
return s.startsWith("'");
}
@Override
public Object read(String s, AtomicInteger index, Context context)
{
int startLine = context.line.get();
boolean terminated = false;
int startIndex = index.incrementAndGet();
for (int i = index.get(); i < s.length(); i = index.incrementAndGet())
{
char c = s.charAt(i);
if (c == '\'')
{
terminated = true;
break;
}
}
if (!terminated)
{
Results.Errors errors = new Results.Errors();
errors.unterminated(context.identifier.getName(), s.substring(startIndex), startLine);
return errors;
}
String substring = s.substring(startIndex, index.get());
return substring;
}
private LiteralStringValueReader()
{
}
}