/** * @param visitor * @return true if document could be traversed successfully */ public boolean traverse(MsgPackTokenVisitor visitor) { while (msgPackReader.hasNext()) { final int nextTokenPosition = msgPackReader.getOffset(); final MsgPackToken nextToken; try { nextToken = msgPackReader.readToken(); } catch (Exception e) { errorMessage = e.getMessage(); invalidPosition = nextTokenPosition; return false; } visitor.visitElement(nextTokenPosition, nextToken); } return true; }
/** * @param visitor * @return true if document could be traversed successfully */ public boolean traverse(MsgPackTokenVisitor visitor) { while (msgPackReader.hasNext()) { final int nextTokenPosition = msgPackReader.getOffset(); final MsgPackToken nextToken; try { nextToken = msgPackReader.readToken(); } catch (Exception e) { errorMessage = e.getMessage(); invalidPosition = nextTokenPosition; return false; } visitor.visitElement(nextTokenPosition, nextToken); } return true; }
private MsgPackToken readToken(int index) { queryExecutor.moveToResult(index); reader.wrap(data, queryExecutor.currentResultPosition(), queryExecutor.currentResultLength()); return reader.readToken(); } }
private MsgPackToken readToken(int index) { queryExecutor.moveToResult(index); reader.wrap(data, queryExecutor.currentResultPosition(), queryExecutor.currentResultLength()); return reader.readToken(); } }
public void setVariablesLocalFromDocument(long scopeKey, DirectBuffer document) { reader.wrap(document, 0, document.capacity()); final int variables = reader.readMapHeader(); for (int i = 0; i < variables; i++) { final MsgPackToken variableName = reader.readToken(); final int nameLength = variableName.getValueBuffer().capacity(); final int nameOffset = reader.getOffset() - nameLength; final int valueOffset = reader.getOffset(); reader.skipValue(); final int valueLength = reader.getOffset() - valueOffset; setVariableLocal( scopeKey, document, nameOffset, nameLength, document, valueOffset, valueLength); } }
public void setVariablesLocalFromDocument(long scopeKey, DirectBuffer document) { reader.wrap(document, 0, document.capacity()); final int variables = reader.readMapHeader(); for (int i = 0; i < variables; i++) { final MsgPackToken variableName = reader.readToken(); final int nameLength = variableName.getValueBuffer().capacity(); final int nameOffset = reader.getOffset() - nameLength; final int valueOffset = reader.getOffset(); reader.skipValue(); final int valueLength = reader.getOffset() - valueOffset; setVariableLocal( scopeKey, document, nameOffset, nameLength, document, valueOffset, valueLength); } }
private MsgPackToken getPathResult( final JsonPath path, DirectBuffer json, MsgPackReader msgPackReader) { final int pathId = path.id(); // id > 0 if the path is used more than once in the condition final boolean cachable = pathId > 0; final DirectBuffer resultBuffer = cachable ? cache.get(pathId) : null; if (resultBuffer != null) { if (resultBuffer.capacity() == 0) { return MsgPackToken.NIL; } msgPackReader.wrap(resultBuffer, 0, resultBuffer.capacity()); } else { if (!readQueryResult(path.query(), json)) { if (cachable) { cache.put(pathId, 0, 0); } return MsgPackToken.NIL; } final int offset = visitor.currentResultPosition(); final int length = visitor.currentResultLength(); msgPackReader.wrap(json, offset, length); if (cachable) { cache.put(pathId, offset, length); } } return msgPackReader.readToken(); }
private MsgPackToken getPathResult( final JsonPath path, DirectBuffer json, MsgPackReader msgPackReader) { final int pathId = path.id(); // id > 0 if the path is used more than once in the condition final boolean cachable = pathId > 0; final DirectBuffer resultBuffer = cachable ? cache.get(pathId) : null; if (resultBuffer != null) { if (resultBuffer.capacity() == 0) { return MsgPackToken.NIL; } msgPackReader.wrap(resultBuffer, 0, resultBuffer.capacity()); } else { if (!readQueryResult(path.query(), json)) { if (cachable) { cache.put(pathId, 0, 0); } return MsgPackToken.NIL; } final int offset = visitor.currentResultPosition(); final int length = visitor.currentResultLength(); msgPackReader.wrap(json, offset, length); if (cachable) { cache.put(pathId, offset, length); } } return msgPackReader.readToken(); }