@Override public String toString() { StringBuilder result = new StringBuilder(); result.append( name ); if ( defaultValue != null ) { result.append( " = " ).append( defaultValue.value() ); } return result.append( " :: " ).append( type ).toString(); }
if (value == null) return null; typeName = typeName.toUpperCase(); if (typeName.startsWith("LIST ")) return DefaultParameterValue.ntList((List<?>) value,typeof(typeName.substring(5))); switch (typeName) { case "MAP": return DefaultParameterValue.ntMap((Map<String, Object>) value); case "NODE": case "REL": case "EDGE": case "PATH": return null; case "NUMBER": return value instanceof Float || value instanceof Double ? DefaultParameterValue.ntFloat(((Number)value).doubleValue()) : DefaultParameterValue.ntInteger(((Number)value).longValue()); case "LONG": case "INT": case "INTEGER": return DefaultParameterValue.ntInteger(((Number)value).longValue()); case "FLOAT": case "DOUBLE": return DefaultParameterValue.ntFloat(((Number)value).doubleValue()); case "BOOL": case "BOOLEAN": return DefaultParameterValue.ntBoolean((Boolean)value); case "DATE": case "TIME": case "GEOMETRY": return null; case "STRING": case "TEXT": return DefaultParameterValue.ntString(value.toString()); default: return null;
public static DefaultParameterValue ntMap( Map<String,Object> value ) { return new DefaultParameterValue( value, Neo4jTypes.NTMap ); }
@Test public void equalsShouldConsiderDefaultValue() { assertEquals( inputField( "name", Neo4jTypes.NTString, ntString( "foo" ) ), inputField( "name", Neo4jTypes.NTString, ntString( "foo" ) ) ); assertNotEquals( inputField( "name", Neo4jTypes.NTString, ntString( "bar" ) ), inputField( "name", Neo4jTypes.NTString, ntString( "baz" ) ) ); }
private FieldSignature( String name, Neo4jTypes.AnyType type, DefaultParameterValue defaultValue, boolean deprecated ) { this.name = requireNonNull( name, "name" ); this.type = requireNonNull( type, "type" ); this.defaultValue = defaultValue; this.deprecated = deprecated; if ( defaultValue != null ) { if ( !type.equals( defaultValue.neo4jType() ) ) { throw new IllegalArgumentException( String.format( "Default value does not have a valid type, field type was %s, but value type was %s.", type.toString(), defaultValue.neo4jType().toString() ) ); } } }
@Override public DefaultParameterValue apply( String s ) { String value = s.trim(); if ( value.equalsIgnoreCase( "null" ) ) { return ntByteArray( null ); } else { List<Long> values = parseList( value, Long.class ); byte[] bytes = new byte[values.size()]; for ( int i = 0; i < bytes.length; i++ ) { bytes[i] = values.get( i ).byteValue(); } return ntByteArray( bytes ); } }
public static DefaultParameterValue ntByteArray( byte[] value ) { return new DefaultParameterValue( value, Neo4jTypes.NTByteArray ); }
@Test public void shouldTypeCheckDefaultValue() { // when try { inputField( "name", Neo4jTypes.NTInteger, ntString( "bad" ) ); fail( "expected exception" ); } // then catch ( IllegalArgumentException e ) { assertEquals( e.getMessage(), "Default value does not have a valid type, field type was INTEGER?, but value type was STRING?." ); } }
private FieldSignature( String name, Neo4jTypes.AnyType type, DefaultParameterValue defaultValue, boolean deprecated ) { this.name = requireNonNull( name, "name" ); this.type = requireNonNull( type, "type" ); this.defaultValue = defaultValue; this.deprecated = deprecated; if ( defaultValue != null ) { if ( !type.equals( defaultValue.neo4jType() ) ) { throw new IllegalArgumentException( String.format( "Default value does not have a valid type, field type was %s, but value type was %s.", type.toString(), defaultValue.neo4jType().toString() ) ); } } }
@Override public DefaultParameterValue apply( String s ) { String value = s.trim(); if ( value.equalsIgnoreCase( "null" ) ) { return ntByteArray( null ); } else { List<Long> values = parseList( value, Long.class ); byte[] bytes = new byte[values.size()]; for ( int i = 0; i < bytes.length; i++ ) { bytes[i] = values.get( i ).byteValue(); } return ntByteArray( bytes ); } }
@Test public void shouldHandleEmptyMap() { // Given String mapString = "{}"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then assertThat( converted, equalTo( ntMap( emptyMap() ) ) ); }
@Test public void shouldHandleFloatValue() { // Given ListConverter converter = new ListConverter( Double.class, NTFloat ); String listSting = "[2.718281828, 3.14]"; // When DefaultParameterValue converted = converter.apply( listSting ); // Then assertThat( converted, equalTo( ntList( asList( 2.718281828, 3.14 ), NTFloat ) ) ); }
@SuppressWarnings( "unchecked" ) @Test public void shouldHandleMapsWithLists() { // Given String mapString = "{k1: [1337, 42]}"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then Map<String,Object> map1 = (Map<String,Object>) converted.value(); assertThat( map1.get( "k1" ), equalTo( asList( 1337L, 42L ) ) ); } }
public static DefaultParameterValue ntBoolean( boolean value ) { return new DefaultParameterValue( value, Neo4jTypes.NTBoolean ); }
@Test public void shouldHandleEmptyMapWithSpaces() { // Given String mapString = " { } "; // When DefaultParameterValue converted = converter.apply( mapString ); // Then assertThat( converted, equalTo( ntMap( emptyMap() ) ) ); }
@Test public void shouldHandleNullValue() { // Given ListConverter converter = new ListConverter( Double.class, NTFloat ); String listString = "[null]"; // When DefaultParameterValue converted = converter.apply( listString ); // Then assertThat( converted, equalTo( ntList( singletonList( null ), NTFloat ) ) ); }
@SuppressWarnings( "unchecked" ) @Test public void shouldHandleNestedMaps() { // Given String mapString = "{k1: 1337, k2: { k1 : 1337, k2: {k1: 1337}}}"; // When DefaultParameterValue converted = converter.apply( mapString ); // Then Map<String,Object> map1 = (Map<String,Object>) converted.value(); Map<String,Object> map2 = (Map<String,Object>) map1.get( "k2" ); Map<String,Object> map3 = (Map<String,Object>) map2.get( "k2" ); assertThat( map1.get( "k1" ), equalTo( 1337L ) ); assertThat( map2.get( "k1" ), equalTo( 1337L ) ); assertThat( map3.get( "k1" ), equalTo( 1337L ) ); }