code: public void setUcode(String ucode)
      {
          if (ucode == null)
          {
              throw new IllegalArgumentException("'ucode' is null.");
          }
  
          if (UCODE_PATTERN.matcher(ucode).matches() == false)
          {
              throw new IllegalArgumentException("The format of 'ucode' is wrong: " + ucode);
          }
  
          mUcode = ucode;
  
          byte[] data = getData();
  
          for (int i = 0; i < 32; i += 2)
          {
              // Parse the two hex letters.
              byte value = readHex(ucode, i);
  
              // Store the value in the little endian order.
              int offset = UCODE_INDEX + (15 - i / 2);
  
              data[offset] = value;
          }
      }
docs: Set the ucode.
  
  @param ucode
  The string representation of the ucode. It must consist
  of 32 hex letters.
  
  @throws IllegalArgumentException
  {@code ucode} is {@code null} or it does not consist of
  32 hex letters.