@Override public ArrayDataType getDataType() { return (ArrayDataType) super.getDataType(); }
@Override public WeightedSetDataType getDataType() { return (WeightedSetDataType) super.getDataType(); }
@Override public boolean isValueCompatible(FieldValue value) { if (!(value instanceof CollectionFieldValue)) { return false; } CollectionFieldValue cfv = (CollectionFieldValue) value; if (equals(cfv.getDataType())) { //the field value if of this type: return true; } return false; }
public void verifyElementCompatibility(T o) { if (!getDataType().getNestedType().isValueCompatible(o)) { throw new IllegalArgumentException( "Incompatible data types. Got " + o.getDataType() + ", expected " + getDataType().getNestedType()); } }
/** * Utility function to wrap primitives. * * @see Array.ListWrapper */ protected FieldValue createFieldValue(Object o) { if (o instanceof FieldValue) { if (!getDataType().getNestedType().isValueCompatible((FieldValue) o)) { throw new IllegalArgumentException( "Incompatible data types. Got " + ((FieldValue)o).getDataType() + ", expected " + getDataType().getNestedType()); } return (FieldValue) o; } else { FieldValue fval = getDataType().getNestedType().createFieldValue(); fval.assign(o); return fval; } }
@SuppressWarnings({ "cast", "rawtypes" }) public static void populateComposite(TokenBuffer buffer, FieldValue fieldValue) { JsonToken token = buffer.currentToken(); if ((token != JsonToken.START_OBJECT) && (token != JsonToken.START_ARRAY)) { throw new IllegalArgumentException("Expected '[' or '{'. Got '" + token + "'."); } if (fieldValue instanceof CollectionFieldValue) { DataType valueType = ((CollectionFieldValue) fieldValue).getDataType().getNestedType(); if (fieldValue instanceof WeightedSet) { fillWeightedSet(buffer, valueType, (WeightedSet) fieldValue); } else { fillArray(buffer, (CollectionFieldValue) fieldValue, valueType); } } else if (fieldValue instanceof MapFieldValue) { MapReader.fillMap(buffer, (MapFieldValue) fieldValue); } else if (fieldValue instanceof StructuredFieldValue) { StructReader.fillStruct(buffer, (StructuredFieldValue) fieldValue); } else if (fieldValue instanceof TensorFieldValue) { TensorReader.fillTensor(buffer, (TensorFieldValue) fieldValue); } else { throw new IllegalStateException("Has created a composite field" + " value the reader does not know how to handle: " + fieldValue.getClass().getName() + " This is a bug. token = " + token); } expectCompositeEnd(buffer.currentToken()); } }
if (container instanceof CollectionFieldValue) { buffer.next(); DataType valueType = ((CollectionFieldValue) container).getDataType().getNestedType(); if (container instanceof WeightedSet) {