protected int decodeLinePrefix(PushbackInputStream inStream,OutputStream outStream) throws IOException {
  int i;
  int nLen, nSeq;
  byte xtmp[];
  int c;
  crc.value=0;
  while (true) {
    c=inStream.read(tmp,0,1);
    if (c == -1) {
      throw new CEStreamExhausted();
    }
    if (tmp[0] == '*') {
      break;
    }
  }
  lineAndSeq.reset();
  decodeAtom(inStream,lineAndSeq,2);
  xtmp=lineAndSeq.toByteArray();
  nLen=xtmp[0] & 0xff;
  nSeq=xtmp[1] & 0xff;
  if (nSeq != sequence) {
    throw new CEFormatException("UCDecoder: Out of sequence line.");
  }
  sequence=(sequence + 1) & 0xff;
  return (nLen);
}

protected int decodeLinePrefix ( PushbackInputStream inStream , OutputStream outStream ) throws IOException { int i ; int nLen , nSeq ; byte xtmp [ ] ; int c ; crc . value = 0 ; while ( true ) { c = inStream . read ( tmp , 0 , 1 ) ; if ( c == - 1 ) { throw new CEStreamExhausted ( ) ; } if ( tmp [ 0 ] == '*' ) { break ; } } lineAndSeq . reset ( ) ; decodeAtom ( inStream , lineAndSeq , 2 ) ; xtmp = lineAndSeq . toByteArray ( ) ; nLen = xtmp [ 0 ] & 0xff ; nSeq = xtmp [ 1 ] & 0xff ; if ( nSeq != sequence ) { throw new CEFormatException ( "UCDecoder: Out of sequence line." ) ; } sequence = ( sequence + 1 ) & 0xff ; return ( nLen ) ; }
decodelineprefix reads the sequence number and the number of encoded bytes from the line . if the sequence number is not the previous sequence number + 1 then an exception is thrown . uce lines are line terminator immune , they all start with so the other thing this method does is scan for the next line by looking for the * character .
