private static int determineEncoding( String string, byte[] data, int length, int payloadSize ) { if ( length == 0 ) { return 0; } int encodings = ALL_BIT_MASK; // filter out larger encodings in one go if ( length > ALPHANUM.maxLength( payloadSize ) ) { encodings &= REMOVE_LARGE_ENCODINGS_MASK; } for ( int i = 0; i < length; i++ ) { char c = string.charAt( i ); // non ASCII chars not supported if ( c >= TRANSLATION_COUNT ) { return 0; } data[i] = TRANSLATION[c]; // remove not matching encoders encodings &= REMOVE_MASK[c]; if ( encodings == 0 ) { return 0; } } return encodings; }
if ( dataLength > NUMERICAL.maxLength( payloadSize ) || dataLength > 63 )
private boolean doEncode( int keyId, byte[] data, PropertyBlock target, int payloadSize, final int length ) { if ( length > maxLength( payloadSize ) ) { return false; } Bits bits = newBits( this, length ); writeHeader( bits, keyId, encodingHeader, length ); if ( length > 0 ) { translateData( bits, data, length, step ); } target.setValueBlocks( bits.getLongs() ); return true; }
private static int determineEncoding( String string, byte[] data, int length, int payloadSize ) { if ( length == 0 ) { return 0; } int encodings = ALL_BIT_MASK; // filter out larger encodings in one go if ( length > ALPHANUM.maxLength( payloadSize ) ) { encodings &= REMOVE_LARGE_ENCODINGS_MASK; } for ( int i = 0; i < length; i++ ) { char c = string.charAt( i ); // non ASCII chars not supported if ( c >= TRANSLATION_COUNT ) { return 0; } data[i] = TRANSLATION[c]; // remove not matching encoders encodings &= REMOVE_MASK[c]; if ( encodings == 0 ) { return 0; } } return encodings; }
if ( dataLength > NUMERICAL.maxLength( payloadSize ) || dataLength > 63 )
private boolean doEncode( int keyId, byte[] data, PropertyBlock target, int payloadSize, final int length ) { if ( length > maxLength( payloadSize ) ) { return false; } Bits bits = newBits( this, length ); writeHeader( bits, keyId, encodingHeader, length ); if ( length > 0 ) { translateData( bits, data, length, step ); } target.setValueBlocks( bits.getLongs() ); return true; }