private void validateInput() throws MojoExecutionException, MojoFailureException {
		if (cores <=0)
			throw new MojoExecutionException(String.format(
				"Cannot process with no cores: `%d'",
				cores
				));
		if (!maps.exists() || maps.isDirectory())
			throw new MojoFailureException(String.format(
				"Cannot process non-existant maps file `%s'",
				maps
				));
		if (!input.exists() || input.isDirectory())
			throw new MojoFailureException(String.format(
				"Cannot process non-existent input file `%s'",
				input
				));

		verifyOut(output);
		verifyOut(original);
		if (output == null) {
			output = input;
		}

		try {
			missingAction = Missing.valueOf(missing);
		} catch (final IllegalArgumentException ex) {
			getLog().warn(
				String.format(
					"Unknown value for mapping.missing: %s, using default %s",
					missing,
					missingAction.name()
					),
				ex
				);
		}
	}