public JobKey parseJobKey ( byte [ ] [ ] keyComponents ) { // runId is inverted in the bytes representation so we get reverse // chronological order long encodedRunId = keyComponents . length > 3 ? Bytes . toLong ( keyComponents [ 3 ] ) : Long . MAX_VALUE ; JobId jobId = keyComponents . length > 4 ? idConv . fromBytes ( keyComponents [ 4 ] ) : null ; return new JobKey ( Bytes . toString ( keyComponents [ 0 ] ) , ( keyComponents . length > 1 ? Bytes . toString ( keyComponents [ 1 ] ) : null ) , ( keyComponents . length > 2 ? Bytes . toString ( keyComponents [ 2 ] ) : null ) , Long . MAX_VALUE - encodedRunId , jobId ) ; }
Constructs a JobKey instance from the individual byte encoded key components .