private void validateOptions()
	{
		// No validation if we found a help parameter
		if (m_helpWasSpecified)
		{
			return;
		}

		if (!m_requiredFields.isEmpty())
		{
			StringBuilder missingFields = new StringBuilder();
			for (ParameterDescription pd : m_requiredFields.values())
			{
				missingFields.append(pd.getNames()).append(" ");
			}
			throw new ParameterException("The following " + pluralize(m_requiredFields.size(), "option is required: ", "options are required: ") + missingFields);
		}

		if (m_mainParameterDescription != null)
		{
			if (m_mainParameterDescription.getParameter().required() && !m_mainParameterDescription.isAssigned())
			{
				throw new ParameterException("Main parameters are required (\"" + m_mainParameterDescription.getDescription() + "\")");
			}
		}
	}