public UnorderedListConstructorEvaluatorFactory(IScalarEvaluatorFactory[] args, AUnorderedListType type) { this.args = args; this.unorderedlistType = type; if (type == null || type.getItemType() == null || type.getItemType().getTypeTag() == ATypeTag.ANY) { this.selfDescList = true; } else { this.homoList = true; } }
private static AUnorderedListType generalizeUnorderedListTypes(AUnorderedListType leftType, AUnorderedListType rightType) { return new AUnorderedListType(processItemType(generalizeTypes(leftType.getItemType(), rightType.getItemType())), "generalized-unordered-list"); }
@Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env, IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException { return new AUnorderedListType(((AUnorderedListType) type).getItemType(), type.getTypeName()); }
@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType argType = strippedInputTypes[0]; switch (argType.getTypeTag()) { case ARRAY: return argType; case MULTISET: return new AOrderedListType(((AUnorderedListType) argType).getItemType(), null); default: return new AOrderedListType(argType, null); } } }
public AUnorderedListSerializerDeserializer(AUnorderedListType unorderedlistType) { this.unorderedlistType = unorderedlistType; this.itemType = unorderedlistType.getItemType(); serializer = SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(itemType); deserializer = itemType.getTypeTag() == ATypeTag.ANY ? SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(itemType) : SerializerDeserializerProvider.INSTANCE.getNonTaggedSerializerDeserializer(itemType); }
private void parseUnorderedList(AUnorderedListType uoltype, Object obj, ListObjectInspector oi) throws IOException { UnorderedListBuilder unorderedListBuilder = getUnorderedListBuilder(); IAType itemType = null; if (uoltype != null) itemType = uoltype.getItemType(); byte tagByte = itemType.getTypeTag().serialize(); unorderedListBuilder.reset(uoltype); int n = oi.getListLength(obj); for (int i = 0; i < n; i++) { Object element = oi.getListElement(obj, i); ObjectInspector eoi = oi.getListElementObjectInspector(); if (element == null) { throw new RuntimeDataException(ErrorCode.PARSER_HIVE_NULL_VALUE_IN_LIST); } listItemBuffer.reset(); final DataOutput dataOutput = listItemBuffer.getDataOutput(); dataOutput.writeByte(tagByte); parseItem(itemType, element, eoi, dataOutput, true); unorderedListBuilder.addItem(listItemBuffer); } unorderedListBuilder.write(fieldValueBuffer.getDataOutput(), true); }
itemType = uoltype.getItemType();
private void parseUnorderedList(AUnorderedListType uoltype, Value listVal, DataOutput out) throws IOException, AsterixException { ArrayBackedValueStorage itemBuffer = getTempBuffer(); UnorderedListBuilder unorderedListBuilder = (UnorderedListBuilder) getUnorderedListBuilder(); IAType itemType = null; if (uoltype != null) { itemType = uoltype.getItemType(); } unorderedListBuilder.reset(uoltype); for (ExprTree tree : listVal.getListVal().getExprList()) { itemBuffer.reset(); writeFieldValueToBuffer(itemType, itemBuffer.getDataOutput(), null, tree, null); unorderedListBuilder.addItem(itemBuffer); } unorderedListBuilder.write(out, true); }
case MULTISET: AUnorderedListType ut = (AUnorderedListType) type; IAType unorderedItemType = ut.getItemType(); retValue = new JUnorderedList(unorderedItemType); break;