@Override public boolean isValueCompatible(FieldValue value) { if (value == null) return false; if ( ! TensorFieldValue.class.isAssignableFrom(value.getClass())) return false; TensorFieldValue tensorValue = (TensorFieldValue)value; return tensorType.isConvertibleTo(tensorValue.getDataType().getTensorType()); }
public TensorModifyUpdate(Operation operation, TensorFieldValue tensor) { super(ValueUpdateClassID.TENSORMODIFY); this.operation = operation; this.tensor = tensor; verifyCompatibleType(tensor.getDataType().getTensorType()); }
@Override public void read(FieldBase field, TensorFieldValue value) { int encodedTensorLength = buf.getInt1_4Bytes(); if (encodedTensorLength > 0) { byte[] encodedTensor = getBytes(null, encodedTensorLength); value.assign(TypedBinaryFormat.decode(Optional.of(value.getDataType().getTensorType()), GrowableByteBuffer.wrap(encodedTensor))); } else { value.clear(); } }
@Override public void read(FieldBase field, TensorFieldValue value) { int encodedTensorLength = buf.getInt1_4Bytes(); if (encodedTensorLength > 0) { byte[] encodedTensor = getBytes(null, encodedTensorLength); value.assign(TypedBinaryFormat.decode(Optional.of(value.getDataType().getTensorType()), GrowableByteBuffer.wrap(encodedTensor))); } else { value.clear(); } }
public static void fillTensor(TokenBuffer buffer, TensorFieldValue tensorFieldValue) { Tensor.Builder tensorBuilder = Tensor.Builder.of(tensorFieldValue.getDataType().getTensorType()); expectObjectStart(buffer.currentToken()); int initNesting = buffer.nesting(); // read tensor cell fields and ignore everything else for (buffer.next(); buffer.nesting() >= initNesting; buffer.next()) { if (TensorReader.TENSOR_CELLS.equals(buffer.currentName())) readTensorCells(buffer, tensorBuilder); } expectObjectEnd(buffer.currentToken()); tensorFieldValue.assign(tensorBuilder.build()); }