From af5e6118e3b82562000f9b3ef84eb38d4156fa3c Mon Sep 17 00:00:00 2001 From: fickludd Date: Tue, 13 Jun 2017 14:25:49 +0200 Subject: [PATCH] Added Value.prettyPrint() --- .../index/IndexEntryConflictException.java | 49 +------------------ .../java/org/neo4j/values/BooleanArray.java | 6 +++ .../java/org/neo4j/values/BooleanValue.java | 28 ++++++----- .../main/java/org/neo4j/values/ByteArray.java | 6 +++ .../main/java/org/neo4j/values/ByteValue.java | 6 +++ .../main/java/org/neo4j/values/CharArray.java | 6 +++ .../main/java/org/neo4j/values/CharValue.java | 6 +++ .../java/org/neo4j/values/DoubleArray.java | 6 +++ .../java/org/neo4j/values/DoubleValue.java | 6 +++ .../java/org/neo4j/values/FloatArray.java | 6 +++ .../java/org/neo4j/values/FloatValue.java | 6 +++ .../main/java/org/neo4j/values/IntArray.java | 6 +++ .../main/java/org/neo4j/values/IntValue.java | 6 +++ .../main/java/org/neo4j/values/LongArray.java | 6 +++ .../main/java/org/neo4j/values/LongValue.java | 6 +++ .../main/java/org/neo4j/values/NoValue.java | 6 +++ .../java/org/neo4j/values/ShortArray.java | 6 +++ .../java/org/neo4j/values/ShortValue.java | 6 +++ .../java/org/neo4j/values/StringArray.java | 6 +++ .../java/org/neo4j/values/StringValue.java | 6 +++ .../src/main/java/org/neo4j/values/Value.java | 5 ++ .../java/org/neo4j/values/MyVirtualValue.java | 6 +++ 22 files changed, 137 insertions(+), 59 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/index/IndexEntryConflictException.java b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/index/IndexEntryConflictException.java index 654b62a27759..29546b19b683 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/index/IndexEntryConflictException.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/exceptions/index/IndexEntryConflictException.java @@ -154,55 +154,8 @@ private String propertyString( TokenNameLookup tokenNameLookup, int[] propertyId sb.append( '`' ); sb.append( tokenNameLookup.propertyKeyGetName( propertyIds[i] ) ); sb.append( "` = " ); - sb.append( quote( propertyValues.valueAt( i ).asPublic() ) ); + sb.append( propertyValues.valueAt( i ).prettyPrint() ); } return sb.toString(); } - - private static String quote( Object propertyValue ) - { - if ( propertyValue instanceof String ) - { - return format( "'%s'", propertyValue ); - } - else if ( propertyValue.getClass().isArray() ) - { - Class type = propertyValue.getClass().getComponentType(); - if ( type == Boolean.TYPE ) - { - return Arrays.toString( (boolean[]) propertyValue ); - } - else if ( type == Byte.TYPE ) - { - return Arrays.toString( (byte[]) propertyValue ); - } - else if ( type == Short.TYPE ) - { - return Arrays.toString( (short[]) propertyValue ); - } - else if ( type == Character.TYPE ) - { - return Arrays.toString( (char[]) propertyValue ); - } - else if ( type == Integer.TYPE ) - { - return Arrays.toString( (int[]) propertyValue ); - } - else if ( type == Long.TYPE ) - { - return Arrays.toString( (long[]) propertyValue ); - } - else if ( type == Float.TYPE ) - { - return Arrays.toString( (float[]) propertyValue ); - } - else if ( type == Double.TYPE ) - { - return Arrays.toString( (double[]) propertyValue ); - } - return Arrays.toString( (Object[]) propertyValue ); - } - return valueOf( propertyValue ); - } - } diff --git a/community/values/src/main/java/org/neo4j/values/BooleanArray.java b/community/values/src/main/java/org/neo4j/values/BooleanArray.java index 781c070960c7..b718e2d4f1f2 100644 --- a/community/values/src/main/java/org/neo4j/values/BooleanArray.java +++ b/community/values/src/main/java/org/neo4j/values/BooleanArray.java @@ -145,6 +145,12 @@ public NumberType numberType() return NumberType.NO_NUMBER; } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends BooleanArray { private final boolean[] value; diff --git a/community/values/src/main/java/org/neo4j/values/BooleanValue.java b/community/values/src/main/java/org/neo4j/values/BooleanValue.java index b4ee467a4d3b..e53d419b534a 100644 --- a/community/values/src/main/java/org/neo4j/values/BooleanValue.java +++ b/community/values/src/main/java/org/neo4j/values/BooleanValue.java @@ -27,11 +27,11 @@ */ final class BooleanValue extends ScalarValue { - private final boolean bool; + private final boolean value; - BooleanValue( boolean bool ) + BooleanValue( boolean value ) { - this.bool = bool; + this.value = value; } @Override @@ -43,13 +43,13 @@ public boolean equals( Object other ) @Override public boolean equals( Value other ) { - return other.equals( bool ); + return other.equals( value ); } @Override public boolean equals( boolean x ) { - return bool == x; + return value == x; } @Override @@ -67,35 +67,41 @@ public boolean equals( String x ) @Override public int hashCode() { - return bool ? -1 : 0; + return value ? -1 : 0; } public boolean booleanValue() { - return bool; + return value; } public int compareTo( BooleanValue other ) { - return Boolean.compare( bool, other.booleanValue() ); + return Boolean.compare( value, other.booleanValue() ); } @Override public void writeTo( ValueWriter writer ) { - writer.writeBoolean( bool ); + writer.writeBoolean( value ); } @Override public Object asPublic() { - return bool; + return value; + } + + @Override + public String prettyPrint() + { + return Boolean.toString( value ); } @Override public String toString() { - return format( "Boolean('%s')", Boolean.toString( bool ) ); + return format( "Boolean('%s')", Boolean.toString( value ) ); } public ValueGroup valueGroup() diff --git a/community/values/src/main/java/org/neo4j/values/ByteArray.java b/community/values/src/main/java/org/neo4j/values/ByteArray.java index d05c692d2c84..24b579886a6b 100644 --- a/community/values/src/main/java/org/neo4j/values/ByteArray.java +++ b/community/values/src/main/java/org/neo4j/values/ByteArray.java @@ -112,6 +112,12 @@ public Object asLegacyObject() return value(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends ByteArray { final byte[] value; diff --git a/community/values/src/main/java/org/neo4j/values/ByteValue.java b/community/values/src/main/java/org/neo4j/values/ByteValue.java index 0c5d520ab95d..547f1e8fb4fb 100644 --- a/community/values/src/main/java/org/neo4j/values/ByteValue.java +++ b/community/values/src/main/java/org/neo4j/values/ByteValue.java @@ -70,6 +70,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return Byte.toString( value ); + } + @Override public String toString() { diff --git a/community/values/src/main/java/org/neo4j/values/CharArray.java b/community/values/src/main/java/org/neo4j/values/CharArray.java index 9afa43a78af5..dfc8cecba581 100644 --- a/community/values/src/main/java/org/neo4j/values/CharArray.java +++ b/community/values/src/main/java/org/neo4j/values/CharArray.java @@ -95,6 +95,12 @@ public Object asLegacyObject() return value(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends CharArray { final char[] value; diff --git a/community/values/src/main/java/org/neo4j/values/CharValue.java b/community/values/src/main/java/org/neo4j/values/CharValue.java index ec9858951e7c..14b8afba8820 100644 --- a/community/values/src/main/java/org/neo4j/values/CharValue.java +++ b/community/values/src/main/java/org/neo4j/values/CharValue.java @@ -78,6 +78,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return format( "'%s'", value ); + } + @Override public String stringValue() { diff --git a/community/values/src/main/java/org/neo4j/values/DoubleArray.java b/community/values/src/main/java/org/neo4j/values/DoubleArray.java index 54963cfbc380..6b4438fd2d88 100644 --- a/community/values/src/main/java/org/neo4j/values/DoubleArray.java +++ b/community/values/src/main/java/org/neo4j/values/DoubleArray.java @@ -112,6 +112,12 @@ public Object asLegacyObject() return value(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends DoubleArray { final double[] value; diff --git a/community/values/src/main/java/org/neo4j/values/DoubleValue.java b/community/values/src/main/java/org/neo4j/values/DoubleValue.java index 04cf0009fb71..2e15be4240d3 100644 --- a/community/values/src/main/java/org/neo4j/values/DoubleValue.java +++ b/community/values/src/main/java/org/neo4j/values/DoubleValue.java @@ -66,6 +66,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return Double.toString( value ); + } + @Override public String toString() { diff --git a/community/values/src/main/java/org/neo4j/values/FloatArray.java b/community/values/src/main/java/org/neo4j/values/FloatArray.java index c5f881a6db16..83669e8ae90d 100644 --- a/community/values/src/main/java/org/neo4j/values/FloatArray.java +++ b/community/values/src/main/java/org/neo4j/values/FloatArray.java @@ -112,6 +112,12 @@ public Object asLegacyObject() return value(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends FloatArray { final float[] value; diff --git a/community/values/src/main/java/org/neo4j/values/FloatValue.java b/community/values/src/main/java/org/neo4j/values/FloatValue.java index 78509702efde..932f9196ece6 100644 --- a/community/values/src/main/java/org/neo4j/values/FloatValue.java +++ b/community/values/src/main/java/org/neo4j/values/FloatValue.java @@ -66,6 +66,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return Float.toString( value ); + } + @Override public String toString() { diff --git a/community/values/src/main/java/org/neo4j/values/IntArray.java b/community/values/src/main/java/org/neo4j/values/IntArray.java index c8dcf6d79a1f..22ff4b878046 100644 --- a/community/values/src/main/java/org/neo4j/values/IntArray.java +++ b/community/values/src/main/java/org/neo4j/values/IntArray.java @@ -112,6 +112,12 @@ public Object asLegacyObject() return value(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends IntArray { final int[] value; diff --git a/community/values/src/main/java/org/neo4j/values/IntValue.java b/community/values/src/main/java/org/neo4j/values/IntValue.java index 7e8e5feba9e0..a7e103b4aea6 100644 --- a/community/values/src/main/java/org/neo4j/values/IntValue.java +++ b/community/values/src/main/java/org/neo4j/values/IntValue.java @@ -48,6 +48,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return Integer.toString( value ); + } + @Override public String toString() { diff --git a/community/values/src/main/java/org/neo4j/values/LongArray.java b/community/values/src/main/java/org/neo4j/values/LongArray.java index 75ef3cf3831f..b6c4cf21f0e5 100644 --- a/community/values/src/main/java/org/neo4j/values/LongArray.java +++ b/community/values/src/main/java/org/neo4j/values/LongArray.java @@ -105,6 +105,12 @@ public Object asPublic() return value().clone(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + @Override @Deprecated public Object asLegacyObject() diff --git a/community/values/src/main/java/org/neo4j/values/LongValue.java b/community/values/src/main/java/org/neo4j/values/LongValue.java index dbf4376bee3c..edf5533ba9c3 100644 --- a/community/values/src/main/java/org/neo4j/values/LongValue.java +++ b/community/values/src/main/java/org/neo4j/values/LongValue.java @@ -66,6 +66,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return Long.toString( value ); + } + @Override public String toString() { diff --git a/community/values/src/main/java/org/neo4j/values/NoValue.java b/community/values/src/main/java/org/neo4j/values/NoValue.java index 4dd6d9c54b7e..1b9927895253 100644 --- a/community/values/src/main/java/org/neo4j/values/NoValue.java +++ b/community/values/src/main/java/org/neo4j/values/NoValue.java @@ -136,6 +136,12 @@ public Object asPublic() return null; } + @Override + public String prettyPrint() + { + return "NO_VALUE"; + } + public ValueGroup valueGroup() { return ValueGroup.NO_VALUE; diff --git a/community/values/src/main/java/org/neo4j/values/ShortArray.java b/community/values/src/main/java/org/neo4j/values/ShortArray.java index fb4ff60e4cd1..699f2504a4b3 100644 --- a/community/values/src/main/java/org/neo4j/values/ShortArray.java +++ b/community/values/src/main/java/org/neo4j/values/ShortArray.java @@ -112,6 +112,12 @@ public Object asLegacyObject() return value(); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends ShortArray { final short[] value; diff --git a/community/values/src/main/java/org/neo4j/values/ShortValue.java b/community/values/src/main/java/org/neo4j/values/ShortValue.java index b99bb6cbbd5c..1c30ca9a23cf 100644 --- a/community/values/src/main/java/org/neo4j/values/ShortValue.java +++ b/community/values/src/main/java/org/neo4j/values/ShortValue.java @@ -70,6 +70,12 @@ public Object asPublic() return value; } + @Override + public String prettyPrint() + { + return Short.toString( value ); + } + @Override public String toString() { diff --git a/community/values/src/main/java/org/neo4j/values/StringArray.java b/community/values/src/main/java/org/neo4j/values/StringArray.java index 9c5a67f79d8d..23b9d9cc89d2 100644 --- a/community/values/src/main/java/org/neo4j/values/StringArray.java +++ b/community/values/src/main/java/org/neo4j/values/StringArray.java @@ -93,6 +93,12 @@ public int compareTo( TextArray other ) return TextValues.compareTextArrays( this, other ); } + @Override + public String prettyPrint() + { + return Arrays.toString( value() ); + } + static final class Direct extends StringArray { final String[] value; diff --git a/community/values/src/main/java/org/neo4j/values/StringValue.java b/community/values/src/main/java/org/neo4j/values/StringValue.java index 9599ccf5b3d2..aa12ff5bd40d 100644 --- a/community/values/src/main/java/org/neo4j/values/StringValue.java +++ b/community/values/src/main/java/org/neo4j/values/StringValue.java @@ -85,6 +85,12 @@ public String stringValue() return value(); } + @Override + public String prettyPrint() + { + return format( "'%s'", value() ); + } + static final class Direct extends StringValue { final String value; diff --git a/community/values/src/main/java/org/neo4j/values/Value.java b/community/values/src/main/java/org/neo4j/values/Value.java index ea5bcd8680dd..0f870f85c0c3 100644 --- a/community/values/src/main/java/org/neo4j/values/Value.java +++ b/community/values/src/main/java/org/neo4j/values/Value.java @@ -75,6 +75,11 @@ public Object asLegacyObject() return asPublic(); } + /** + * Returns a json-like string representation of the current value. + */ + public abstract String prettyPrint(); + public abstract ValueGroup valueGroup(); public abstract NumberType numberType(); diff --git a/community/values/src/test/java/org/neo4j/values/MyVirtualValue.java b/community/values/src/test/java/org/neo4j/values/MyVirtualValue.java index a3ef912a8222..7d7de40e967d 100644 --- a/community/values/src/test/java/org/neo4j/values/MyVirtualValue.java +++ b/community/values/src/test/java/org/neo4j/values/MyVirtualValue.java @@ -50,4 +50,10 @@ public Object asPublic() { return this; } + + @Override + public String prettyPrint() + { + return null; + } }