protected int decodeMandatoryParameters ( ISUPParameterFactory parameterFactory , byte [ ] b , int index ) throws ParameterException { int localIndex = index ; if ( b . length - index >= 3 ) { try { byte [ ] cic = new byte [ 2 ] ; cic [ 0 ] = b [ index ++ ] ; cic [ 1 ] = b [ index ++ ] ; this . cic = new CircuitIdentificationCodeImpl ( ) ; ( ( AbstractISUPParameter ) this . cic ) . decode ( cic ) ; } catch ( Exception e ) { // AIOOBE or IllegalArg throw new ParameterException ( "Failed to parse CircuitIdentificationCode due to: " , e ) ; } try { // Message Type if ( b [ index ] != this . getMessageType ( ) . getCode ( ) ) { throw new ParameterException ( "Message code is not: " + this . getMessageType ( ) . getCode ( ) ) ; } } catch ( Exception e ) { // AIOOBE or IllegalArg throw new ParameterException ( "Failed to parse MessageCode due to: " , e ) ; } index ++ ; // return 3; return index - localIndex ; } else { throw new IllegalArgumentException ( "byte[] must have atleast three octets" ) ; } }
Unfortunelty this cant be generic can it?