/** * Load the unique property for the field */ private Id getIdForUniqueEntityField( final String collectionName, final String propertyName, final Object propertyValue ) { //convert to a string, that's what we store final Id results = ecm.getIdField( Inflector.getInstance().singularize( collectionName ), new StringField( propertyName, propertyValue.toString() ) ).toBlocking() .lastOrDefault( null ); return results; }
StringField uniqueLookupRepairField = new StringField( propertyName, aliasType.toString()); "executing the unique value lookup once more for consistency", uniqueLookupRepairField.getName(), uniqueLookupRepairField.getValue());
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() ); Field<String> stringFieldReturned = returned.getEntity().get().getField( stringField.getName() );
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() ); NullField nullField = new NullField("null"); Field<String> stringFieldReturned = entity.getField( stringField.getName() );
/** * Create a mock list of versions of the specified size * * @param entityId The entity Id to use * @param versions The versions */ private UniqueValueEntryMock( final Id entityId, final List<UUID> versions ) { this.entityId = entityId; for (UUID version: versions ) { entries.add( new UniqueValueImpl( new StringField( "fieldWithVersion", version.toString() ), entityId, version ) ); } Collections.sort(entries, COMPARATOR); }
StringField uniqueLookupRepairField = new StringField( propertyName, aliasType); "executing the unique value lookup once more for consistency", uniqueLookupRepairField.getName(), uniqueLookupRepairField.getValue());
StringField version1Field2 = new StringField("field", "v1value"); StringField version2Field2 = new StringField( "field", "v2value" ); retrieved = fields.getValue( version1Field2.getName() ); assertEquals( version1Field2Value, retrieved );
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; }
new ApplicationScopeImpl( new SimpleId( "organization" ) ); StringField field = new StringField( "count", "MiXeD CaSe" ); Id entityId = new SimpleId( UUIDGenerator.newTimeUUID(), "entity" ); UUID version = UUIDGenerator.newTimeUUID(); UniqueValue value = fields.getValue( field.getName() ); assertEquals( field.getName(), value.getField().getName() ); Collections.<Field>singleton( new StringField( field.getName(), "MIXED CASE" ) ) ); value = fields.getValue( field.getName() ); assertEquals( field.getName(), value.getField().getName() ); Collections.<Field>singleton( new StringField( field.getName(), "mixed case" ) ) ); value = fields.getValue( field.getName() ); assertEquals( field.getName(), value.getField().getName() ); Assert.assertNotNull( writtenFieldEntry ); assertEquals( field.getName(), writtenFieldEntry.getField().getName() ); assertEquals( field.getValue().toLowerCase(), writtenFieldEntry.getField().getValue() ); assertEquals( version, writtenFieldEntry.getEntityVersion() );
@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 StringField(fieldName, stringValue, unique); processedField = new StringField( fieldName, value.toString(), unique );
/** * Fetch our application id */ private UUID fetchApplicationId( final String applicationName ) { UUID value = null; EntityCollectionManager ecm = managerCache.getEntityCollectionManager( new ApplicationScopeImpl( new SimpleId( CpNamingUtils.MANAGEMENT_APPLICATION_ID, Schema.TYPE_APPLICATION ) ) ); try { if ( managementEnityManager.getApplication() == null ) { return null; } } catch ( Exception e ) { logger.error("Error looking up management app", e); } // look up application_info ID for application using unique "name" field final Observable<Id> idObs = ecm.getIdField( CpNamingUtils.APPLICATION_INFO, new StringField(Schema.PROPERTY_NAME, applicationName)); Id id = idObs.toBlocking().lastOrDefault(null); if ( id != null ) { value = id.getUuid(); } else { if (logger.isDebugEnabled()) { logger.debug( "Could not load value for key {} ", applicationName ); } } return value; }
@Test public void stringField() { doTest( new StringField( "test", "value", true ) ); }
break; case STRING: field = new StringField( name, value ); break; case UUID:
/** * Generates an entity with all string fields to have at least the minSize number of characters in the field names + * field values */ public static Entity generateEntity( final int minSize ) { int currentLength = 0; final Entity entity = new Entity( new SimpleId( "test" ) ); //generate a really large string value //loop until our size is beyond the set size for ( int i = 0; currentLength < minSize; i++ ) { final String key = "newStringField" + i; currentLength += key.length(); StringBuilder builder = new StringBuilder(); for ( int j = 0; j < 1000 && currentLength < minSize; j++ ) { builder.append( "a" ); currentLength ++; } entity.setField( new StringField( key, builder.toString() ) ); } return entity; }
newEntity.setField( new StringField( "username", username, true ) ); newEntity.setField( new StringField( "email", username + "@example.org", true ) );
@Test public void testNoConflict2() { final Id appId = new SimpleId("testNoConflict"); final ApplicationScope scope = new ApplicationScopeImpl( appId ); final EntityCollectionManager entityManager = cmf.createCollectionManager( scope ); final Entity entity = TestEntityGenerator.generateEntity(); entity.setField(new StringField("name", "Alfa Romeo 8C Competizione", true)); entity.setField(new StringField("identifier", "ar8c", true)); entity.setField(new IntegerField("top_speed_mph", 182)); entityManager.write( entity, null ).toBlocking().last(); entity.setField( new StringField("foo", "bar")); entityManager.write( entity, null ).toBlocking().last(); }
@Test public void testNoConflict1() { final Id appId = new SimpleId("testNoConflict"); final ApplicationScope scope = new ApplicationScopeImpl( appId); final EntityCollectionManager entityManager = cmf.createCollectionManager( scope ); final Entity entity = TestEntityGenerator.generateEntity(); entity.setField(new StringField("name", "Porsche 911 GT3", true)); entity.setField(new StringField("identifier", "911gt3", true)); entity.setField(new IntegerField("top_speed_mph", 194)); entityManager.write( entity, null ).toBlocking().last(); Entity entityFetched = entityManager.load( entity.getId() ).toBlocking().last(); entityFetched.setField( new StringField("foo", "baz")); entityManager.write( entityFetched, null ).toBlocking().last(); }
@Test public void testStringFieldSubObject() { testNestedField( new StringField( "name", "value" ), ( field, entityField ) -> assertEquals( field.getValue(), entityField.get( IndexingUtils.FIELD_STRING ) ) ); }
@Test public void testStringField() { testSingleField( new StringField( "Name", "value" ), ( field, entityField ) -> assertEquals( field.getValue(), entityField.get( IndexingUtils.FIELD_STRING ) ) ); }