private void put(int index, IValueReference value) throws HyracksDataException { int offset = getTupleStart(index); int length = buf.getInt(offset); offset += Integer.BYTES + length; length = buf.getInt(offset); if (length != value.getLength()) { throw new HyracksDataException("This frame doesn't support overwriting dynamically sized values"); } offset += Integer.BYTES; System.arraycopy(value.getByteArray(), value.getStartOffset(), buf.array(), offset, value.getLength()); }
public void setValue(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } }
public void setValue(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } }
public void setContent(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); } }
public void setValue(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); }
public void setTarget(IValueReference value) throws IOException { out.write(value.getByteArray(), value.getStartOffset(), value.getLength()); }
@Override public int getOffset(IValueReference key) { int index = find(key); if (index >= 0) { int offset = getTupleStart(index); return offset + key.getLength() + 2 * Integer.BYTES; } return -1; }
private boolean isInner(IValueReference key, int tupleOffset) { int keySize = buf.getInt(tupleOffset); if (keySize == key.getLength()) { return LIFOMetaDataFrame.compare(key.getByteArray(), key.getStartOffset(), buf.array(), tupleOffset + Integer.BYTES, keySize) == 0; } return false; }
public static <T extends IValueReference> T findItem(IValueReference item, List<T> sameHashes, IBinaryComparator comp) throws HyracksDataException { T sameItem; for (int k = 0; k < sameHashes.size(); k++) { sameItem = sameHashes.get(k); if (comp.compare(item.getByteArray(), item.getStartOffset(), item.getLength(), sameItem.getByteArray(), sameItem.getStartOffset(), sameItem.getLength()) == 0) { return sameItem; } } return null; } }
public static int compareStringBinValues(IValueReference a, IValueReference b, IBinaryComparator comparator) throws HyracksDataException { // start+1 and len-1 due to type tag ignore (only interested in String value) return comparator.compare(a.getByteArray(), a.getStartOffset() + 1, a.getLength() - 1, b.getByteArray(), b.getStartOffset() + 1, b.getLength() - 1); }
/** * Adds a new field and fills it with the content of the passed value */ public void addField(IValueReference data) throws HyracksDataException { addField(data.getByteArray(), data.getStartOffset(), data.getLength()); } }
@Override public void set(IValueReference pointer) { set(pointer.getByteArray(), pointer.getStartOffset(), pointer.getLength()); } }
@Override public void set(IValueReference ivf) { set(ivf.getByteArray(), ivf.getStartOffset(), ivf.getLength()); }
@Override public void set(IValueReference pointer) { set(pointer.getByteArray(), pointer.getStartOffset(), pointer.getLength()); }
public void addItem(IValueReference p) throws IOException { dataArea.getDataOutput().write(p.getByteArray(), p.getStartOffset(), p.getLength()); slots.append(dataArea.getLength()); }
public void addChild(IValueReference value) throws IOException { childrenDataArea.getDataOutput().write(value.getByteArray(), value.getStartOffset(), value.getLength()); childrenSlots.append(childrenDataArea.getLength()); }
@Override public void get(IValueReference key, IPointable value) { int tupleCount = getTupleCount(); int tupleStart = getTupleStart(0); for (int i = 0; i < tupleCount; i++) { if (isInner(key, tupleStart)) { get(tupleStart + key.getLength() + Integer.BYTES, value); return; } tupleStart = getNextTupleStart(tupleStart); } value.set(null, 0, 0); }
@Override public void addField(int fid, IValueReference value) { closedPartOffsets[fid] = closedPartOutputStream.size(); int len = value.getLength() - 1; // +1 because we do not store the value tag. closedPartOutputStream.write(value.getByteArray(), value.getStartOffset() + 1, len); numberOfClosedFields++; addNullOrMissingField(fid, value.getByteArray(), value.getStartOffset()); }