return null;
}
}
public String toString() {
StringBuilderOutputSource sb = new StringBuilderOutputSource(getCachedBuffer());
for (int i = 0; i < path.length; i+=2) {
Object key = path[i];
if (key == null) {
sb.append("[null]");
} else if (key instanceof Number) {
sb.append('[');
sb.append(key.toString());
sb.append(']');
} else if (key instanceof Character) {
sb.append(key.toString());
} else {
String str = key.toString();
boolean escape = false;
for (int j = 0; j < str.length(); j++) {
if (j == 0) {
escape = !Character.isJavaIdentifierStart(str.charAt(j));
} else {
escape = !Character.isJavaIdentifierPart(str.charAt(j));
}
if (escape) break;
}
if (escape) {
sb.append('[');
try {
StringFormatter.serialize(this, str, sb);
} catch (Exception e) {
// no handle
}
sb.append(']');
} else {
sb.append('.');
sb.append(str);
}
}
}
return sb.toString();
}