@Override public byte[] writeField(final String fieldValue) { if (fieldValue == null) { return new byte[] {}; } return StringUtils.stringToBinary(fieldValue); // for field serialization ensure UTF-8? // return fieldValue.getBytes(StringUtils.UTF8_CHAR_SET); } }
public String getString() { if (string == null) { string = StringUtils.stringFromBinary(bytes); } return string; }
/** * Utility to convert a String to bytes * * @param string incoming String to convert * @return a byte array */ public static byte[] stringToBinary(final String string) { return string.getBytes(getGeoWaveCharset()); }
private RowMutations rowToMutation(final GeoWaveRow row) { final RowMutations mutation = new RowMutations(row.getDataId()); for (final GeoWaveValue value : row.getFieldValues()) { final Put put = new Put(row.getDataId()); // visibility is in the visibility column so no need to serialize it with the value put.addColumn( StringUtils.stringToBinary(ByteArrayUtils.shortToString(row.getAdapterId())), new byte[0], DataIndexUtils.serializeDataIndexValue(value, false)); if ((value.getVisibility() != null) && (value.getVisibility().length > 0)) { put.setCellVisibility( new CellVisibility(StringUtils.stringFromBinary(value.getVisibility()))); } try { mutation.add(put); } catch (final IOException e) { LOGGER.error("Error creating HBase row mutation: " + e.getMessage()); } } return mutation; } }
@Override public byte[] toBinary() { return StringUtils.stringsToBinary(indexNames.toArray(new String[0])); }
@Override public void fromBinary(final byte[] bytes) { indexNames = Arrays.asList(StringUtils.stringsFromBinary(bytes)); } }
@Override public String getId() { return StringUtils.intToString(hashCode()); }
@Override public byte[] toBinary() { final byte[] indexIdBytes = StringUtils.stringsToBinary(indexNames); final ByteBuffer buf = ByteBuffer.allocate(VarintUtils.unsignedShortByteLength(adapterId) + indexIdBytes.length); VarintUtils.writeUnsignedShort(adapterId, buf); buf.put(indexIdBytes); return buf.array(); }
@Override public void fromBinary(final byte[] bytes) { final ByteBuffer buf = ByteBuffer.wrap(bytes); adapterId = VarintUtils.readUnsignedShort(buf); final byte[] indexNamesBytes = new byte[buf.remaining()]; buf.get(indexNamesBytes); indexNames = StringUtils.stringsFromBinary(indexNamesBytes); } }
@Override public String getId() { return StringUtils.intToString(hashCode()); }
public static byte[] getDataId( final String mission, final String trackId, final long timeMillis) { return StringUtils.stringToBinary(mission + "/" + trackId + "/" + timeMillis); }
@Override public String readField(final byte[] fieldData) { if ((fieldData == null) || (fieldData.length < 1)) { return null; } return StringUtils.stringFromBinary(fieldData); // for field serialization ensure UTF-8? // return new String( // fieldData, // StringUtils.UTF8_CHAR_SET); } }
/** * Utility to convert bytes to a String * * @param binary a byte array to convert to a String * @return a String representation of the byte array */ public static String stringFromBinary(final byte[] binary) { return new String(binary, getGeoWaveCharset()); }
@Override public byte[] toBinary() { byte[] typeNamesBinary, fieldNamesBinary; if ((typeNames != null) && (typeNames.length > 0)) { typeNamesBinary = StringUtils.stringsToBinary(typeNames); } else { typeNamesBinary = new byte[0]; } if ((fieldNames != null) && (fieldNames.length > 0)) { fieldNamesBinary = StringUtils.stringsToBinary(fieldNames); } else { fieldNamesBinary = new byte[0]; } final ByteBuffer buf = ByteBuffer.allocate( VarintUtils.unsignedIntByteLength(typeNamesBinary.length) + fieldNamesBinary.length + typeNamesBinary.length); VarintUtils.writeUnsignedInt(typeNamesBinary.length, buf); buf.put(typeNamesBinary); buf.put(fieldNamesBinary); return buf.array(); }
@Override public void fromBinary(final byte[] bytes) { final ByteBuffer buf = ByteBuffer.wrap(bytes); final byte[] typeNamesBytes = new byte[VarintUtils.readUnsignedInt(buf)]; if (typeNamesBytes.length <= 0) { typeNames = new String[0]; } else { buf.get(typeNamesBytes); typeNames = StringUtils.stringsFromBinary(typeNamesBytes); } final byte[] fieldNamesBytes = new byte[buf.remaining()]; if (fieldNamesBytes.length == 0) { fieldNames = null; } else { buf.get(fieldNamesBytes); fieldNames = StringUtils.stringsFromBinary(fieldNamesBytes); } }
@Override public String getId() { if (id == null) { id = StringUtils.intToString(hashCode()); } return id; } }
@Override public byte[] getVisibility( final RowType rowValue, final String fieldName, final FieldType fieldValue) { return StringUtils.stringToBinary(globalVisibility); } }
@Override public void fromBinary(final byte[] bytes) { if (bytes.length == 0) { indexName = null; } else { indexName = StringUtils.stringFromBinary(bytes); } }
/** * Convert binary data to a string for transport * * @param byteArray the binary data * @return the base64url encoded string */ public static String byteArrayToString(final byte[] byteArray) { return new String(ENCODER.encode(byteArray), StringUtils.getGeoWaveCharset()); }
@Override public byte[] toBinary() { byte[] typeNamesBinary, aggregationBinary; if ((typeNames != null) && (typeNames.length > 0)) { typeNamesBinary = StringUtils.stringsToBinary(typeNames); } else { typeNamesBinary = new byte[0]; } if (aggregation != null) { aggregationBinary = PersistenceUtils.toBinary(aggregation); } else { aggregationBinary = new byte[0]; } final ByteBuffer buf = ByteBuffer.allocate( VarintUtils.unsignedIntByteLength(typeNamesBinary.length) + aggregationBinary.length + typeNamesBinary.length); VarintUtils.writeUnsignedInt(typeNamesBinary.length, buf); buf.put(typeNamesBinary); buf.put(aggregationBinary); return buf.array(); }