src/main/java/com/github/aro_tech/interface_it_ant/InterfaceItTask.java
@Override
	public void execute() throws BuildException {
		if (null != this.echo) {
			out.emitText(echo);
		}
		validateAttributes();

		StatisticProvidingMixinGenerator generator = makeInterfaceItGenerator();

		try {
			if (debug) {
				out.emitText(this.toString());
			}

			if (null == this.targetInterfaceParentName || targetInterfaceParentName.trim().length() < 1) {
				File wroteFile = generator.generateMixinJavaFile(getOutputDirectory(), getTargetInterfaceName(),
						getDelegateClassObject(), getTargetPackageName(), makeArgumentNameSource());

				GenerationStatistics stats = generator.getStatistics();
				emitGenerationResult(wroteFile, stats);
			} else {
				final Class<?> delegateClassObject = this.getDelegateClassObject();
				final Class<?> superclass = delegateClassObject.getSuperclass();
				if(null == superclass || java.lang.Object.class.equals(superclass)) {
					out.emitText("Execution halted without generation. The attribute 'targetInterfaceParentName' should be empty if the delegate class has no superclass other than Object.");
					return;
				}
				MultiFileOutputOptions options = new OptionsForSplittingChildAndParent(this.targetPackageName,
						getOutputDirectory(), this.targetInterfaceName, this.targetInterfaceParentName,
						delegateClassObject);
				List<File> results = generator.generateMixinJavaFiles(options, makeArgumentNameSource(),
						delegateClassObject, superclass);
				for (File result : results) {
					emitGenerationResult(result,
							generator.getStatisticsFor(result.getName()).orElse(generator.getStatistics()));
				}
			}
		} catch (IOException e) {
			handleIOException(e);
		} catch (ClassNotFoundException e) {
			handleClassNotFound(e);
		} catch (Throwable t) {
			handleUnexpectedError(t);
		}
	}
@Override
	public void execute() throws BuildException {
		if (null != this.echo) {
			out.emitText(echo);
		}
		validateAttributes();

		StatisticProvidingMixinGenerator generator = makeInterfaceItGenerator();

		try {
			if (debug) {
				out.emitText(this.toString());
			}

			if (null == this.targetInterfaceParentName || targetInterfaceParentName.trim().length() < 1) {
				File wroteFile = generator.generateMixinJavaFile(getOutputDirectory(), getTargetInterfaceName(),
						getDelegateClassObject(), getTargetPackageName(), makeArgumentNameSource());

				GenerationStatistics stats = generator.getStatistics();
				emitGenerationResult(wroteFile, stats);
			} else {
				final Class<?> delegateClassObject = this.getDelegateClassObject();
				final Class<?> superclass = delegateClassObject.getSuperclass();
				if(null == superclass || java.lang.Object.class.equals(superclass)) {
					out.emitText("Execution halted without generation. The attribute 'targetInterfaceParentName' should be empty if the delegate class has no superclass other than Object.");
					return;
				}
				MultiFileOutputOptions options = new OptionsForSplittingChildAndParent(this.targetPackageName,
						getOutputDirectory(), this.targetInterfaceName, this.targetInterfaceParentName,
						delegateClassObject);
				List<File> results = generator.generateMixinJavaFiles(options, makeArgumentNameSource(),
						delegateClassObject, superclass);
				for (File result : results) {
					emitGenerationResult(result,
							generator.getStatisticsFor(result.getName()).orElse(generator.getStatistics()));
				}
			}
		} catch (IOException e) {
			handleIOException(e);
		} catch (ClassNotFoundException e) {
			handleClassNotFound(e);
		} catch (Throwable t) {
			handleUnexpectedError(t);
		}
	}
/*
(non-Javadoc)

@see org.apache.tools.ant.Task#execute()