Class LegacyRandomSeeder
- java.lang.Object
-
- io.github.pr0methean.betterrandom.util.Looper
-
- io.github.pr0methean.betterrandom.seed.RandomSeeder
-
- io.github.pr0methean.betterrandom.seed.LegacyRandomSeeder
-
- All Implemented Interfaces:
Serializable
public final class LegacyRandomSeeder extends RandomSeeder
ARandomSeeder
that can reseed any instance ofRandom
.- Author:
- Chris Hennick
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.github.pr0methean.betterrandom.seed.RandomSeeder
RandomSeeder.DefaultThreadFactory
-
-
Field Summary
-
Fields inherited from class io.github.pr0methean.betterrandom.seed.RandomSeeder
byteArrayPrngs, DEFAULT_STOP_IF_EMPTY_FOR_NANOS, FIRST_POLL_INTERVAL, REPEAT_POLL_INTERVAL, seedGenerator, stopIfEmptyForNanos, waitForEntropyDrain, waitWhileEmpty
-
Fields inherited from class io.github.pr0methean.betterrandom.util.Looper
DEFAULT_THREAD_FACTORY, factory, lock, thread, threadLock
-
-
Constructor Summary
Constructors Constructor Description LegacyRandomSeeder(SeedGenerator seedGenerator)
Creates an instance using aRandomSeeder.DefaultThreadFactory
.LegacyRandomSeeder(SeedGenerator seedGenerator, ThreadFactory threadFactory)
Creates an instance whose thread will terminate if no PRNGs have been associated with it for 5 seconds.LegacyRandomSeeder(SeedGenerator seedGenerator, ThreadFactory threadFactory, long stopIfEmptyForNanos)
Creates an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addLegacyRandoms(Collection<? extends Random> randoms)
AddsRandom
instances.void
addLegacyRandoms(Random... randoms)
AddsRandom
instances.protected void
clear()
Removes all PRNGs from this seeder.boolean
contains(Object random)
Checks whether the given PRNG is currently registered with this RandomSeeder.protected void
initTransientFields()
Initializes the transient instance fields for this class.boolean
isEmpty()
Returns true if noRandom
instances are registered with this LegacyRandomSeeder.protected boolean
iterate()
The task that will be iterated until it returns false.void
removeLegacyRandoms(Collection<?> randoms)
Removes instances ofRandom
and/orByteArrayReseedableRandom
.void
removeLegacyRandoms(Random... randoms)
RemovesRandom
instances.String
toString()
-
Methods inherited from class io.github.pr0methean.betterrandom.seed.RandomSeeder
add, add, equals, getSeedGenerator, hashCode, remove, remove, reseedByteArrayReseedableRandoms, reseedWithLong, shutDown, stillEmptyAfterWaiting, stopIfEmpty, unregisterWithAll, waitForEntropyDrainOrUpdateFlag, wakeUp
-
-
-
-
Constructor Detail
-
LegacyRandomSeeder
public LegacyRandomSeeder(SeedGenerator seedGenerator, ThreadFactory threadFactory)
Creates an instance whose thread will terminate if no PRNGs have been associated with it for 5 seconds.- Parameters:
seedGenerator
- the seed generatorthreadFactory
- theThreadFactory
that will create this seeder's thread
-
LegacyRandomSeeder
public LegacyRandomSeeder(SeedGenerator seedGenerator, ThreadFactory threadFactory, long stopIfEmptyForNanos)
Creates an instance.- Parameters:
seedGenerator
- the seed generatorthreadFactory
- theThreadFactory
that will create this seeder's threadstopIfEmptyForNanos
- time in nanoseconds after which this thread will terminate if no PRNGs are attached
-
LegacyRandomSeeder
public LegacyRandomSeeder(SeedGenerator seedGenerator)
Creates an instance using aRandomSeeder.DefaultThreadFactory
.- Parameters:
seedGenerator
- the seed generator
-
-
Method Detail
-
initTransientFields
protected void initTransientFields()
Description copied from class:RandomSeeder
Initializes the transient instance fields for this class. Called by constructors and during deserialization.- Overrides:
initTransientFields
in classRandomSeeder
-
removeLegacyRandoms
public void removeLegacyRandoms(Random... randoms)
RemovesRandom
instances.- Parameters:
randoms
- the instances to remove
-
removeLegacyRandoms
public void removeLegacyRandoms(Collection<?> randoms)
Removes instances ofRandom
and/orByteArrayReseedableRandom
.- Parameters:
randoms
- the instances to remove
-
addLegacyRandoms
public void addLegacyRandoms(Random... randoms)
AddsRandom
instances.- Parameters:
randoms
- the PRNGs to start reseeding
-
addLegacyRandoms
public void addLegacyRandoms(Collection<? extends Random> randoms)
AddsRandom
instances.- Parameters:
randoms
- the PRNGs to start reseeding
-
contains
public boolean contains(Object random)
Description copied from class:RandomSeeder
Checks whether the given PRNG is currently registered with this RandomSeeder.- Overrides:
contains
in classRandomSeeder
- Parameters:
random
- the PRNG to check the status of- Returns:
- true if registered; false if not
-
iterate
protected boolean iterate()
Description copied from class:Looper
The task that will be iterated until it returns false. Cannot be abstract for serialization reasons, but must be overridden in subclasses if they are instantiated without a targetRunnable
.- Overrides:
iterate
in classRandomSeeder
- Returns:
- true if this thread should iterate again.
-
isEmpty
public boolean isEmpty()
Description copied from class:RandomSeeder
Returns true if noRandom
instances are registered with this LegacyRandomSeeder.- Overrides:
isEmpty
in classRandomSeeder
- Returns:
- true if no
Random
instances are registered with this LegacyRandomSeeder.
-
clear
protected void clear()
Description copied from class:RandomSeeder
Removes all PRNGs from this seeder.- Overrides:
clear
in classRandomSeeder
-
-