Class Mod11Generator
java.lang.Object
org.instancio.internal.generator.AbstractGenerator<String>
org.instancio.internal.generator.checksum.BaseModCheckGenerator
org.instancio.internal.generator.checksum.Mod11Generator
- All Implemented Interfaces:
Generator<String>
,GeneratorSpec<String>
,AsGeneratorSpec<String>
,Mod11AsGeneratorSpec
,Mod11GeneratorSpec
,Mod11Spec
,NullableGeneratorSpec<String>
,ValueSpec<String>
,InternalLengthGeneratorSpec<String>
public class Mod11Generator
extends BaseModCheckGenerator
implements Mod11AsGeneratorSpec, Mod11Spec
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns the public API method name of the generator spec.protected int
base()
checkDigitIndex
(int idx) The index of the check digit in the input.protected int
protected org.instancio.internal.generator.checksum.BaseModCheckGenerator.Direction
direction
(org.instancio.internal.generator.checksum.BaseModCheckGenerator.Direction direction) endIndex
(int idx) The end index for calculating the checksum.protected int
even
(int position) Specifies that the Mod11 checksum must be done from the leftmost to the rightmost digit (default behaviour is right to left).length
(int length) Length of the number to generate (default value is16
).org.instancio.internal.generator.checksum.VariableLengthModCheckGenerator
length
(int min, int max) nullable()
Indicates thatnull
value can be generated.nullable
(boolean isNullable) protected int
odd
(int position) protected int
protected int
startIndex
(int idx) The start index for calculating the checksum (default value is0
).protected int
protected boolean
threshold
(int threshold) The threshold for the Mod11 algorithm multiplier growth, if no value is specified the multiplier will grow indefinitely (default value isInteger.MAX_VALUE
).protected char
protected char
treatCheck10As
(char treatCheck10As) Thechar
that represents the check digit when the Mod11 checksum equals10
(default value is'X'
).treatCheck11As
(char treatCheck11As) Thechar
that represents the check digit when the Mod11 checksum equals11
(default value is'0'
).protected String
tryGenerateNonNull
(Random random) Makes the best effort to return a non-null value.Methods inherited from class org.instancio.internal.generator.checksum.BaseModCheckGenerator
payload
Methods inherited from class org.instancio.internal.generator.AbstractGenerator
generate, getContext, hints, isNullable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.instancio.generator.specs.AsGeneratorSpec
as, asString
-
Constructor Details
-
Mod11Generator
public Mod11Generator() -
Mod11Generator
-
-
Method Details
-
apiMethod
Description copied from class:AbstractGenerator
Returns the public API method name of the generator spec. The returned name is used for reporting validation errors.- Specified by:
apiMethod
in classAbstractGenerator<String>
- Returns:
- spec name if defined, or
null
otherwise
-
length
Description copied from interface:Mod11GeneratorSpec
Length of the number to generate (default value is16
).- Specified by:
length
in interfaceMod11AsGeneratorSpec
- Specified by:
length
in interfaceMod11GeneratorSpec
- Specified by:
length
in interfaceMod11Spec
- Parameters:
length
- of the number to generate- Returns:
- spec builder
-
threshold
Description copied from interface:Mod11GeneratorSpec
The threshold for the Mod11 algorithm multiplier growth, if no value is specified the multiplier will grow indefinitely (default value isInteger.MAX_VALUE
).- Specified by:
threshold
in interfaceMod11AsGeneratorSpec
- Specified by:
threshold
in interfaceMod11GeneratorSpec
- Specified by:
threshold
in interfaceMod11Spec
- Parameters:
threshold
- for the multiplier growth- Returns:
- spec builder
-
treatCheck10As
Description copied from interface:Mod11GeneratorSpec
Thechar
that represents the check digit when the Mod11 checksum equals10
(default value is'X'
).- Specified by:
treatCheck10As
in interfaceMod11AsGeneratorSpec
- Specified by:
treatCheck10As
in interfaceMod11GeneratorSpec
- Specified by:
treatCheck10As
in interfaceMod11Spec
- Parameters:
treatCheck10As
- check digit character to use when the checksum is10
- Returns:
- spec builder
-
treatCheck11As
Description copied from interface:Mod11GeneratorSpec
Thechar
that represents the check digit when the Mod11 checksum equals11
(default value is'0'
).- Specified by:
treatCheck11As
in interfaceMod11AsGeneratorSpec
- Specified by:
treatCheck11As
in interfaceMod11GeneratorSpec
- Specified by:
treatCheck11As
in interfaceMod11Spec
- Parameters:
treatCheck11As
- check digit character to use when the checksum is11
- Returns:
- spec builder
-
startIndex
Description copied from interface:Mod11GeneratorSpec
The start index for calculating the checksum (default value is0
).- Specified by:
startIndex
in interfaceMod11AsGeneratorSpec
- Specified by:
startIndex
in interfaceMod11GeneratorSpec
- Specified by:
startIndex
in interfaceMod11Spec
- Parameters:
idx
- for calculating the checksum (inclusive)- Returns:
- spec builder
-
endIndex
Description copied from interface:Mod11GeneratorSpec
The end index for calculating the checksum.- Specified by:
endIndex
in interfaceMod11AsGeneratorSpec
- Specified by:
endIndex
in interfaceMod11GeneratorSpec
- Specified by:
endIndex
in interfaceMod11Spec
- Parameters:
idx
- for calculating the checksum (inclusive)- Returns:
- spec builder
-
checkDigitIndex
Description copied from interface:Mod11GeneratorSpec
The index of the check digit in the input. If not specified, the last digit will be used as the check digit.If set, the digit at the specified index is used. If set the following must hold true:
checkDigitIndex >= 0 && (checkDigitIndex < startIndex || checkDigitIndex >= endIndex)
.- Specified by:
checkDigitIndex
in interfaceMod11AsGeneratorSpec
- Specified by:
checkDigitIndex
in interfaceMod11GeneratorSpec
- Specified by:
checkDigitIndex
in interfaceMod11Spec
- Parameters:
idx
- index of the check digit- Returns:
- spec builder
-
even
protected int even(int position) - Overrides:
even
in classBaseModCheckGenerator
-
odd
protected int odd(int position) - Overrides:
odd
in classBaseModCheckGenerator
-
leftToRight
Description copied from interface:Mod11GeneratorSpec
Specifies that the Mod11 checksum must be done from the leftmost to the rightmost digit (default behaviour is right to left).e.g. Code 12345-?:
- Right to left: the sum (5*2 + 4*3 + 3*4 + 2*5 + 1*6) with check digit 5
- Left to right: the sum (1*2 + 2*3 + 3*4 + 4*5 + 5*6) with check digit 7
- Specified by:
leftToRight
in interfaceMod11AsGeneratorSpec
- Specified by:
leftToRight
in interfaceMod11GeneratorSpec
- Specified by:
leftToRight
in interfaceMod11Spec
- Returns:
- spec builder
-
direction
public Mod11Generator direction(org.instancio.internal.generator.checksum.BaseModCheckGenerator.Direction direction) -
nullable
Description copied from interface:NullableGeneratorSpec
Indicates thatnull
value can be generated.- Specified by:
nullable
in interfaceMod11AsGeneratorSpec
- Specified by:
nullable
in interfaceMod11GeneratorSpec
- Specified by:
nullable
in interfaceMod11Spec
- Specified by:
nullable
in interfaceNullableGeneratorSpec<String>
- Specified by:
nullable
in interfaceValueSpec<String>
- Overrides:
nullable
in classAbstractGenerator<String>
- Returns:
- spec builder
-
nullable
- Overrides:
nullable
in classAbstractGenerator<String>
-
sumDigits
protected boolean sumDigits()- Overrides:
sumDigits
in classBaseModCheckGenerator
-
direction
protected org.instancio.internal.generator.checksum.BaseModCheckGenerator.Direction direction()- Overrides:
direction
in classBaseModCheckGenerator
-
base
protected int base()- Overrides:
base
in classBaseModCheckGenerator
-
treat10As
protected char treat10As()- Overrides:
treat10As
in classBaseModCheckGenerator
-
treat11As
protected char treat11As()- Overrides:
treat11As
in classBaseModCheckGenerator
-
length
public org.instancio.internal.generator.checksum.VariableLengthModCheckGenerator length(int min, int max) - Specified by:
length
in interfaceInternalLengthGeneratorSpec<String>
-
tryGenerateNonNull
Description copied from class:AbstractGenerator
Makes the best effort to return a non-null value. However, in certain cases this method will produce anull
.- Overrides:
tryGenerateNonNull
in classBaseModCheckGenerator
- Parameters:
random
- for generating the value- Returns:
- generated value, either a null or non-null
-
prefixLength
protected int prefixLength()- Overrides:
prefixLength
in classBaseModCheckGenerator
-
payloadLength
protected int payloadLength()- Specified by:
payloadLength
in classBaseModCheckGenerator
-
checkPosition
protected int checkPosition()- Overrides:
checkPosition
in classBaseModCheckGenerator
-
suffixLength
protected int suffixLength()- Overrides:
suffixLength
in classBaseModCheckGenerator
-