@SuppressWarnings("rawtypes")
	protected void checkRequiredOptions() throws MissingOptionException {
		List requiredOptions = this.getRequiredOptions();
		if (!requiredOptions.isEmpty()) {
			Iterator it = requiredOptions.iterator();
			while (it.hasNext()) {
				Object opt = it.next();
				if (opt.getClass().equals(String.class)) {
					if (Configuration.has(((String) opt))) {
						it.remove();
					}
				} else if (opt.getClass().equals(Option.class)) {
					if (Configuration.has(((Option) opt).getLongOpt())) {
						it.remove();
					}
				}
			}
		}
		if (!requiredOptions.isEmpty()) {
			throw new MissingOptionException(requiredOptions);
		}
	}