private Field getField( String name, String value, FieldTypeName fieldType){ Field field = null; switch ( fieldType ) { case BOOLEAN: field = new BooleanField( name, Boolean.parseBoolean( value ) ); break; case DOUBLE: field = new DoubleField( name, Double.parseDouble( value ) ); break; case FLOAT: field = new FloatField( name, Float.parseFloat( value ) ); break; case INTEGER: field = new IntegerField( name, Integer.parseInt( value ) ); break; case LONG: field = new LongField( name, Long.parseLong( value ) ); break; case STRING: field = new StringField( name, value ); break; case UUID: field = new UUIDField( name, UUID.fromString( value ) ); break; } return field; }
LongField longField = new LongField( "int", 1l ); StringField stringField = new StringField( "name", "test" ); UUIDField uuidField = new UUIDField( "uuid", UUIDGenerator.newTimeUUID() ); NullField nullField = new NullField("null"); Field<UUID> uuidFieldReturned = entity.getField( uuidField.getName() );
@Override public Field fromComposite( final CompositeParser composite ) { final String typeString = composite.readString(); final String name = composite.readString(); final String value = composite.readString(); final FieldTypeName fieldType = FieldTypeName.valueOf( typeString ); switch ( fieldType ) { case BOOLEAN: return new BooleanField( name, Boolean.parseBoolean( value ) ); case DOUBLE: return new DoubleField( name, Double.parseDouble( value ) ); case FLOAT: return new FloatField( name, Float.parseFloat( value ) ); case INTEGER: return new IntegerField( name, Integer.parseInt( value ) ); case LONG: return new LongField( name, Long.parseLong( value ) ); case STRING: return new StringField( name, value ); case UUID: return new UUIDField( name, UUID.fromString( value ) ); default: throw new RuntimeException( "Unknown unique field type" ); } }
processedField = new UUIDField( fieldName, (UUID)value, unique );
break; case UUID: field = new UUIDField( name, UUID.fromString( value ) ); break; default:
@Test public void uuidField() { doTest( new UUIDField( "test", UUIDGenerator.newTimeUUID(), true ) ); }
/** * Test converting a UUID to a string */ @Test public void testUUIDField() { testSingleField( new UUIDField( "Name", UUIDGenerator.newTimeUUID() ), ( field, entityField ) -> assertEquals( field.getValue().toString(), entityField.get( IndexingUtils.FIELD_STRING ) ) ); }
entity.setField( new UUIDField( fieldName, (UUID)value ));
private void insertJsonBlob( List<Object> sampleJson, EntityIndexBatch batch, String entityType, IndexEdge indexEdge, final int max, final int startIndex ) throws IOException { int count = 0; StopWatch timer = new StopWatch(); timer.start(); if ( startIndex > 0 ) { for ( int i = 0; i < startIndex; i++ ) { sampleJson.remove( 0 ); } } for ( Object o : sampleJson ) { Map<String, Object> item = ( Map<String, Object> ) o; Entity entity = new Entity( entityType ); entity = EntityIndexMapUtils.fromMap( entity, item ); EntityUtils.setVersion( entity, UUIDGenerator.newTimeUUID() ); entity.setField( new UUIDField( IndexingUtils.ENTITY_ID_FIELDNAME, UUID.randomUUID() ) ); batch.index( indexEdge, entity ); if ( ++count > max ) { break; } } timer.stop(); logger.info( "Total time to index {} entries {}ms, average {}ms/entry", new Object[] { count, timer.getTime(), timer.getTime() / count } ); }
Entity entity1 = new Entity( entityType ); EntityUtils.setVersion(entity1, UUIDGenerator.newTimeUUID()); entity1.setField(new UUIDField(IndexingUtils.ENTITY_ID_FIELDNAME, uuid)); listOfMixedNulls.add(10); entity1.setField( new UUIDField("uuid", uuid, true)); entity1.setField( new ArrayField<>( "arrayofnulls", listOfNulls) ); entity1.setField( new ArrayField<>( "arrayofmixednulls", listOfMixedNulls) );
@Test public void testDeindex() { IndexEdge searchEdge = new IndexEdgeImpl( appId, "fastcars", SearchEdge.NodeType.SOURCE, 1 ); Map entityMap = new HashMap() {{ put( "name", "Ferrari 212 Inter" ); put( "introduced", 1952 ); put( "topspeed", 215 ); }}; Entity entity = EntityIndexMapUtils.fromMap( entityMap ); EntityUtils.setId(entity, new SimpleId( "fastcar" ) ); EntityUtils.setVersion(entity, UUIDGenerator.newTimeUUID() ); entity.setField(new UUIDField(IndexingUtils.ENTITY_ID_FIELDNAME, UUID.randomUUID() ) ); indexProducer.put(entityIndex.createBatch().index( searchEdge, entity ).build()).subscribe(); entityIndex.refreshAsync().toBlocking().first(); CandidateResults candidateResults = entityIndex .search( searchEdge, SearchTypes.fromTypes( entity.getId().getType() ), "name contains 'Ferrari*'", 10, 0, false ); assertEquals( 1, candidateResults.size() ); EntityIndexBatch batch = entityIndex.createBatch(); batch.deindex( searchEdge, entity ); indexProducer.put(batch.build()).subscribe();; entityIndex.refreshAsync().toBlocking().first(); candidateResults = entityIndex .search(searchEdge, SearchTypes.fromTypes( entity.getId().getType() ), "name contains 'Ferrari*'", 10, 0, false ); assertEquals(0, candidateResults.size()); }
Entity entity1 = new Entity( entityType ); EntityUtils.setVersion(entity1, UUIDGenerator.newTimeUUID()); entity1.setField(new UUIDField(IndexingUtils.ENTITY_ID_FIELDNAME, UUID.randomUUID())); entity1.setField( new StringField( "testfield", "test" ) ); entity1.setField(new IntegerField("ordinal", 0)); entity1.setField(new UUIDField("testuuid", uuid)); entity1.setField( new NullField("nullfield"));
private Entity createEntity() { final UUID version = UUIDGenerator.newTimeUUID(); Entity entity = new Entity( new SimpleId( "test" ) ); EntityUtils.setVersion( entity, version ); BooleanField boolField = new BooleanField( "boolean", false ); DoubleField doubleField = new DoubleField( "double", 1d ); IntegerField intField = new IntegerField( "long", 1 ); LongField longField = new LongField( "int", 1l ); StringField stringField = new StringField( "name", "test" ); UUIDField uuidField = new UUIDField( "uuid", UUIDGenerator.newTimeUUID() ); entity.setField( boolField ); entity.setField( doubleField ); entity.setField( intField ); entity.setField( longField ); entity.setField( stringField ); entity.setField( uuidField ); return entity; } }
/** * We no longer support partial writes, ensure that an exception is thrown when this occurs after v3 * @throws com.netflix.astyanax.connectionpool.exceptions.ConnectionException */ @Test public void writeLoadDeletePartial() throws ConnectionException { final Id applicationId = new SimpleId( "application" ); ApplicationScope context = new ApplicationScopeImpl( applicationId ); final UUID entityId = UUIDGenerator.newTimeUUID(); final UUID version = UUIDGenerator.newTimeUUID(); final String type = "test"; final Id id = new SimpleId( entityId, type ); Entity entity = new Entity( id ); EntityUtils.setVersion( entity, version ); BooleanField boolField = new BooleanField( "boolean", false ); DoubleField doubleField = new DoubleField( "double", 1d ); IntegerField intField = new IntegerField( "long", 1 ); LongField longField = new LongField( "int", 1l ); StringField stringField = new StringField( "name", "test" ); UUIDField uuidField = new UUIDField( "uuid", UUIDGenerator.newTimeUUID() ); entity.setField( boolField ); entity.setField( doubleField ); entity.setField( intField ); entity.setField( longField ); entity.setField( stringField ); entity.setField( uuidField ); MvccEntity saved = new MvccEntityImpl( id, version, MvccEntity.Status.PARTIAL, Optional.of( entity ) ); //persist the entity serializationStrategy.write( context, saved ).execute(); }
/** * We no longer support partial writes, ensure that an exception is thrown when this occurs after v3 * @throws ConnectionException */ @Test(expected = UnsupportedOperationException.class) public void writeLoadDeletePartial() throws ConnectionException { final Id applicationId = new SimpleId( "application" ); ApplicationScope context = new ApplicationScopeImpl( applicationId ); final UUID entityId = UUIDGenerator.newTimeUUID(); final UUID version = UUIDGenerator.newTimeUUID(); final String type = "test"; final Id id = new SimpleId( entityId, type ); Entity entity = new Entity( id ); EntityUtils.setVersion( entity, version ); BooleanField boolField = new BooleanField( "boolean", false ); DoubleField doubleField = new DoubleField( "double", 1d ); IntegerField intField = new IntegerField( "long", 1 ); LongField longField = new LongField( "int", 1l ); StringField stringField = new StringField( "name", "test" ); UUIDField uuidField = new UUIDField( "uuid", UUIDGenerator.newTimeUUID() ); entity.setField( boolField ); entity.setField( doubleField ); entity.setField( intField ); entity.setField( longField ); entity.setField( stringField ); entity.setField( uuidField ); MvccEntity saved = new MvccEntityImpl( id, version, MvccEntity.Status.PARTIAL, Optional.of( entity ) ); //persist the entity serializationStrategy.write( context, saved ).execute(); }
/** * We no longer support partial writes, ensure that an exception is thrown when this occurs after v3 * @throws com.netflix.astyanax.connectionpool.exceptions.ConnectionException */ @Test public void writeLoadDeletePartial() throws ConnectionException { final Id applicationId = new SimpleId( "application" ); ApplicationScope context = new ApplicationScopeImpl( applicationId ); final UUID entityId = UUIDGenerator.newTimeUUID(); final UUID version = UUIDGenerator.newTimeUUID(); final String type = "test"; final Id id = new SimpleId( entityId, type ); Entity entity = new Entity( id ); EntityUtils.setVersion( entity, version ); BooleanField boolField = new BooleanField( "boolean", false ); DoubleField doubleField = new DoubleField( "double", 1d ); IntegerField intField = new IntegerField( "long", 1 ); LongField longField = new LongField( "int", 1l ); StringField stringField = new StringField( "name", "test" ); UUIDField uuidField = new UUIDField( "uuid", UUIDGenerator.newTimeUUID() ); entity.setField( boolField ); entity.setField( doubleField ); entity.setField( intField ); entity.setField( longField ); entity.setField( stringField ); entity.setField( uuidField ); MvccEntity saved = new MvccEntityImpl( id, version, MvccEntity.Status.PARTIAL, Optional.of( entity ) ); //persist the entity serializationStrategy.write( context, saved ).execute(); }