@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);
		}
	}
@ 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()
/ * ( non - Javadoc )