@Override public IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType inputType = strippedInputTypes[0]; return inputType.getTypeTag() == ATypeTag.DOUBLE ? inputType : BuiltinType.ANY; } }
public static IAType createMissableType(IAType t) { if (t != null && t.getTypeTag() == ATypeTag.MISSING) { return t; } String s = t != null ? t.getTypeName() : null; return createMissableType(t, s == null ? null : s + "?"); }
private boolean checkInvalidReturnValueType(IJObject result, IAType expectedType) { if (!expectedType.deepEqual(result.getIAType())) { return true; } return false; }
@Override public boolean containsType(IAType type) { for (IAType aType : fieldTypes) { if (aType.getTypeName().equals(type.getTypeName())) { return true; } } return false; } }
@Override public int hash() { int h = 0; for (IAType t : unionList) { h += 31 * h + t.hash(); } return h; }
@Override public boolean containsType(IAType type) { return isTyped() && itemType.getTypeName().equals(type.getTypeName()); } }
@Override protected IAType getResultType(ILogicalExpression expr, IAType... strippedInputTypes) throws AlgebricksException { IAType strippedInputType = strippedInputTypes[0]; return strippedInputType.getTypeTag() == ATypeTag.OBJECT ? strippedInputType : RecordUtil.FULLY_OPEN_RECORD_TYPE; } }
public static IAType createNullableType(IAType t) { if (t != null && t.getTypeTag() == ATypeTag.NULL) { return t; } String s = t != null ? t.getTypeName() : null; return createNullableType(t, s == null ? null : s + "?"); }
@Override public AOrderedListType create(IAType type) { return new AOrderedListType(type, type.getTypeName() + "OrderedList"); } });
@Override public boolean deepEqual(IAObject obj) { if (!(obj instanceof AUnionType)) { return false; } AUnionType ut = (AUnionType) obj; if (ut.getUnionList().size() != unionList.size()) { return false; } for (int i = 0; i < unionList.size(); i++) { if (!unionList.get(i).deepEqual(ut.getUnionList().get(i))) { return false; } } return true; }
@Override public void init() { arg.second = inputType.getTypeTag(); }
@Override public void generateNestedDerivedTypeNames() { if (itemType.getTypeTag().isDerivedType() && itemType.getTypeName() == null) { AbstractComplexType nestedType = ((AbstractComplexType) itemType); nestedType.setTypeName(getTypeName() + "_Item"); nestedType.generateNestedDerivedTypeNames(); } }
@Override public AOrderedListType create(IAType type) { return new AOrderedListType(type, type.getTypeName() + "UnorderedList"); } });
private static IAType processItemType(IAType type) { ATypeTag tag = type.getTypeTag(); return tag == ATypeTag.UNION ? BuiltinType.ANY : type; }
@Override public void generateNestedDerivedTypeNames() { for (int i = 0; i < fieldTypes.length; i++) { IAType fieldType = fieldTypes[i]; if (fieldType.getTypeTag().isDerivedType() && (fieldType.getTypeName() == null)) { AbstractComplexType nestedType = (AbstractComplexType) fieldType; nestedType.setTypeName(getTypeName() + "_" + fieldNames[i]); nestedType.generateNestedDerivedTypeNames(); } } }
public static IAType createUnknownableType(IAType t) { String s = t != null ? t.getTypeName() : null; return createUnknownableType(t, s == null ? null : s + "?"); }
@Override public void init() { arg.second = inputType.getTypeTag(); }
private void writeCollectionType(Datatype instance, AbstractComplexType type, DataOutput out) throws HyracksDataException { AbstractCollectionType listType = (AbstractCollectionType) type; IAType itemType = listType.getItemType(); if (itemType.getTypeTag().isDerivedType()) { handleNestedDerivedType(itemType.getTypeName(), (AbstractComplexType) itemType, instance, instance.getDataverseName(), instance.getDatatypeName()); } aString.setValue(listType.getItemType().getTypeName()); stringSerde.serialize(aString, out); }
@Override public IAType computeType(ILogicalExpression expression, IVariableTypeEnvironment env, IMetadataProvider<?, ?> metadataProvider) throws AlgebricksException { return new AUnorderedListType(((AUnorderedListType) type).getItemType(), type.getTypeName()); }
@Override public void init() { arg.second = inputType.getTypeTag(); }