From 17af4bf2311557d376780b2166bbdc4dc30df82f Mon Sep 17 00:00:00 2001 From: Anton Klaren Date: Wed, 21 Mar 2018 16:36:31 +0100 Subject: [PATCH] NativeSchemaKey is generic --- .../schema/ConflictDetectingValueMerger.java | 2 +- .../FilteringNativeHitIndexProgressor.java | 2 +- .../schema/FilteringNativeHitIterator.java | 2 +- .../schema/FullScanNonUniqueIndexSampler.java | 2 +- .../index/schema/NativeAllEntriesReader.java | 2 +- .../schema/NativeHitIndexProgressor.java | 2 +- .../impl/index/schema/NativeHitIterator.java | 2 +- .../index/schema/NativeIndexProvider.java | 2 +- .../impl/index/schema/NativeSchemaIndex.java | 2 +- .../schema/NativeSchemaIndexAccessor.java | 4 ++-- .../schema/NativeSchemaIndexPopulator.java | 10 ++++---- .../index/schema/NativeSchemaIndexReader.java | 2 +- .../schema/NativeSchemaIndexUpdater.java | 10 ++++---- .../impl/index/schema/NativeSchemaKey.java | 2 +- .../index/schema/NumberSchemaIndexReader.java | 10 ++++---- .../impl/index/schema/SchemaLayout.java | 2 +- .../schema/SpatialHitIndexProgressor.java | 2 +- .../index/schema/SpatialIndexAccessor.java | 2 +- .../index/schema/SpatialIndexPartReader.java | 24 +++++++++---------- .../impl/index/schema/SpatialIndexReader.java | 8 +++---- .../index/schema/TemporalIndexAccessor.java | 8 +++---- .../impl/index/schema/TemporalIndexFiles.java | 2 +- .../index/schema/TemporalIndexPartReader.java | 2 +- .../index/schema/TemporalIndexPopulator.java | 6 ++--- .../impl/index/schema/LayoutTestUtil.java | 2 +- ...tiveNonUniqueSchemaIndexPopulatorTest.java | 3 +-- .../schema/NativeSchemaIndexAccessorTest.java | 2 +- .../NativeSchemaIndexPopulatorTest.java | 2 +- .../schema/NativeSchemaIndexTestUtil.java | 9 ++++--- .../NativeUniqueSchemaIndexPopulatorTest.java | 5 ++-- 30 files changed, 66 insertions(+), 69 deletions(-) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/ConflictDetectingValueMerger.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/ConflictDetectingValueMerger.java index 28342ac30aa2..82e5a871f404 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/ConflictDetectingValueMerger.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/ConflictDetectingValueMerger.java @@ -34,7 +34,7 @@ * * @param type of values being merged. */ -class ConflictDetectingValueMerger implements ValueMerger +class ConflictDetectingValueMerger, VALUE extends NativeSchemaValue> implements ValueMerger { private final boolean compareEntityIds; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIndexProgressor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIndexProgressor.java index 1ce8af9ee846..3485bd7af993 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIndexProgressor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIndexProgressor.java @@ -27,7 +27,7 @@ import org.neo4j.internal.kernel.api.IndexQuery; import org.neo4j.values.storable.Value; -class FilteringNativeHitIndexProgressor extends NativeHitIndexProgressor +class FilteringNativeHitIndexProgressor, VALUE extends NativeSchemaValue> extends NativeHitIndexProgressor { private final IndexQuery[] filter; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIterator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIterator.java index eab9bbee95d9..8be50b2c29fb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIterator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FilteringNativeHitIterator.java @@ -27,7 +27,7 @@ import org.neo4j.internal.kernel.api.IndexQuery; import org.neo4j.values.storable.Value; -class FilteringNativeHitIterator extends NativeHitIterator +class FilteringNativeHitIterator, VALUE extends NativeSchemaValue> extends NativeHitIterator { private final IndexQuery[] filters; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FullScanNonUniqueIndexSampler.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FullScanNonUniqueIndexSampler.java index 224068522209..ba3272eb82fa 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FullScanNonUniqueIndexSampler.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/FullScanNonUniqueIndexSampler.java @@ -37,7 +37,7 @@ * @param type of keys in tree. * @param type of values in tree. */ -class FullScanNonUniqueIndexSampler +class FullScanNonUniqueIndexSampler, VALUE extends NativeSchemaValue> extends NonUniqueIndexSampler.Adapter { private final GBPTree gbpTree; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeAllEntriesReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeAllEntriesReader.java index edfd36ceb9d4..09145f4c237c 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeAllEntriesReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeAllEntriesReader.java @@ -30,7 +30,7 @@ import org.neo4j.index.internal.gbptree.Hit; import org.neo4j.index.internal.gbptree.Layout; -public class NativeAllEntriesReader implements BoundedIterable +public class NativeAllEntriesReader,VALUE extends NativeSchemaValue> implements BoundedIterable { private final GBPTree tree; private final Layout layout; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIndexProgressor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIndexProgressor.java index eb6276776492..c1d8b566b606 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIndexProgressor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIndexProgressor.java @@ -28,7 +28,7 @@ import org.neo4j.storageengine.api.schema.IndexProgressor; import org.neo4j.values.storable.Value; -public class NativeHitIndexProgressor implements IndexProgressor +public class NativeHitIndexProgressor, VALUE extends NativeSchemaValue> implements IndexProgressor { final RawCursor,IOException> seeker; final NodeValueClient client; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIterator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIterator.java index ee5ed5632f9e..f6d4c89861a1 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIterator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeHitIterator.java @@ -36,7 +36,7 @@ * @param type of {@link NumberSchemaKey}. * @param type of {@link NativeSchemaValue}. */ -public class NativeHitIterator +public class NativeHitIterator, VALUE extends NativeSchemaValue> extends PrimitiveLongCollections.PrimitiveLongBaseIterator implements PrimitiveLongResourceIterator { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeIndexProvider.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeIndexProvider.java index 62dbfe194548..ee8618c0c643 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeIndexProvider.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeIndexProvider.java @@ -43,7 +43,7 @@ * @param type of {@link NativeSchemaKey} * @param type of {@link NativeSchemaValue} */ -abstract class NativeIndexProvider extends IndexProvider +abstract class NativeIndexProvider,VALUE extends NativeSchemaValue> extends IndexProvider { protected final PageCache pageCache; protected final FileSystemAbstraction fs; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndex.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndex.java index 239a7ebe3719..a9f0e64f0e86 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndex.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndex.java @@ -38,7 +38,7 @@ import static org.neo4j.helpers.collection.MapUtil.map; import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_READER; -class NativeSchemaIndex +class NativeSchemaIndex, VALUE extends NativeSchemaValue> { final PageCache pageCache; final File storeFile; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessor.java index 1be19e1290f3..5abf2c71e270 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessor.java @@ -31,8 +31,8 @@ import org.neo4j.io.pagecache.IOLimiter; import org.neo4j.io.pagecache.PageCache; import org.neo4j.kernel.api.index.IndexAccessor; -import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.index.IndexProvider; +import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor; import org.neo4j.kernel.impl.api.index.IndexUpdateMode; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; @@ -42,7 +42,7 @@ import static org.neo4j.helpers.collection.Iterators.iterator; import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_WRITER; -public abstract class NativeSchemaIndexAccessor +public abstract class NativeSchemaIndexAccessor, VALUE extends NativeSchemaValue> extends NativeSchemaIndex implements IndexAccessor { private final NativeSchemaIndexUpdater singleUpdater; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulator.java index d4b782b0081b..2096f93adb22 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulator.java @@ -38,9 +38,9 @@ import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException; import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.index.IndexPopulator; +import org.neo4j.kernel.api.index.IndexProvider; import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.PropertyAccessor; -import org.neo4j.kernel.api.index.IndexProvider; import org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor; import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; @@ -59,7 +59,7 @@ * @param type of {@link NativeSchemaKey}. * @param type of {@link NativeSchemaValue}. */ -abstract class NativeSchemaIndexPopulator +abstract class NativeSchemaIndexPopulator, VALUE extends NativeSchemaValue> extends NativeSchemaIndex implements IndexPopulator { static final byte BYTE_FAILED = 0; @@ -297,7 +297,7 @@ private void markTreeAsOnline() throws IOException tree.checkpoint( IOLimiter.unlimited(), pc -> pc.putByte( BYTE_ONLINE ) ); } - static class IndexUpdateApply + static class IndexUpdateApply, VALUE extends NativeSchemaValue> { private final GBPTree tree; private final KEY treeKey; @@ -324,7 +324,7 @@ void process( Iterable> indexEntryUpdates ) throws } } - static class IndexUpdateWork + static class IndexUpdateWork, VALUE extends NativeSchemaValue> implements Work,IndexUpdateWork> { private final Collection> updates; @@ -335,7 +335,7 @@ static class IndexUpdateWork combine( IndexUpdateWork work ) + public IndexUpdateWork combine( IndexUpdateWork work ) { ArrayList> combined = new ArrayList<>( updates ); combined.addAll( work.updates ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java index ca241cec819f..711abdf82453 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexReader.java @@ -40,7 +40,7 @@ import org.neo4j.storageengine.api.schema.IndexSampler; import org.neo4j.values.storable.Value; -abstract class NativeSchemaIndexReader +abstract class NativeSchemaIndexReader, VALUE extends NativeSchemaValue> implements IndexReader { private final GBPTree tree; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexUpdater.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexUpdater.java index 98f2a9be0fd4..d51b35639dd0 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexUpdater.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexUpdater.java @@ -26,7 +26,7 @@ import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.index.IndexUpdater; -class NativeSchemaIndexUpdater +class NativeSchemaIndexUpdater, VALUE extends NativeSchemaValue> implements IndexUpdater { private final KEY treeKey; @@ -76,7 +76,7 @@ private void assertOpen() } } - static void processUpdate( KEY treeKey, VALUE treeValue, + static , VALUE extends NativeSchemaValue> void processUpdate( KEY treeKey, VALUE treeValue, IndexEntryUpdate update, Writer writer, ConflictDetectingValueMerger conflictDetectingValueMerger ) throws IOException, IndexEntryConflictException { @@ -96,7 +96,7 @@ static void proce } } - private static void processRemove( KEY treeKey, + private static , VALUE extends NativeSchemaValue> void processRemove( KEY treeKey, IndexEntryUpdate update, Writer writer ) throws IOException { // todo Do we need to verify that we actually removed something at all? @@ -105,7 +105,7 @@ private static vo writer.remove( treeKey ); } - private static void processChange( KEY treeKey, VALUE treeValue, + private static , VALUE extends NativeSchemaValue> void processChange( KEY treeKey, VALUE treeValue, IndexEntryUpdate update, Writer writer, ConflictDetectingValueMerger conflictDetectingValueMerger ) throws IOException, IndexEntryConflictException @@ -121,7 +121,7 @@ private static vo conflictDetectingValueMerger.checkConflict( update.values() ); } - static void processAdd( KEY treeKey, VALUE treeValue, + static , VALUE extends NativeSchemaValue> void processAdd( KEY treeKey, VALUE treeValue, IndexEntryUpdate update, Writer writer, ConflictDetectingValueMerger conflictDetectingValueMerger ) throws IOException, IndexEntryConflictException diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaKey.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaKey.java index c899b6e2779a..1f5f1dcd07ca 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaKey.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NativeSchemaKey.java @@ -28,7 +28,7 @@ * This is the abstraction of what NativeSchemaIndex with friends need from a schema key. * Note that it says nothing about how keys are compared, serialized, read, written, etc. That is the job of Layout. */ -abstract class NativeSchemaKey extends ValueWriter.Adapter +abstract class NativeSchemaKey> extends ValueWriter.Adapter { static final boolean DEFAULT_COMPARE_ID = true; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexReader.java index f03cdf465709..a644d230edcb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/NumberSchemaIndexReader.java @@ -30,9 +30,9 @@ import org.neo4j.values.storable.Value; import org.neo4j.values.storable.Values; -class NumberSchemaIndexReader extends NativeSchemaIndexReader +class NumberSchemaIndexReader extends NativeSchemaIndexReader { - NumberSchemaIndexReader( GBPTree tree, Layout layout, IndexSamplingConfig samplingConfig, SchemaIndexDescriptor descriptor ) + NumberSchemaIndexReader( GBPTree tree, Layout layout, IndexSamplingConfig samplingConfig, SchemaIndexDescriptor descriptor ) { super( tree, layout, samplingConfig, descriptor ); } @@ -49,7 +49,7 @@ void validateQuery( IndexOrder indexOrder, IndexQuery[] predicates ) } @Override - boolean initializeRangeForQuery( KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] predicates ) + boolean initializeRangeForQuery( NumberSchemaKey treeKeyFrom, NumberSchemaKey treeKeyTo, IndexQuery[] predicates ) { IndexQuery predicate = predicates[0]; switch ( predicate.type() ) @@ -74,7 +74,7 @@ boolean initializeRangeForQuery( KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] pr return false; } - private void initToForRange( RangePredicate rangePredicate, KEY treeKeyTo ) + private void initToForRange( RangePredicate rangePredicate, NumberSchemaKey treeKeyTo ) { Value toValue = rangePredicate.toValue(); if ( toValue == Values.NO_VALUE ) @@ -88,7 +88,7 @@ private void initToForRange( RangePredicate rangePredicate, KEY treeKeyTo ) } } - private void initFromForRange( RangePredicate rangePredicate, KEY treeKeyFrom ) + private void initFromForRange( RangePredicate rangePredicate, NumberSchemaKey treeKeyFrom ) { Value fromValue = rangePredicate.fromValue(); if ( fromValue == Values.NO_VALUE ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SchemaLayout.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SchemaLayout.java index 7a2b73fd64e6..5da4f8dbeb6d 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SchemaLayout.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SchemaLayout.java @@ -22,7 +22,7 @@ import org.neo4j.index.internal.gbptree.Layout; import org.neo4j.io.pagecache.PageCursor; -abstract class SchemaLayout extends Layout.Adapter +abstract class SchemaLayout> extends Layout.Adapter { private final long identifier; private final int majorVersion; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialHitIndexProgressor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialHitIndexProgressor.java index 378508599a75..2e9b41e1c30e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialHitIndexProgressor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialHitIndexProgressor.java @@ -26,7 +26,7 @@ import org.neo4j.index.internal.gbptree.Hit; import org.neo4j.values.storable.Value; -class SpatialHitIndexProgressor extends NativeHitIndexProgressor +class SpatialHitIndexProgressor, VALUE extends NativeSchemaValue> extends NativeHitIndexProgressor { SpatialHitIndexProgressor( RawCursor,IOException> seeker, NodeValueClient client, Collection,IOException>> toRemoveFromOnClose ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexAccessor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexAccessor.java index 54d400352f90..adde5fdb4e22 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexAccessor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexAccessor.java @@ -204,7 +204,7 @@ static class PartAccessor extends NativeSchemaIndexAccessor newReader() + public SpatialIndexPartReader newReader() { return new SpatialIndexPartReader<>( tree, layout, samplingConfig, descriptor, searchConfiguration ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexPartReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexPartReader.java index 529c067b21b2..94e6abcc5d04 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexPartReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexPartReader.java @@ -44,12 +44,12 @@ import static java.lang.String.format; -public class SpatialIndexPartReader extends NativeSchemaIndexReader +public class SpatialIndexPartReader extends NativeSchemaIndexReader { private final SpatialLayout spatial; private final SpaceFillingCurveConfiguration configuration; - SpatialIndexPartReader( GBPTree tree, Layout layout, IndexSamplingConfig samplingConfig, SchemaIndexDescriptor descriptor, + SpatialIndexPartReader( GBPTree tree, Layout layout, IndexSamplingConfig samplingConfig, SchemaIndexDescriptor descriptor, SpaceFillingCurveConfiguration configuration ) { super( tree, layout, samplingConfig, descriptor ); @@ -74,7 +74,7 @@ void validateQuery( IndexOrder indexOrder, IndexQuery[] predicates ) } @Override - boolean initializeRangeForQuery( KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] predicates ) + boolean initializeRangeForQuery( SpatialSchemaKey treeKeyFrom, SpatialSchemaKey treeKeyTo, IndexQuery[] predicates ) { throw new UnsupportedOperationException( "Cannot initialize 1D range in multidimensional spatial index reader" ); } @@ -116,8 +116,8 @@ public void query( IndexProgressor.NodeValueClient cursor, IndexOrder indexOrder private void startSeekForExists( IndexProgressor.NodeValueClient client, IndexQuery... predicates ) { - KEY treeKeyFrom = layout.newKey(); - KEY treeKeyTo = layout.newKey(); + SpatialSchemaKey treeKeyFrom = layout.newKey(); + SpatialSchemaKey treeKeyTo = layout.newKey(); treeKeyFrom.initAsLowest(); treeKeyTo.initAsHighest(); startSeekForInitializedRange( client, treeKeyFrom, treeKeyTo, predicates, false ); @@ -125,8 +125,8 @@ private void startSeekForExists( IndexProgressor.NodeValueClient client, IndexQu private void startSeekForExact( IndexProgressor.NodeValueClient client, Value value, IndexQuery... predicates ) { - KEY treeKeyFrom = layout.newKey(); - KEY treeKeyTo = layout.newKey(); + SpatialSchemaKey treeKeyFrom = layout.newKey(); + SpatialSchemaKey treeKeyTo = layout.newKey(); treeKeyFrom.from( Long.MIN_VALUE, value ); treeKeyTo.from( Long.MAX_VALUE, value ); startSeekForInitializedRange( client, treeKeyFrom, treeKeyTo, predicates, false ); @@ -146,11 +146,11 @@ private void startSeekForRange( IndexProgressor.NodeValueClient client, Geometry List ranges = curve.getTilesIntersectingEnvelope( envelope, configuration ); for ( SpaceFillingCurve.LongRange range : ranges ) { - KEY treeKeyFrom = layout.newKey(); - KEY treeKeyTo = layout.newKey(); + SpatialSchemaKey treeKeyFrom = layout.newKey(); + SpatialSchemaKey treeKeyTo = layout.newKey(); treeKeyFrom.fromDerivedValue( Long.MIN_VALUE, range.min ); treeKeyTo.fromDerivedValue( Long.MAX_VALUE, range.max + 1 ); - RawCursor,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo ); + RawCursor,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo ); IndexProgressor hitProgressor = new SpatialHitIndexProgressor<>( seeker, client, openSeekers ); multiProgressor.initialize( descriptor, hitProgressor, query ); } @@ -167,7 +167,7 @@ private void startSeekForRange( IndexProgressor.NodeValueClient client, Geometry } @Override - void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, KEY treeKeyFrom, KEY treeKeyTo, IndexQuery[] query, boolean needFilter ) + void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, SpatialSchemaKey treeKeyFrom, SpatialSchemaKey treeKeyTo, IndexQuery[] query, boolean needFilter ) { if ( layout.compare( treeKeyFrom, treeKeyTo ) > 0 ) { @@ -176,7 +176,7 @@ void startSeekForInitializedRange( IndexProgressor.NodeValueClient client, KEY t } try { - RawCursor,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo ); + RawCursor,IOException> seeker = makeIndexSeeker( treeKeyFrom, treeKeyTo ); IndexProgressor hitProgressor = new SpatialHitIndexProgressor<>( seeker, client, openSeekers ); client.initialize( descriptor, hitProgressor, query ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexReader.java index 5920b1fdb7f9..3171b0168383 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/SpatialIndexReader.java @@ -39,7 +39,7 @@ import static org.neo4j.kernel.impl.index.schema.fusion.FusionIndexBase.forAll; -class SpatialIndexReader extends SpatialIndexCache,IOException> implements IndexReader +class SpatialIndexReader extends SpatialIndexCache,IOException> implements IndexReader { private final SchemaIndexDescriptor descriptor; @@ -112,7 +112,7 @@ else if ( predicate instanceof IndexQuery.GeometryRangePredicate ) { throw new IllegalArgumentException( "Wrong type of predicate, couldn't get CoordinateReferenceSystem" ); } - SpatialIndexPartReader part = uncheckedSelect( crs ); + SpatialIndexPartReader part = uncheckedSelect( crs ); if ( part != null ) { part.query( cursor, indexOrder, predicates ); @@ -144,7 +144,7 @@ private boolean validPredicate( IndexQuery predicate ) * To create TemporalIndexPartReaders on demand, the PartFactory maintains a reference to the parent TemporalIndexAccessor. * The creation of a part reader can then be delegated to the correct PartAccessor. */ - static class PartFactory implements Factory,IOException> + static class PartFactory implements Factory,IOException> { private final SpatialIndexAccessor accessor; @@ -154,7 +154,7 @@ static class PartFactory implements Factory newSpatial( CoordinateReferenceSystem crs ) throws IOException + public SpatialIndexPartReader newSpatial( CoordinateReferenceSystem crs ) throws IOException { return accessor.selectOrElse( crs, SpatialIndexAccessor.PartAccessor::newReader, null ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexAccessor.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexAccessor.java index f10be2ea1aff..b0ac2a5197a3 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexAccessor.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexAccessor.java @@ -36,9 +36,9 @@ import org.neo4j.io.pagecache.PageCache; import org.neo4j.kernel.api.index.IndexAccessor; import org.neo4j.kernel.api.index.IndexPopulator; +import org.neo4j.kernel.api.index.IndexProvider; import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.PropertyAccessor; -import org.neo4j.kernel.api.index.IndexProvider; import org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor; import org.neo4j.kernel.impl.api.index.IndexUpdateMode; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; @@ -169,7 +169,7 @@ public boolean isDirty() return Iterators.stream( iterator() ).anyMatch( NativeSchemaIndexAccessor::isDirty ); } - static class PartAccessor extends NativeSchemaIndexAccessor + static class PartAccessor> extends NativeSchemaIndexAccessor { private final Layout layout; private final SchemaIndexDescriptor descriptor; @@ -263,7 +263,7 @@ public PartAccessor newDuration() throws IOException return createPartAccessor( temporalIndexFiles.duration() ); } - private PartAccessor createPartAccessor( TemporalIndexFiles.FileLayout fileLayout ) throws IOException + private > PartAccessor createPartAccessor( TemporalIndexFiles.FileLayout fileLayout ) throws IOException { if ( !fs.fileExists( fileLayout.indexFile ) ) { @@ -272,7 +272,7 @@ private PartAccessor createPartAccessor( Temp return new PartAccessor<>( pageCache, fs, fileLayout, recoveryCleanupWorkCollector, monitor, descriptor, indexId, samplingConfig ); } - private void createEmptyIndex( TemporalIndexFiles.FileLayout fileLayout ) throws IOException + private > void createEmptyIndex( TemporalIndexFiles.FileLayout fileLayout ) throws IOException { IndexPopulator populator = new TemporalIndexPopulator.PartPopulator<>( pageCache, fs, fileLayout, monitor, descriptor, indexId, samplingConfig ); populator.create(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexFiles.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexFiles.java index 2354dfdc0224..37b75af584cb 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexFiles.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexFiles.java @@ -116,7 +116,7 @@ private boolean exists( FileLayout fileLayout ) // .... we will add more explicit accessor methods later - static class FileLayout + static class FileLayout> { final File indexFile; final Layout layout; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPartReader.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPartReader.java index f942b7ea8cfb..3b908e93e1ac 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPartReader.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPartReader.java @@ -29,7 +29,7 @@ import org.neo4j.values.storable.Value; import org.neo4j.values.storable.Values; -class TemporalIndexPartReader extends NativeSchemaIndexReader +class TemporalIndexPartReader> extends NativeSchemaIndexReader { TemporalIndexPartReader( GBPTree tree, Layout layout, diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPopulator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPopulator.java index 94260dc13786..c280513e22fd 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPopulator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/schema/TemporalIndexPopulator.java @@ -29,9 +29,9 @@ import org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException; import org.neo4j.kernel.api.index.IndexEntryUpdate; import org.neo4j.kernel.api.index.IndexPopulator; +import org.neo4j.kernel.api.index.IndexProvider; import org.neo4j.kernel.api.index.IndexUpdater; import org.neo4j.kernel.api.index.PropertyAccessor; -import org.neo4j.kernel.api.index.IndexProvider; import org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor; import org.neo4j.kernel.impl.api.index.sampling.DefaultNonUniqueIndexSampler; import org.neo4j.kernel.impl.api.index.sampling.IndexSamplingConfig; @@ -173,7 +173,7 @@ IndexSample sampleResult() } } - static class PartPopulator extends NativeSchemaIndexPopulator + static class PartPopulator> extends NativeSchemaIndexPopulator { List> updates = new ArrayList<>(); @@ -277,7 +277,7 @@ public PartPopulator newDuration() throws IOException return create( temporalIndexFiles.duration() ); } - private PartPopulator create( TemporalIndexFiles.FileLayout fileLayout ) throws IOException + private > PartPopulator create( TemporalIndexFiles.FileLayout fileLayout ) throws IOException { PartPopulator populator = new PartPopulator<>( pageCache, fs, fileLayout, monitor, descriptor, indexId, samplingConfig ); populator.create(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/LayoutTestUtil.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/LayoutTestUtil.java index 24cd64d9f43e..0d510fdd8677 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/LayoutTestUtil.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/LayoutTestUtil.java @@ -38,7 +38,7 @@ import org.neo4j.values.storable.Value; import org.neo4j.values.storable.Values; -abstract class LayoutTestUtil +abstract class LayoutTestUtil, VALUE extends NativeSchemaValue> { private static final Comparator> UPDATE_COMPARATOR = ( u1, u2 ) -> Values.COMPARATOR.compare( u1.values()[0], u2.values()[0] ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeNonUniqueSchemaIndexPopulatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeNonUniqueSchemaIndexPopulatorTest.java index 6ff387ed5dfa..5612f35523b0 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeNonUniqueSchemaIndexPopulatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeNonUniqueSchemaIndexPopulatorTest.java @@ -31,10 +31,9 @@ import org.neo4j.values.storable.Values; import static org.junit.Assert.assertEquals; - import static org.neo4j.kernel.impl.index.schema.LayoutTestUtil.countUniqueValues; -public abstract class NativeNonUniqueSchemaIndexPopulatorTest +public abstract class NativeNonUniqueSchemaIndexPopulatorTest,VALUE extends NativeSchemaValue> extends NativeSchemaIndexPopulatorTest { @Test diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessorTest.java index 7849d315fdb5..64e4e90a6d4c 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexAccessorTest.java @@ -82,7 +82,7 @@ *
  • {@link NumberSchemaIndexReader}
  • * */ -public abstract class NativeSchemaIndexAccessorTest +public abstract class NativeSchemaIndexAccessorTest, VALUE extends NativeSchemaValue> extends NativeSchemaIndexTestUtil { NativeSchemaIndexAccessor accessor; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulatorTest.java index 1de8a6e6b537..8a51ac1396d3 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexPopulatorTest.java @@ -62,7 +62,7 @@ import static org.neo4j.kernel.impl.index.schema.NativeSchemaIndexPopulator.BYTE_FAILED; import static org.neo4j.kernel.impl.index.schema.NativeSchemaIndexPopulator.BYTE_ONLINE; -public abstract class NativeSchemaIndexPopulatorTest +public abstract class NativeSchemaIndexPopulatorTest,VALUE extends NativeSchemaValue> extends NativeSchemaIndexTestUtil { private static final int LARGE_AMOUNT_OF_UPDATES = 1_000; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexTestUtil.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexTestUtil.java index 8ac242d857e3..48d5272ad6d1 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexTestUtil.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeSchemaIndexTestUtil.java @@ -43,7 +43,6 @@ import org.neo4j.test.rule.RandomRule; import org.neo4j.test.rule.TestDirectory; import org.neo4j.test.rule.fs.DefaultFileSystemRule; -import org.neo4j.test.rule.fs.FileSystemRule; import static java.lang.String.format; import static org.junit.Assert.assertEquals; @@ -54,11 +53,11 @@ import static org.neo4j.index.internal.gbptree.GBPTree.NO_HEADER_WRITER; import static org.neo4j.test.rule.PageCacheRule.config; -public abstract class NativeSchemaIndexTestUtil +public abstract class NativeSchemaIndexTestUtil,VALUE extends NativeSchemaValue> { static final long NON_EXISTENT_ENTITY_ID = 1_000_000_000; - final FileSystemRule fs = new DefaultFileSystemRule(); + final DefaultFileSystemRule fs = new DefaultFileSystemRule(); private final TestDirectory directory = TestDirectory.testDirectory( getClass(), fs.get() ); private final PageCacheRule pageCacheRule = new PageCacheRule( config().withAccessChecks( true ) ); protected final RandomRule random = new RandomRule(); @@ -158,7 +157,7 @@ private Hit deepCopy( Hit from ) VALUE intoValue = layout.newValue(); layout.copyKey( from.key(), intoKey ); copyValue( from.value(), intoValue ); - return new SimpleHit( intoKey, intoValue ); + return new SimpleHit<>( intoKey, intoValue ); } private Hit[] convertToHits( IndexEntryUpdate[] updates, @@ -178,7 +177,7 @@ private Hit[] convertToHits( IndexEntryUpdate[ private Hit hit( final KEY key, final VALUE value ) { - return new SimpleHit( key, value ); + return new SimpleHit<>( key, value ); } void assertFilePresent() diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeUniqueSchemaIndexPopulatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeUniqueSchemaIndexPopulatorTest.java index 269890ca0b35..07c398e932f6 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeUniqueSchemaIndexPopulatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/index/schema/NativeUniqueSchemaIndexPopulatorTest.java @@ -30,13 +30,12 @@ import org.neo4j.kernel.api.schema.index.SchemaIndexDescriptor; import org.neo4j.storageengine.api.schema.IndexSample; +import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import static java.util.Arrays.asList; - -public abstract class NativeUniqueSchemaIndexPopulatorTest +public abstract class NativeUniqueSchemaIndexPopulatorTest,VALUE extends NativeSchemaValue> extends NativeSchemaIndexPopulatorTest { @Test