test_class.file: session-replacement/src/test/java/com/amadeus/session/TestRandomIdNoLuhnProvider.java
test_class.identifier: TestRandomIdNoLuhnProvider
test_case.body: @Test
    public void testNewIdWith40Characters() {
      RandomIdNoLuhnProvider provider = new RandomIdNoLuhnProvider(40);
      assertEquals(56, provider.newId().length());
      assertThat(provider.newId(), RegexMatchers.matchesPattern("[A-Za-z0-9_\\-]{56}"));
    }
test_case.class_method_signature: TestRandomIdNoLuhnProvider.testNewIdWith40Characters()
test_case.full_signature: @Test public void testNewIdWith40Characters()
test_case.identifier: testNewIdWith40Characters
test_case.invocations: assertEquals length newId assertThat newId matchesPattern
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNewIdWith40Characters()
focal_class.declarator: FILLER_CHARACTER_INDEX = 63
focal_class.modifier: private static final
focal_class.original_string: private static final int FILLER_CHARACTER_INDEX = 63;
focal_class.type: int
focal_class.var_name: FILLER_CHARACTER_INDEX
focal_class.declarator: MASK_6_BITS = 0x3F
focal_class.modifier: private static final
focal_class.original_string: private static final int MASK_6_BITS = 0x3F;
focal_class.type: int
focal_class.var_name: MASK_6_BITS
focal_class.declarator: DIVIDE_BY_64 = 6
focal_class.modifier: private static final
focal_class.original_string: private static final int DIVIDE_BY_64 = 6;
focal_class.type: int
focal_class.var_name: DIVIDE_BY_64
focal_class.declarator: MULTIPLY_BY_256 = 8
focal_class.modifier: private static final
focal_class.original_string: private static final int MULTIPLY_BY_256 = 8;
focal_class.type: int
focal_class.var_name: MULTIPLY_BY_256
focal_class.declarator: BYTES_IN_BLOCK = 3
focal_class.modifier: private static final
focal_class.original_string: private static final int BYTES_IN_BLOCK = 3;
focal_class.type: int
focal_class.var_name: BYTES_IN_BLOCK
focal_class.declarator: DEFAULT_ID_LENGTH = 30
focal_class.modifier: private static final
focal_class.original_string: private static final int DEFAULT_ID_LENGTH = 30;
focal_class.type: int
focal_class.var_name: DEFAULT_ID_LENGTH
focal_class.declarator: CHARACTERS_IN_BLOCK = 4
focal_class.modifier: private static final
focal_class.original_string: private static final int CHARACTERS_IN_BLOCK = 4;
focal_class.type: int
focal_class.var_name: CHARACTERS_IN_BLOCK
focal_class.declarator: SESSION_ID_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
        .toCharArray()
focal_class.modifier: private static final
focal_class.original_string: private static final char[] SESSION_ID_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
        .toCharArray();
focal_class.type: char[]
focal_class.var_name: SESSION_ID_ALPHABET
focal_class.declarator: SESSION_ID_ALPHABET_2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzNUMBRnumbr-_"
        .toCharArray()
focal_class.modifier: private static final
focal_class.original_string: private static final char[] SESSION_ID_ALPHABET_2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzNUMBRnumbr-_"
        .toCharArray();
focal_class.type: char[]
focal_class.var_name: SESSION_ID_ALPHABET_2
focal_class.declarator: random = new SecureRandom()
focal_class.modifier: private final
focal_class.original_string: private final SecureRandom random = new SecureRandom();
focal_class.type: SecureRandom
focal_class.var_name: random
focal_class.declarator: length
focal_class.modifier: private
focal_class.original_string: private int length;
focal_class.type: int
focal_class.var_name: length
focal_class.file: session-replacement/src/main/java/com/amadeus/session/RandomIdNoLuhnProvider.java
focal_class.identifier: RandomIdNoLuhnProvider
focal_class.interfaces: implements SessionIdProvider
focal_class.class_method_signature: RandomIdNoLuhnProvider.RandomIdNoLuhnProvider()
focal_class.full_signature: public  RandomIdNoLuhnProvider()
focal_class.identifier: RandomIdNoLuhnProvider
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  RandomIdNoLuhnProvider()
focal_class.class_method_signature: RandomIdNoLuhnProvider.RandomIdNoLuhnProvider(int length)
focal_class.full_signature:   RandomIdNoLuhnProvider(int length)
focal_class.identifier: RandomIdNoLuhnProvider
focal_class.parameters: (int length)
focal_class.signature:  RandomIdNoLuhnProvider(int length)
focal_class.class_method_signature: RandomIdNoLuhnProvider.encode(byte[] data)
focal_class.full_signature: private char[] encode(byte[] data)
focal_class.identifier: encode
focal_class.modifiers: private
focal_class.parameters: (byte[] data)
focal_class.return: char[]
focal_class.signature: char[] encode(byte[] data)
focal_class.class_method_signature: RandomIdNoLuhnProvider.byteValue(byte data)
focal_class.full_signature: private static int byteValue(byte data)
focal_class.identifier: byteValue
focal_class.modifiers: private static
focal_class.parameters: (byte data)
focal_class.return: int
focal_class.signature: int byteValue(byte data)
focal_class.class_method_signature: RandomIdNoLuhnProvider.newId()
focal_class.full_signature: @Override public String newId()
focal_class.identifier: newId
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String newId()
focal_class.class_method_signature: RandomIdNoLuhnProvider.readId(String value)
focal_class.full_signature: @Override public String readId(String value)
focal_class.identifier: readId
focal_class.modifiers: @Override public
focal_class.parameters: (String value)
focal_class.return: String
focal_class.signature: String readId(String value)
focal_class.class_method_signature: RandomIdNoLuhnProvider.configure(SessionConfiguration configuration)
focal_class.full_signature: @Override public void configure(SessionConfiguration configuration)
focal_class.identifier: configure
focal_class.modifiers: @Override public
focal_class.parameters: (SessionConfiguration configuration)
focal_class.return: void
focal_class.signature: void configure(SessionConfiguration configuration)
focal_class.class_method_signature: RandomIdNoLuhnProvider.getLengthInCharacters()
focal_class.full_signature:  int getLengthInCharacters()
focal_class.identifier: getLengthInCharacters
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getLengthInCharacters()
focal_class.class_method_signature: RandomIdNoLuhnProvider.getLengthInCharacters(int len)
focal_class.full_signature: static int getLengthInCharacters(int len)
focal_class.identifier: getLengthInCharacters
focal_class.modifiers: static
focal_class.parameters: (int len)
focal_class.return: int
focal_class.signature: int getLengthInCharacters(int len)
focal_method.body: @Override
    public String newId() {
      final byte[] bytes = new byte[length];
      random.nextBytes(bytes);
      return new String(encode(bytes));
    }
focal_method.class_method_signature: RandomIdNoLuhnProvider.newId()
focal_method.full_signature: @Override public String newId()
focal_method.identifier: newId
focal_method.invocations: nextBytes encode
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: String
focal_method.signature: String newId()