From 17ec64c998d485210a5c0257fb2a265db1a6483c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Finn=C3=A9?= Date: Tue, 30 Jan 2018 17:43:39 +0100 Subject: [PATCH] Improved on some javadoc and cut down on unnecessary generics --- .../schema/NativeSchemaIndexProvider.java | 6 ++++++ .../schema/NumberSchemaIndexAccessor.java | 5 ++--- .../schema/NumberSchemaIndexProvider.java | 2 +- .../impl/index/schema/StringLayout.java | 2 +- .../index/schema/StringLayoutNonUnique.java | 3 +++ .../impl/index/schema/StringLayoutUnique.java | 2 +- .../schema/StringSchemaIndexAccessor.java | 11 ++++++---- .../schema/StringSchemaIndexProvider.java | 2 +- .../index/schema/StringSchemaIndexReader.java | 11 +++++----- .../impl/index/schema/StringSchemaKey.java | 21 ++++++------------- ...umberNonUniqueSchemaIndexAccessorTest.java | 2 +- .../schema/NumberSchemaIndexAccessorTest.java | 7 +++---- .../NumberUniqueSchemaIndexAccessorTest.java | 3 +-- ...tringNonUniqueSchemaIndexAccessorTest.java | 2 +- .../schema/StringSchemaIndexAccessorTest.java | 7 +++---- .../StringUniqueSchemaIndexAccessorTest.java | 2 +- 16 files changed, 44 insertions(+), 44 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexProvider.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexProvider.java index df72ff335428e..e2fef1ffdb680 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexProvider.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexProvider.java @@ -41,6 +41,12 @@ import org.neo4j.kernel.api.index.IndexPopulator; import org.neo4j.kernel.api.index.SchemaIndexProvider; +/** + * Base class for native indexes on top of {@link GBPTree}. + * + * @param type of {@link NativeSchemaKey} + * @param type of {@link NativeSchemaValue} + */ abstract class NativeSchemaIndexProvider extends SchemaIndexProvider { protected final PageCache pageCache; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessor.java index 49dd603ff8368..361e80e88af9e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessor.java @@ -31,14 +31,13 @@ import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.storageengine.api.schema.IndexReader; -public class NumberSchemaIndexAccessor - extends NativeSchemaIndexAccessor +public class NumberSchemaIndexAccessor extends NativeSchemaIndexAccessor { NumberSchemaIndexAccessor( PageCache pageCache, FileSystemAbstraction fs, File storeFile, - Layout layout, + Layout layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, SchemaIndexProvider.Monitor monitor, IndexDescriptor descriptor, diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexProvider.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexProvider.java index 1a15741c8d8f3..ac16ea8511fe9 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexProvider.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexProvider.java @@ -68,7 +68,7 @@ protected NumberLayoutNonUnique layoutNonUnique() protected IndexAccessor newIndexAccessor( File storeFile, Layout layout, IndexDescriptor descriptor, long indexId, IndexSamplingConfig samplingConfig ) throws IOException { - return new NumberSchemaIndexAccessor<>( pageCache, fs, storeFile, layout, recoveryCleanupWorkCollector, monitor, descriptor, + return new NumberSchemaIndexAccessor( pageCache, fs, storeFile, layout, recoveryCleanupWorkCollector, monitor, descriptor, indexId, samplingConfig ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayout.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayout.java index dfaeefa82b1c6..236dda4b3bb5e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayout.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayout.java @@ -27,7 +27,7 @@ import static org.neo4j.kernel.impl.index.schema.StringSchemaKey.ENTITY_ID_SIZE; /** - * {@link Layout} for numbers where numbers doesn't need to be unique. + * {@link Layout} for strings. */ abstract class StringLayout extends Layout.Adapter { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutNonUnique.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutNonUnique.java index b63de1da04bf2..4172fe7ea90ce 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutNonUnique.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutNonUnique.java @@ -21,6 +21,9 @@ import org.neo4j.index.internal.gbptree.Layout; +/** + * {@link Layout} for strings that doesn't need to be unique. + */ public class StringLayoutNonUnique extends StringLayout { private static final String IDENTIFIER_NAME = "NUSI"; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutUnique.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutUnique.java index 02aa5bbd9647d..8d3d278af8241 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutUnique.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringLayoutUnique.java @@ -22,7 +22,7 @@ import org.neo4j.index.internal.gbptree.Layout; /** - * {@link Layout} for numbers where numbers need to be unique. + * {@link Layout} for strings that need to be unique. */ class StringLayoutUnique extends StringLayout { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessor.java index 80ba1a83054d4..df4b2f7ad16e0 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessor.java @@ -26,19 +26,22 @@ import org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.pagecache.PageCache; +import org.neo4j.kernel.api.index.IndexAccessor; import org.neo4j.kernel.api.index.SchemaIndexProvider; import org.neo4j.kernel.api.schema.index.IndexDescriptor; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; import org.neo4j.storageengine.api.schema.IndexReader; -public class StringSchemaIndexAccessor - extends NativeSchemaIndexAccessor +/** + * {@link IndexAccessor} using {@link StringLayout}, i.e for {@link String} values. + */ +public class StringSchemaIndexAccessor extends NativeSchemaIndexAccessor { StringSchemaIndexAccessor( PageCache pageCache, FileSystemAbstraction fs, File storeFile, - Layout layout, + Layout layout, RecoveryCleanupWorkCollector recoveryCleanupWorkCollector, SchemaIndexProvider.Monitor monitor, IndexDescriptor descriptor, @@ -52,6 +55,6 @@ public class StringSchemaIndexAccessor( tree, layout, samplingConfig, descriptor ); + return new StringSchemaIndexReader( tree, layout, samplingConfig, descriptor ); } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexProvider.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexProvider.java index 8e3285dce8004..07cec2bfcbe02 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexProvider.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexProvider.java @@ -68,7 +68,7 @@ protected StringLayoutNonUnique layoutNonUnique() protected IndexAccessor newIndexAccessor( File storeFile, Layout layout, IndexDescriptor descriptor, long indexId, IndexSamplingConfig samplingConfig ) throws IOException { - return new StringSchemaIndexAccessor<>( pageCache, fs, storeFile, layout, recoveryCleanupWorkCollector, monitor, descriptor, + return new StringSchemaIndexAccessor( pageCache, fs, storeFile, layout, recoveryCleanupWorkCollector, monitor, descriptor, indexId, samplingConfig ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexReader.java index d0999e9eef2d9..d739eaba14e3c 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexReader.java @@ -30,9 +30,10 @@ import org.neo4j.values.storable.Value; import org.neo4j.values.storable.ValueGroup; -class StringSchemaIndexReader extends NativeSchemaIndexReader +class StringSchemaIndexReader extends NativeSchemaIndexReader { - StringSchemaIndexReader( GBPTree tree, Layout layout, IndexSamplingConfig samplingConfig, IndexDescriptor descriptor ) + StringSchemaIndexReader( GBPTree tree, Layout layout, + IndexSamplingConfig samplingConfig, IndexDescriptor descriptor ) { super( tree, layout, samplingConfig, descriptor ); } @@ -52,7 +53,7 @@ void validateQuery( IndexOrder indexOrder, IndexQuery[] predicates ) } @Override - void initializeRangeForQuery( KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] predicates ) + void initializeRangeForQuery( StringSchemaKey treeKeyFrom, StringSchemaKey treeKeyTo, IndexQuery[] predicates ) { // todo initialize the keys to prepare for seek IndexQuery predicate = predicates[0]; @@ -80,7 +81,7 @@ void initializeRangeForQuery( KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] predi } } - private void initFromForRange( StringRangePredicate rangePredicate, KEY treeKeyFrom ) + private void initFromForRange( StringRangePredicate rangePredicate, StringSchemaKey treeKeyFrom ) { Value fromValue = rangePredicate.fromAsValue(); if ( fromValue.valueGroup() == ValueGroup.NO_VALUE ) @@ -94,7 +95,7 @@ private void initFromForRange( StringRangePredicate rangePredicate, KEY treeKeyF } } - private void initToForRange( StringRangePredicate rangePredicate, KEY treeKeyTo ) + private void initToForRange( StringRangePredicate rangePredicate, StringSchemaKey treeKeyTo ) { Value toValue = rangePredicate.toAsValue(); if ( toValue.valueGroup() == ValueGroup.NO_VALUE ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaKey.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaKey.java index 52662de699821..cc2193bc5d90a 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaKey.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/StringSchemaKey.java @@ -21,6 +21,7 @@ import java.util.Arrays; +import org.neo4j.index.internal.gbptree.GBPTree; import org.neo4j.string.UTF8; import org.neo4j.values.storable.TextValue; import org.neo4j.values.storable.Value; @@ -32,12 +33,8 @@ import static org.neo4j.values.storable.UTF8StringValue.codePointByteArrayCompare; /** - * Includes value and entity id (to be able to handle non-unique values). - * A value can be any {@link Number} and is represented as a {@code long} to store the raw bits and a type - * to say if it's a long, double or float. - * - * Distinction between double and float exists because coersions between each other and long may differ. - * TODO this should be figured out and potentially reduced to long, double types only. + * Includes value and entity id (to be able to handle non-unique values). A value can be any {@link String}, + * or rather any string that {@link GBPTree} can handle. */ class StringSchemaKey extends ValueWriter.Adapter implements NativeSchemaKey { @@ -89,7 +86,6 @@ public void from( long entityId, Value... values ) private TextValue assertValidValue( Value... values ) { - // TODO: support multiple values, right? if ( values.length > 1 ) { throw new IllegalArgumentException( "Tried to create composite key with non-composite schema key layout" ); @@ -118,7 +114,7 @@ public Value asValue() return bytes == null ? Values.NO_VALUE : Values.utf8Value( bytes ); } - // TODO perhaps merge into parent or something + // TODO perhaps merge these lowest/highest methods into parent @Override public void initAsLowest() { @@ -140,11 +136,6 @@ private boolean isHighest() return entityIdIsSpecialTieBreaker && entityId == Long.MAX_VALUE && bytes == null; } - private boolean isLowest() - { - return entityIdIsSpecialTieBreaker && entityId == Long.MIN_VALUE && bytes == null; - } - /** * Compares the value of this key to that of another key. * This method is expected to be called in scenarios where inconsistent reads may happen (and later retried). @@ -170,6 +161,7 @@ int compareValueTo( StringSchemaKey other ) { return 0; } + try { // TODO change to not throw @@ -223,13 +215,12 @@ public String toString() @Override public void writeString( String value ) { - // expensiveness bytes = UTF8.encode( value ); } @Override public void writeString( char value ) { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException( "Not supported a.t.m. should it be?" ); } } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberNonUniqueSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberNonUniqueSchemaIndexAccessorTest.java index e6073a5e24864..c8e57a130412a 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberNonUniqueSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberNonUniqueSchemaIndexAccessorTest.java @@ -19,7 +19,7 @@ */ package org.neo4j.kernel.impl.index.schema; -public class NumberNonUniqueSchemaIndexAccessorTest extends NumberSchemaIndexAccessorTest +public class NumberNonUniqueSchemaIndexAccessorTest extends NumberSchemaIndexAccessorTest { @Override protected LayoutTestUtil createLayoutTestUtil() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessorTest.java index e6944e41c115b..4cb38fa8424e6 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexAccessorTest.java @@ -40,13 +40,12 @@ import static org.junit.Assert.assertTrue; import static org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.IMMEDIATE; -public abstract class NumberSchemaIndexAccessorTest - extends NativeSchemaIndexAccessorTest +public abstract class NumberSchemaIndexAccessorTest extends NativeSchemaIndexAccessorTest { @Override - NativeSchemaIndexAccessor makeAccessorWithSamplingConfig( IndexSamplingConfig samplingConfig ) throws IOException + NumberSchemaIndexAccessor makeAccessorWithSamplingConfig( IndexSamplingConfig samplingConfig ) throws IOException { - return new NumberSchemaIndexAccessor<>( pageCache, fs, indexFile, layout, IMMEDIATE, monitor, indexDescriptor, indexId, samplingConfig ); + return new NumberSchemaIndexAccessor( pageCache, fs, indexFile, layout, IMMEDIATE, monitor, indexDescriptor, indexId, samplingConfig ); } @Test diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberUniqueSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberUniqueSchemaIndexAccessorTest.java index 35bd69f64bc52..d39c1bc818389 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberUniqueSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NumberUniqueSchemaIndexAccessorTest.java @@ -19,8 +19,7 @@ */ package org.neo4j.kernel.impl.index.schema; -public class NumberUniqueSchemaIndexAccessorTest - extends NumberSchemaIndexAccessorTest +public class NumberUniqueSchemaIndexAccessorTest extends NumberSchemaIndexAccessorTest { @Override protected LayoutTestUtil createLayoutTestUtil() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringNonUniqueSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringNonUniqueSchemaIndexAccessorTest.java index 5e1f0902daad3..94cf9efd1ef47 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringNonUniqueSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringNonUniqueSchemaIndexAccessorTest.java @@ -19,7 +19,7 @@ */ package org.neo4j.kernel.impl.index.schema; -public class StringNonUniqueSchemaIndexAccessorTest extends StringSchemaIndexAccessorTest +public class StringNonUniqueSchemaIndexAccessorTest extends StringSchemaIndexAccessorTest { @Override protected LayoutTestUtil createLayoutTestUtil() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessorTest.java index db434d2bf9cf8..884fb830bf9bc 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringSchemaIndexAccessorTest.java @@ -24,13 +24,12 @@ import static org.neo4j.index.internal.gbptree.RecoveryCleanupWorkCollector.IMMEDIATE; -public abstract class StringSchemaIndexAccessorTest - extends NativeSchemaIndexAccessorTest +public abstract class StringSchemaIndexAccessorTest extends NativeSchemaIndexAccessorTest { @Override - NativeSchemaIndexAccessor makeAccessorWithSamplingConfig( IndexSamplingConfig samplingConfig ) throws IOException + StringSchemaIndexAccessor makeAccessorWithSamplingConfig( IndexSamplingConfig samplingConfig ) throws IOException { - return new StringSchemaIndexAccessor<>( pageCache, fs, indexFile, layout, IMMEDIATE, monitor, indexDescriptor, indexId, samplingConfig ); + return new StringSchemaIndexAccessor( pageCache, fs, indexFile, layout, IMMEDIATE, monitor, indexDescriptor, indexId, samplingConfig ); } // TODO test reader unsupported index order diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringUniqueSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringUniqueSchemaIndexAccessorTest.java index 1fc946f65ede3..506e809d7a07f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringUniqueSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/StringUniqueSchemaIndexAccessorTest.java @@ -19,7 +19,7 @@ */ package org.neo4j.kernel.impl.index.schema; -public class StringUniqueSchemaIndexAccessorTest extends StringSchemaIndexAccessorTest +public class StringUniqueSchemaIndexAccessorTest extends StringSchemaIndexAccessorTest { @Override protected LayoutTestUtil createLayoutTestUtil()