private int writeBranch(byte type, int pos, int requiredRoom, short criteria) { int neededLen = pos+4; if (neededLen>data.length) { growDataLen(neededLen); } requiredRoom -= SIZE_OF_BRANCH;//subtract the size of the branch operator data[pos++] = type; data[pos++] = criteria; data[pos++] = (short)(0x7FFF&(requiredRoom>>15)); data[pos++] = (short)(0x7FFF&requiredRoom); return pos; }
private int writeBranch(byte type, int pos, int requiredRoom, short criteria) { int neededLen = pos+4; if (neededLen>data.length) { growDataLen(neededLen); } requiredRoom -= SIZE_OF_BRANCH;//subtract the size of the branch operator data[pos++] = type; data[pos++] = criteria; data[pos++] = (short)(0x7FFF&(requiredRoom>>15)); data[pos++] = (short)(0x7FFF&requiredRoom); return pos; }
private int writeBranch(byte type, int pos, int requiredRoom, short criteria) { int neededLen = pos+4; if (neededLen>data.length) { growDataLen(neededLen); } requiredRoom -= SIZE_OF_BRANCH;//subtract the size of the branch operator data[pos++] = type; data[pos++] = criteria; data[pos++] = (short)(0x7FFF&(requiredRoom>>15)); data[pos++] = (short)(0x7FFF&requiredRoom); return pos; }
private int writeRunHeader(int pos, int sourceLength) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } if (sourceLength > 0x7FFF || sourceLength < 1) { throw new UnsupportedOperationException("does not support strings beyond this length "+0x7FFF+" value was "+sourceLength); } data[pos++] = TYPE_RUN; data[pos++] = (short)sourceLength; return pos; }
private int writeBytesExtract(int pos, short stop) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_VALUE_BYTES; data[pos++] = stop; extractions[activeExtractionCount++] = ESCAPE_CMD_BYTES; maxExtractedFields = Math.max(maxExtractedFields, activeExtractionCount); return pos; }
private int writeRunHeader(int pos, int sourceLength) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } if (sourceLength > 0x7FFF || sourceLength < 1) { throw new UnsupportedOperationException("does not support strings beyond this length "+0x7FFF+" value was "+sourceLength); } data[pos++] = TYPE_RUN; data[pos++] = (short)sourceLength; return pos; }
private int writeRunHeader(int pos, int sourceLength) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } if (sourceLength > 0x7FFF || sourceLength < 1) { throw new UnsupportedOperationException("does not support strings beyond this length "+0x7FFF+" value was "+sourceLength); } data[pos++] = TYPE_RUN; data[pos++] = (short)sourceLength; return pos; }
private int writeBytesExtract(int pos, short stop) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_VALUE_BYTES; data[pos++] = stop; extractions[activeExtractionCount++] = ESCAPE_CMD_BYTES; maxExtractedFields = Math.max(maxExtractedFields, activeExtractionCount); return pos; }
private int writeBytesExtract(int pos, short stop) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_VALUE_BYTES; data[pos++] = stop; extractions[activeExtractionCount++] = ESCAPE_CMD_BYTES; maxExtractedFields = Math.max(maxExtractedFields, activeExtractionCount); return pos; }
private void makeRoom(int pos, int requiredRoom) { int neededLen = limit+requiredRoom; if (neededLen > data.length) { growDataLen(neededLen); } updatePreviousJumpDistances(0, data, pos, requiredRoom); System.arraycopy(data, pos, data, pos + requiredRoom, limit - pos); }
private int writeEnd(int pos, long value) { int neededLen = pos+1+SIZE_OF_RESULT; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_END; return writeEndValue(pos, value); }
private int writeNumericExtract(int pos, int type) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_VALUE_NUMERIC; data[pos++] = buildNumberBits((byte)type); extractions[activeExtractionCount++] = (byte)type; maxExtractedFields = Math.max(maxExtractedFields, activeExtractionCount); return pos; }
private int writeNumericExtract(int pos, int type) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_VALUE_NUMERIC; data[pos++] = buildNumberBits((byte)type); extractions[activeExtractionCount++] = (byte)type; maxExtractedFields = Math.max(maxExtractedFields, activeExtractionCount); return pos; }
private int writeEnd(int pos, long value) { int neededLen = pos+1+SIZE_OF_RESULT; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_END; return writeEndValue(pos, value); }
private int writeEnd(int pos, long value) { int neededLen = pos+1+SIZE_OF_RESULT; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_END; return writeEndValue(pos, value); }
private void makeRoom(int pos, int requiredRoom) { int neededLen = limit+requiredRoom; if (neededLen > data.length) { growDataLen(neededLen); } updatePreviousJumpDistances(0, data, pos, requiredRoom); System.arraycopy(data, pos, data, pos + requiredRoom, limit - pos); }
private int writeNumericExtract(int pos, int type) { int neededLen = pos+2; if (neededLen>data.length) { growDataLen(neededLen); } data[pos++] = TYPE_VALUE_NUMERIC; data[pos++] = buildNumberBits((byte)type); extractions[activeExtractionCount++] = (byte)type; maxExtractedFields = Math.max(maxExtractedFields, activeExtractionCount); return pos; }
growDataLen(neededLen);
private int appendAltBranch(int pos, byte[] source, final int sourcePos, final int sourceLength, int sourceMask) { final int requiredRoom = SIZE_OF_ALT_BRANCH; final int toBeMoved = limit - pos; limit+=requiredRoom; int roomToGrow = SIZE_OF_END_1 + sourceLength + midRunEscapeValuesSizeAdjustment(source, sourcePos, sourceLength, sourceMask); if (limit+toBeMoved+roomToGrow > data.length) { growDataLen(limit+toBeMoved+roomToGrow); } if (toBeMoved <= 0) { //nothing to be moved } else { updatePreviousJumpDistances(0, data, pos, requiredRoom); assert(pos>=0); System.arraycopy(data, pos, data, pos + requiredRoom, toBeMoved); } data[pos++] = TYPE_ALT_BRANCH; //this will jump to the end, we are assuming that some later call will add something to that point data[pos++] = (short)(0x7FFF&(toBeMoved>>15)); data[pos++] = (short)(0x7FFF&toBeMoved); int target = limit; limit +=roomToGrow; return target; }
private int appendAltBranch(int pos, byte[] source, final int sourcePos, final int sourceLength, int sourceMask) { final int requiredRoom = SIZE_OF_ALT_BRANCH; final int toBeMoved = limit - pos; limit+=requiredRoom; int roomToGrow = SIZE_OF_END_1 + sourceLength + midRunEscapeValuesSizeAdjustment(source, sourcePos, sourceLength, sourceMask); if (limit+toBeMoved+roomToGrow > data.length) { growDataLen(limit+toBeMoved+roomToGrow); } if (toBeMoved <= 0) { //nothing to be moved } else { updatePreviousJumpDistances(0, data, pos, requiredRoom); assert(pos>=0); System.arraycopy(data, pos, data, pos + requiredRoom, toBeMoved); } data[pos++] = TYPE_ALT_BRANCH; //this will jump to the end, we are assuming that some later call will add something to that point data[pos++] = (short)(0x7FFF&(toBeMoved>>15)); data[pos++] = (short)(0x7FFF&toBeMoved); int target = limit; limit +=roomToGrow; return target; }