public int getItemLength(int itemOffset) throws HyracksDataException { ATypeTag itemType = getItemType(itemOffset); return NonTaggedFormatUtil.getFieldValueLength(listBytes, itemOffset, itemType, itemsAreSelfDescribing()); }
public int getFixedLength(AbstractCollectionType inputType) throws HyracksDataException { return NonTaggedFormatUtil.getFieldValueLength(bytes, 0, inputType.getItemType().getTypeTag(), false); }
@Override public void next() { int itemOffset = -1; int length = -1; try { itemOffset = getItemOffset(data, start, itemIndex); // Assuming homogeneous list. ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(data[start + 1]); // ? Can we handle the non-string type ? length = NonTaggedFormatUtil.getFieldValueLength(data, itemOffset, typeTag, false); // Last param is a hack to pass the type tag. token.reset(data, itemOffset, itemOffset + length, length, data[start + 1]); } catch (HyracksDataException e) { throw new IllegalStateException(e); } itemIndex++; }
public int getOpenFieldValueSize(ARecordType recordType, int fieldId) throws HyracksDataException { int offset = getOpenFieldValueOffset(recordType, fieldId); ATypeTag tag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(getOpenFieldTag(recordType, fieldId)); return NonTaggedFormatUtil.getFieldValueLength(bytes, offset, tag, true); }
public int getClosedFieldSize(ARecordType recordType, int fieldId) throws HyracksDataException { if (isClosedFieldNull(recordType, fieldId)) { return 0; } return NonTaggedFormatUtil.getFieldValueLength(bytes, getClosedFieldOffset(recordType, fieldId), getClosedFieldType(recordType, fieldId).getTypeTag(), false); }
public static int getItemOffset(byte[] serOrderedList, int offset, int itemIndex) throws HyracksDataException { if (serOrderedList[offset] == ATypeTag.ARRAY.serialize()) { ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serOrderedList[offset + 1]); if (NonTaggedFormatUtil.isFixedSizedCollection(typeTag)) { int length = NonTaggedFormatUtil.getFieldValueLength(serOrderedList, offset + 1, typeTag, true); return offset + 10 + (length * itemIndex); } else { return offset + AInt32SerializerDeserializer.getInt(serOrderedList, offset + 10 + (4 * itemIndex)); } // 10 = tag (1) + itemTag (1) + list size (4) + number of items (4) } else { return -1; } }
public static int getItemOffset(byte[] serOrderedList, int offset, int itemIndex) throws HyracksDataException { if (serOrderedList[offset] == ATypeTag.MULTISET.serialize()) { ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serOrderedList[offset + 1]); if (NonTaggedFormatUtil.isFixedSizedCollection(typeTag)) { int length = NonTaggedFormatUtil.getFieldValueLength(serOrderedList, offset + 1, typeTag, true); return offset + 10 + (length * itemIndex); } else { return offset + AInt32SerializerDeserializer.getInt(serOrderedList, offset + 10 + (4 * itemIndex)); } // 10 = tag (1) + itemTag (1) + list size (4) + number of items (4) } else { return -1; } } }
itemTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serList[itemOffset]); itemLength = NonTaggedFormatUtil.getFieldValueLength(serList, itemOffset, itemTag, true) + 1; result.set(serList, itemOffset, itemLength); } else { itemLength = NonTaggedFormatUtil.getFieldValueLength(serList, itemOffset, itemTag, false); out.writeByte(serItemTypeTag); out.write(serList, itemOffset, itemLength);
fieldType = ((AUnionType) fieldTypes[fieldNumber]).getActualType(); typeTag = fieldType.getTypeTag(); fieldValueLength = NonTaggedFormatUtil.getFieldValueLength(b, fieldOffsets[fieldNumber], typeTag, false); typeTag = fieldTypes[fieldNumber].getTypeTag(); fieldValueLength = NonTaggedFormatUtil.getFieldValueLength(b, fieldOffsets[fieldNumber], typeTag, false); NonTaggedFormatUtil.getFieldValueLength(b, fieldOffset, ATypeTag.STRING, false); int fnstart = dataBos.size(); dataDos.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG); fieldValueLength = NonTaggedFormatUtil.getFieldValueLength(b, fieldOffset, typeTag, true) + 1;
if (typedItemList) { for (int i = 0; i < numberOfitems; i++) { itemLength = NonTaggedFormatUtil.getFieldValueLength(b, itemOffset, itemTag, false); IVisitablePointable tag = allocator.allocateEmpty(); IVisitablePointable item = allocator.allocateFieldValue(itemType); for (int i = 0; i < numberOfitems; i++) { itemTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(b[itemOffset]); itemLength = NonTaggedFormatUtil.getFieldValueLength(b, itemOffset, itemTag, true) + 1; IVisitablePointable tag = allocator.allocateEmpty(); IVisitablePointable item = allocator.allocateFieldValue(itemTag, b, itemOffset + 1);
if (((AUnionType) fieldValueType).isUnknownableType()) { fieldValueTypeTag = ((AUnionType) fieldValueType).getActualType().getTypeTag(); fieldValueLength = NonTaggedFormatUtil.getFieldValueLength(serRecord, fieldValueOffset, fieldValueTypeTag, false); out.writeByte(fieldValueTypeTag.serialize()); fieldValueLength = NonTaggedFormatUtil.getFieldValueLength(serRecord, fieldValueOffset, fieldValueTypeTag, false); out.writeByte(fieldValueTypeTag.serialize());
NonTaggedFormatUtil.getFieldValueLength(serRecord, subFieldOffset, fieldTypeTag, false); EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serRecord[subFieldOffset]); subFieldLength = NonTaggedFormatUtil.getFieldValueLength(serRecord, subFieldOffset, fieldValueTypeTag, true) + 1;
itemTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serList[itemOffset]); int itemLength = NonTaggedFormatUtil.getFieldValueLength(serList, itemOffset, itemTag, true) + 1; result.set(serList, itemOffset, itemLength); } else { int itemLength = NonTaggedFormatUtil.getFieldValueLength(serList, itemOffset, itemTag, false); resultStorage.reset(); output.writeByte(serItemTypeTag);
fieldValueLength = NonTaggedFormatUtil.getFieldValueLength(serRecord, fieldValueOffset, fieldValueTypeTag, true) + 1; result.set(serRecord, fieldValueOffset, fieldValueLength);
subFieldLength = NonTaggedFormatUtil.getFieldValueLength(serRecord, subFieldOffset, subTypeTag, false); } else { subTypeTag = subType.getTypeTag(); subFieldLength = NonTaggedFormatUtil.getFieldValueLength(serRecord, subFieldOffset, subTypeTag, false); NonTaggedFormatUtil.getFieldValueLength(serRecord, subFieldOffset, subTypeTag, true) + 1;
throw HyracksDataException.create(ErrorCode.FIELD_SHOULD_BE_TYPED); return getFieldValueLength(serNonTaggedAObject, offset, tag, true) + 1; case MISSING: case NULL: