@Override public void toComposite( final CompositeBuilder builder, final String string ) { builder.addString( string ); }
@Override public void toComposite( final CompositeBuilder builder, final EdgeIdTypeKey value ) { ID_SER.toComposite( builder, value.node ); builder.addString( value.edgeType ); }
@Override public void toComposite( final CompositeBuilder builder, final EdgeIdTypeKey value ) { ID_SER.toComposite( builder, value.node ); builder.addString( value.edgeType ); }
@Override public void toComposite( final CompositeBuilder builder, final RowKey key ) { //add the row id to the composite ID_SER.toComposite( builder, key.nodeId ); builder.addString( key.edgeType ); builder.addLong( key.shardId ); }
@Override public void toComposite( final CompositeBuilder builder, final Field field ) { final FieldTypeName fieldType = field.getTypeName(); /** * Validation we only support a subset */ switch ( fieldType ) { case BOOLEAN: case DOUBLE: case FLOAT: case INTEGER: case LONG: case STRING: case UUID: break; default: throw new RuntimeException( String.format( "Field %s has type %s: not a supported type for unique values", field.getName(), fieldType ) ); } builder.addString( fieldType.name() ); builder.addString( field.getName() ); //write all values as lowercase for normalization builder.addString( field.getValue().toString().toLowerCase() ); }
@Override public void toComposite( final CompositeBuilder builder, final Id id ) { // NOTE that this order is important. Our default behavior is to order by // Time UUID and NOT by type, so we want our UUID written BEFORE the string type builder.addUUID( id.getUuid() ); builder.addString( id.getType() ); }
@Override public void toComposite( final CompositeBuilder builder, final EdgeRowKey key ) { //add the row id to the composite ID_SER.toComposite( builder, key.sourceId ); builder.addString( key.edgeType ); ID_SER.toComposite( builder, key.targetId ); builder.addLong( key.shardId ); }
@Override public void toComposite(CompositeBuilder builder, TypeField value) { builder.addString(value.getType()); innerSerializer.toComposite(builder,value.getField()); }
@Override public ByteBuffer toByteBuffer(final EntityVersion ev) { final UUID entityVersion = ev.getEntityVersion(); final Id entityId = ev.getEntityId(); final UUID entityUuid = entityId.getUuid(); final String entityType = entityId.getType(); CompositeBuilder builder = Composites.newDynamicCompositeBuilder(); builder.addUUID( entityVersion ); builder.addUUID( entityUuid ); builder.addString(entityType ); return builder.build(); }
@Override public ByteBuffer toByteBuffer( final ScopedRowKey<CollectionPrefixedKey<K>> scopedRowKey ) { final CompositeBuilder builder = Composites.newCompositeBuilder(); //add the organization's id ID_SER.toComposite( builder, scopedRowKey.getScope() ); final CollectionPrefixedKey<K> key = scopedRowKey.getKey(); //add the scope's owner id to the composite ID_SER.toComposite( builder, key.getOwner() ); //add the scope's name builder.addString( key.getCollectionName() ); //add the key type keySerializer.toComposite( builder, key.getSubKey() ); //addOtherComponents( builder, scopedRowKey ); return builder.build(); }
@Override public void toComposite( final CompositeBuilder builder, final DirectedEdgeMeta meta ) { final DirectedEdgeMeta.NodeMeta[] nodeMeta = meta.getNodes(); //add the stored value builder.addInteger( meta.getType().getStorageValue() ); final int length = nodeMeta.length; builder.addInteger( length ); for ( DirectedEdgeMeta.NodeMeta node : nodeMeta ) { ID_SER.toComposite( builder, node.getId() ); builder.addInteger( node.getNodeType().getStorageValue() ); } final String[] edgeTypes = meta.getTypes(); builder.addInteger( edgeTypes.length ); for ( String type : edgeTypes ) { builder.addString( type ); } }