docs: public void setVersion(String version) {
  
          m_number = 0L;
          if ((version == null) || (version.charAt(0) == '.') || (version.charAt(version.length() - 1) == '.')) {
              throw new CmsIllegalArgumentException(Messages.get().container(Messages.ERR_NOT_NUMBER_0));
          }
          String[] split = CmsStringUtil.splitAsArray(version, '.');
          m_dots = split.length;
          if (m_dots > 4) {
              throw new CmsIllegalArgumentException(
                  Messages.get().container(Messages.ERR_INVALID_VERSION_LENGTH_1, version));
          }
          String[] numbers = new String[5];
          System.arraycopy(split, 0, numbers, 1, m_dots);
          numbers[0] = "1";
          for (int i = 1 + m_dots; i < 5; i++) {
              numbers[i] = "0";
          }
          for (int i = numbers.length - 1; i >= 0; i--) {
              try {
                  int number = Integer.valueOf(numbers[numbers.length - i - 1]).intValue();
  
                  if ((number > 999) || (number < 0)) {
                      throw new CmsIllegalArgumentException(
                          Messages.get().container(Messages.ERR_INVALID_VERSION_SUBNUMBER_1, new Integer(number)));
                  }
                  m_number = ((long)Math.pow(1000.0, i) * number) + m_number;
              } catch (NumberFormatException e) {
                  // no valid version provided
                  throw new CmsIllegalArgumentException(Messages.get().container(Messages.ERR_NOT_NUMBER_0));
              }
          }
  
          setVersion(m_number);
      }