Skip to content

Commit

Permalink
Add missing open method, remove error prone delegate.
Browse files Browse the repository at this point in the history
Add final keywords here and there.
  • Loading branch information
MishaDemianenko committed Jul 5, 2016
1 parent 9b317dc commit fc84c16
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 44 deletions.
Expand Up @@ -33,8 +33,8 @@
public class CommunityIdTypeConfigurationProvider implements IdTypeConfigurationProvider
{

private Map<IdType,IdTypeConfiguration> typeConfigurations = new EnumMap<>(IdType.class);
private Set<IdType> typesToAllowReuse = EnumSet.of( IdType.PROPERTY, IdType.STRING_BLOCK,
private final Map<IdType,IdTypeConfiguration> typeConfigurations = new EnumMap<>(IdType.class);
private final Set<IdType> typesToAllowReuse = EnumSet.of( IdType.PROPERTY, IdType.STRING_BLOCK,
IdType.ARRAY_BLOCK, IdType.NODE_LABELS);

@Override
Expand Down
Expand Up @@ -53,8 +53,7 @@ public DefaultIdGeneratorFactory( FileSystemAbstraction fs, IdTypeConfigurationP
public IdGenerator open( File filename, IdType idType, long highId )
{
IdTypeConfiguration idTypeConfiguration = idTypeConfigurationProvider.getIdTypeConfiguration( idType );
return open( filename, idTypeConfiguration.getGrabSize(), idType,
idTypeConfiguration.allowAggressiveReuse(), highId );
return open( filename, idTypeConfiguration.getGrabSize(), idType, idTypeConfiguration.allowAggressiveReuse(), highId );
}

public IdGenerator open( File fileName, int grabSize, IdType idType, long highId )
Expand Down
Expand Up @@ -38,37 +38,4 @@ public interface IdGeneratorFactory

IdGenerator get( IdType idType );

class Delegate implements IdGeneratorFactory
{
private final IdGeneratorFactory delegate;

public Delegate( IdGeneratorFactory delegate )
{
this.delegate = delegate;
}

@Override
public IdGenerator open( File filename, IdType idType, long highId )
{
return delegate.open( filename, idType, highId );
}

@Override
public IdGenerator open( File filename, int grabSize, IdType idType, long highId )
{
return delegate.open( filename, grabSize, idType, highId );
}

@Override
public void create( File filename, long highId, boolean throwIfFileExists )
{
delegate.create( filename, highId, throwIfFileExists );
}

@Override
public IdGenerator get( IdType idType )
{
return delegate.get( idType );
}
}
}
Expand Up @@ -26,7 +26,7 @@
*/
public class IdTypeConfiguration
{
private boolean allowAggressiveReuse;
private final boolean allowAggressiveReuse;

public IdTypeConfiguration( boolean allowAggressiveReuse )
{
Expand Down
Expand Up @@ -34,17 +34,19 @@
* so that ids can be {@link IdGenerator#freeId(long) freed} at safe points in time, after all transactions
* which were active at the time of freeing, have been closed.
*/
public class BufferingIdGeneratorFactory extends IdGeneratorFactory.Delegate
public class BufferingIdGeneratorFactory implements IdGeneratorFactory
{
private final BufferingIdGenerator[/*IdType#ordinal as key*/] overriddenIdGenerators =
new BufferingIdGenerator[IdType.values().length];
private Supplier<KernelTransactionsSnapshot> boundaries;
private Predicate<KernelTransactionsSnapshot> safeThreshold;
private IdTypeConfigurationProvider idTypeConfigurationProvider;
private final IdGeneratorFactory delegate;
private final IdTypeConfigurationProvider idTypeConfigurationProvider;

public BufferingIdGeneratorFactory( IdGeneratorFactory delegate, IdTypeConfigurationProvider idTypeConfigurationProvider )
public BufferingIdGeneratorFactory( IdGeneratorFactory delegate,
IdTypeConfigurationProvider idTypeConfigurationProvider )
{
super( delegate );
this.delegate = delegate;
this.idTypeConfigurationProvider = idTypeConfigurationProvider;
}

Expand All @@ -68,10 +70,17 @@ public boolean test( KernelTransactionsSnapshot snapshot )
}
}

@Override
public IdGenerator open( File filename, IdType idType, long highId )
{
IdTypeConfiguration typeConfiguration = idTypeConfigurationProvider.getIdTypeConfiguration( idType );
return open( filename, typeConfiguration.getGrabSize(), idType, highId);
}

@Override
public IdGenerator open( File filename, int grabSize, IdType idType, long highId )
{
IdGenerator generator = super.open( filename, grabSize, idType, highId );
IdGenerator generator = delegate.open( filename, grabSize, idType, highId );
IdTypeConfiguration typeConfiguration = getIdTypeConfiguration(idType);
if ( typeConfiguration.allowAggressiveReuse() )
{
Expand Down Expand Up @@ -103,6 +112,12 @@ public IdGenerator open( File filename, int grabSize, IdType idType, long highId
return generator;
}

@Override
public void create( File filename, long highId, boolean throwIfFileExists )
{
delegate.create( filename, highId, throwIfFileExists );
}

private IdTypeConfiguration getIdTypeConfiguration( IdType idType )
{
return idTypeConfigurationProvider.getIdTypeConfiguration( idType );
Expand All @@ -112,7 +127,7 @@ private IdTypeConfiguration getIdTypeConfiguration( IdType idType )
public IdGenerator get( IdType idType )
{
IdGenerator generator = overriddenIdGenerators[idType.ordinal()];
return generator != null ? generator : super.get( idType );
return generator != null ? generator : delegate.get( idType );
}

public void maintenance()
Expand Down

0 comments on commit fc84c16

Please sign in to comment.