in bval-jsr/src/main/java/org/apache/bval/util/Escapes.java [81:106]
public int translate(final CharSequence input, final int index, final Writer out) {
final int remaining = input.length() - index - 1;
final StringBuilder builder = new StringBuilder();
if (input.charAt(index) == '\\' && remaining > 0 && isOctalDigit(input.charAt(index + 1))) {
final int next = index + 1;
final int next2 = index + 2;
final int next3 = index + 3;
builder.append(input.charAt(next));
if (remaining > 1 && isOctalDigit(input.charAt(next2))) {
builder.append(input.charAt(next2));
if (remaining > 2 && isZeroToThree(input.charAt(next)) && isOctalDigit(input.charAt(next3))) {
builder.append(input.charAt(next3));
}
}
try {
out.write(Integer.parseInt(builder.toString(), 8));
} catch (IOException e) {
throw new IllegalStateException(e);
}
return 1 + builder.length();
}
return 0;
}