Skip to content

Commit

Permalink
Documented and renamed lookup method in IndexProviderMap
Browse files Browse the repository at this point in the history
Because it makes so much more sense.
  • Loading branch information
tinwelint authored and MishaDemianenko committed Jun 9, 2018
1 parent 4e115df commit 455ad61
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 24 deletions.
Expand Up @@ -97,7 +97,7 @@ public IndexAccessors( IndexProviderMap providers,

private IndexProvider provider( IndexProviderMap providers, IndexRule indexRule )
{
return providers.apply( indexRule.getProviderDescriptor() );
return providers.lookup( indexRule.getProviderDescriptor() );
}

public Collection<IndexRule> notOnlineRules()
Expand Down
Expand Up @@ -455,7 +455,7 @@ public void shouldNotReportIndexInconsistenciesIfIndexIsFailed() throws Exceptio
{
IndexRule rule = rules.next();
IndexSamplingConfig samplingConfig = new IndexSamplingConfig( Config.defaults() );
IndexPopulator populator = storeAccess.indexes().apply( rule.getProviderDescriptor() )
IndexPopulator populator = storeAccess.indexes().lookup( rule.getProviderDescriptor() )
.getPopulator( rule.getId(), rule.getIndexDescriptor(), samplingConfig );
populator.markAsFailed( "Oh noes! I was a shiny index and then I was failed" );
populator.close( false );
Expand Down Expand Up @@ -571,7 +571,7 @@ public void shouldReportNodesThatAreNotIndexed() throws Exception
IndexRule indexRule = indexRuleIterator.next();
SchemaIndexDescriptor descriptor = indexRule.getIndexDescriptor();
IndexAccessor accessor = fixture.directStoreAccess().indexes().
apply( indexRule.getProviderDescriptor() ).getOnlineAccessor(
lookup( indexRule.getProviderDescriptor() ).getOnlineAccessor(
indexRule.getId(), descriptor, samplingConfig );
try ( IndexUpdater updater = accessor.newUpdater( IndexUpdateMode.ONLINE ) )
{
Expand Down Expand Up @@ -606,7 +606,7 @@ public void shouldReportNodesWithDuplicatePropertyValueInUniqueIndex() throws Ex
while ( indexRuleIterator.hasNext() )
{
IndexRule indexRule = indexRuleIterator.next();
IndexAccessor accessor = fixture.directStoreAccess().indexes().apply( indexRule.getProviderDescriptor() )
IndexAccessor accessor = fixture.directStoreAccess().indexes().lookup( indexRule.getProviderDescriptor() )
.getOnlineAccessor( indexRule.getId(), indexRule.getIndexDescriptor(), samplingConfig );
IndexUpdater updater = accessor.newUpdater( IndexUpdateMode.ONLINE );
updater.process( IndexEntryUpdate.add( 42, indexRule.getIndexDescriptor().schema(), values( indexRule ) ) );
Expand Down
Expand Up @@ -20,18 +20,44 @@
package org.neo4j.kernel.impl.api.index;

import java.util.function.Consumer;
import java.util.function.Function;

import org.neo4j.kernel.api.index.IndexProvider;

public interface IndexProviderMap extends Function<IndexProvider.Descriptor,IndexProvider>
/**
* Contains mapping from {@link IndexProvider.Descriptor} or provider name to {@link IndexProvider}.
*/
public interface IndexProviderMap
{
@Override
IndexProvider apply( IndexProvider.Descriptor providerDescriptor ) throws IndexProviderNotFoundException;
/**
* Looks up and returns the {@link IndexProvider} for the given {@link IndexProvider.Descriptor}.
*
* @param providerDescriptor the descriptor identifying the {@link IndexProvider}.
* @return the {@link IndexProvider} with the given {@link IndexProvider.Descriptor}.
* @throws IndexProviderNotFoundException if no such {@link IndexProvider} was found.
*/
IndexProvider lookup( IndexProvider.Descriptor providerDescriptor ) throws IndexProviderNotFoundException;

IndexProvider apply( String providerDescriptorName ) throws IndexProviderNotFoundException;
/**
* Looks up and returns the {@link IndexProvider} for the given index provider name. The name is what
* an {@link IndexProvider.Descriptor#name()} call would return.
*
* @param providerDescriptorName the descriptor name identifying the {@link IndexProvider}.
* @return the {@link IndexProvider} with the given name.
* @throws IndexProviderNotFoundException if no such {@link IndexProvider} was found.
*/
IndexProvider lookup( String providerDescriptorName ) throws IndexProviderNotFoundException;

/**
* There's always a default {@link IndexProvider}, this method returns it.
*
* @return the default index provider for this instance.
*/
IndexProvider getDefaultProvider();

/**
* Visits all the {@link IndexProvider} with the visitor.
*
* @param visitor {@link Consumer} visiting all the {@link IndexProvider index providers} in this map.
*/
void accept( Consumer<IndexProvider> visitor );
}
Expand Up @@ -164,21 +164,21 @@ private String indexUserDescription( final SchemaIndexDescriptor descriptor,
private IndexPopulator populatorFromProvider( IndexProvider.Descriptor providerDescriptor, long ruleId,
SchemaIndexDescriptor descriptor, IndexSamplingConfig samplingConfig )
{
IndexProvider indexProvider = providerMap.apply( providerDescriptor );
IndexProvider indexProvider = providerMap.lookup( providerDescriptor );
return indexProvider.getPopulator( ruleId, descriptor, samplingConfig );
}

private IndexAccessor onlineAccessorFromProvider( IndexProvider.Descriptor providerDescriptor,
long ruleId, SchemaIndexDescriptor descriptor,
IndexSamplingConfig samplingConfig ) throws IOException
{
IndexProvider indexProvider = providerMap.apply( providerDescriptor );
IndexProvider indexProvider = providerMap.lookup( providerDescriptor );
return indexProvider.getOnlineAccessor( ruleId, descriptor, samplingConfig );
}

private IndexMeta indexMetaFromProvider( long ruleId, IndexProvider.Descriptor providerDescriptor, SchemaIndexDescriptor schemaIndexDescriptor )
{
IndexCapability indexCapability = providerMap.apply( providerDescriptor ).getCapability( schemaIndexDescriptor );
IndexCapability indexCapability = providerMap.lookup( providerDescriptor ).getCapability( schemaIndexDescriptor );
return new IndexMeta( ruleId, schemaIndexDescriptor, providerDescriptor, indexCapability );
}
}
Expand Up @@ -207,7 +207,7 @@ public void init()
long indexId = indexRule.getId();
SchemaIndexDescriptor descriptor = indexRule.getIndexDescriptor();
IndexProvider.Descriptor providerDescriptor = indexRule.getProviderDescriptor();
IndexProvider provider = providerMap.apply( providerDescriptor );
IndexProvider provider = providerMap.lookup( providerDescriptor );
InternalIndexState initialState = provider.getInitialState( indexId, descriptor );
indexStates.computeIfAbsent( initialState, internalIndexState -> new ArrayList<>() )
.add( new IndexLogRecord( indexId, descriptor ) );
Expand Down
Expand Up @@ -886,7 +886,7 @@ public IndexReference indexCreate( SchemaDescriptor descriptor, String providerN
assertIndexDoesNotExist( SchemaKernelException.OperationContext.INDEX_CREATION, descriptor );

SchemaIndexDescriptor indexDescriptor = SchemaIndexDescriptorFactory.forSchema( descriptor );
IndexProvider.Descriptor providerDescriptor = providerName != null ? indexProviderMap.apply( providerName ).getProviderDescriptor() : null;
IndexProvider.Descriptor providerDescriptor = providerName != null ? indexProviderMap.lookup( providerName ).getProviderDescriptor() : null;
ktx.txState().indexRuleDoAdd( indexDescriptor, providerDescriptor );
return DefaultIndexReference.fromDescriptor( indexDescriptor );
}
Expand Down Expand Up @@ -939,7 +939,7 @@ public ConstraintDescriptor uniquePropertyConstraintCreate( SchemaDescriptor des
assertIndexDoesNotExist( SchemaKernelException.OperationContext.CONSTRAINT_CREATION, descriptor );

// Create constraints
IndexProvider.Descriptor providerDescriptor = providerName != null ? indexProviderMap.apply( providerName ).getProviderDescriptor() : null;
IndexProvider.Descriptor providerDescriptor = providerName != null ? indexProviderMap.lookup( providerName ).getProviderDescriptor() : null;
indexBackedConstraintCreate( constraint, providerDescriptor );
return constraint;
}
Expand All @@ -966,7 +966,7 @@ public ConstraintDescriptor nodeKeyConstraintCreate( LabelSchemaDescriptor descr
}

//create constraint
IndexProvider.Descriptor providerDescriptor = providerName != null ? indexProviderMap.apply( providerName ).getProviderDescriptor() : null;
IndexProvider.Descriptor providerDescriptor = providerName != null ? indexProviderMap.lookup( providerName ).getProviderDescriptor() : null;
indexBackedConstraintCreate( constraint, providerDescriptor );
return constraint;
}
Expand Down
Expand Up @@ -184,7 +184,7 @@ public void visitAddedIndex( SchemaIndexDescriptor index, IndexProvider.Descript
// No specific provider descriptor, use the default
providerDescriptor = indexProviderMap.getDefaultProvider().getProviderDescriptor();
}
else if ( indexProviderMap.apply( providerDescriptor ) == null )
else if ( indexProviderMap.lookup( providerDescriptor ) == null )
{
// A specific provider descriptor, verify that it exists
throw new IllegalArgumentException( "Specified non-existent provider '" + providerDescriptor + "' for created index " + index );
Expand Down
Expand Up @@ -73,7 +73,7 @@ public IndexProvider getDefaultProvider()
}

@Override
public IndexProvider apply( IndexProvider.Descriptor providerDescriptor )
public IndexProvider lookup( IndexProvider.Descriptor providerDescriptor )
{
IndexProvider provider = indexProviders.get( providerDescriptor );
if ( provider != null )
Expand All @@ -85,7 +85,7 @@ public IndexProvider apply( IndexProvider.Descriptor providerDescriptor )
}

@Override
public IndexProvider apply( String providerDescriptorName ) throws IndexProviderNotFoundException
public IndexProvider lookup( String providerDescriptorName ) throws IndexProviderNotFoundException
{
IndexProvider provider = indexProvidersByName.get( providerDescriptorName );
if ( provider != null )
Expand Down
Expand Up @@ -498,7 +498,7 @@ private void repopulateAllIndexes() throws IOException, IndexEntryConflictExcept
IndexRule rule = rules[i];
SchemaIndexDescriptor index = rule.getIndexDescriptor();
descriptors[i] = index.schema();
IndexPopulator populator = schemaIndexProviders.apply( rule.getProviderDescriptor() )
IndexPopulator populator = schemaIndexProviders.lookup( rule.getProviderDescriptor() )
.getPopulator( rule.getId(), index, new IndexSamplingConfig( config ) );
populator.create();
populators.add( new IndexPopulatorWithSchema( populator, index ) );
Expand Down Expand Up @@ -585,7 +585,7 @@ private IndexRule[] getIndexesNeedingPopulation()
List<IndexRule> indexesNeedingPopulation = new ArrayList<>();
for ( IndexRule rule : schemaCache.indexRules() )
{
IndexProvider provider = schemaIndexProviders.apply( rule.getProviderDescriptor() );
IndexProvider provider = schemaIndexProviders.lookup( rule.getProviderDescriptor() );
if ( provider.getInitialState( rule.getId(), rule.getIndexDescriptor() ) != InternalIndexState.FAILED )
{
indexesNeedingPopulation.add( rule );
Expand Down
Expand Up @@ -24,12 +24,11 @@
import org.neo4j.kernel.api.index.IndexProvider;
import org.neo4j.kernel.impl.api.index.IndexProviderMap;

import static java.util.Arrays.asList;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import static java.util.Arrays.asList;

public class DefaultIndexProviderMapTest
{
@Test
Expand Down Expand Up @@ -65,7 +64,7 @@ public void shouldThrowOnLookupOnUnknownProvider()
IndexProviderMap map = new DefaultIndexProviderMap( provider );
try
{
new DefaultIndexProviderMap( provider ).apply( new IndexProvider.Descriptor( "provider2", "1.2" ) );
new DefaultIndexProviderMap( provider ).lookup( new IndexProvider.Descriptor( "provider2", "1.2" ) );
fail( "Should have failed" );
}
catch ( IllegalArgumentException e )
Expand Down

0 comments on commit 455ad61

Please sign in to comment.