Class SeedGeneratorPreferenceList
- java.lang.Object
-
- io.github.pr0methean.betterrandom.seed.SeedGeneratorPreferenceList
-
- All Implemented Interfaces:
SeedGenerator
,Serializable
public class SeedGeneratorPreferenceList extends Object implements SeedGenerator
ASeedGenerator
implementation that iterates over multiple delegates until one succeeds.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SeedGeneratorPreferenceList.Builder
-
Field Summary
-
Fields inherited from interface io.github.pr0methean.betterrandom.seed.SeedGenerator
EMPTY_SEED
-
-
Constructor Summary
Constructors Constructor Description SeedGeneratorPreferenceList(boolean isAlwaysWorthTrying, SeedGenerator... contents)
Creates an instance.SeedGeneratorPreferenceList(Collection<? extends SeedGenerator> delegates, boolean isAlwaysWorthTrying)
Creates an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
void
generateSeed(byte[] output)
Generates a seed value for a random number generator in an existing array.int
hashCode()
boolean
isWorthTrying()
Returns true if we cannot determine quickly (i.e.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.github.pr0methean.betterrandom.seed.SeedGenerator
generateSeed
-
-
-
-
Constructor Detail
-
SeedGeneratorPreferenceList
public SeedGeneratorPreferenceList(Collection<? extends SeedGenerator> delegates, boolean isAlwaysWorthTrying)
Creates an instance.- Parameters:
delegates
- the list of delegates, in the order they will be tried until one succeedsisAlwaysWorthTrying
- true ifisWorthTrying()
should always return true rather than delegating
-
SeedGeneratorPreferenceList
public SeedGeneratorPreferenceList(boolean isAlwaysWorthTrying, SeedGenerator... contents)
Creates an instance.- Parameters:
contents
- the initial delegates, in the order they will be tried until one succeedsisAlwaysWorthTrying
- true ifisWorthTrying()
should always return true rather than delegating
-
-
Method Detail
-
generateSeed
public void generateSeed(byte[] output) throws SeedException
Description copied from interface:SeedGenerator
Generates a seed value for a random number generator in an existing array.- Specified by:
generateSeed
in interfaceSeedGenerator
- Parameters:
output
- The array that is to be populated with the seed.- Throws:
SeedException
- If a seed cannot be generated for any reason.
-
isWorthTrying
public boolean isWorthTrying()
Description copied from interface:SeedGenerator
Returns true if we cannot determine quickly (i.e. without I/O calls) that this SeedGenerator would throw aSeedException
ifSeedGenerator.generateSeed(int)
orSeedGenerator.generateSeed(byte[])
were being called right now.- Specified by:
isWorthTrying
in interfaceSeedGenerator
- Returns:
- true if this SeedGenerator will get as far as an I/O call or other slow operation in attempting to generate a seed immediately.
-
-