docs: @SuppressWarnings("checkstyle:all")
  	protected void generateBuilderFactoryContributions() {
  		final boolean enableAppenders = getCodeBuilderConfig().isISourceAppendableEnable();
  		this.builderFactoryContributions.addContribution(new StringConcatenationClient() {
  			@Override
  			protected void appendTo(TargetStringConcatenation it) {
  				it.append("\t/** Create the factory for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  				it.newLine();
  				it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @param resourceSet the resource set in which the script is created."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @return the factory."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t */"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t@"); //$NON-NLS-1$
  				it.append(Pure.class);
  				it.newLine();
  				it.append("\tpublic "); //$NON-NLS-1$
  				it.append(getScriptBuilderInterface());
  				it.append(" createScript(String packageName, "); //$NON-NLS-1$
  				it.append(ResourceSet.class);
  				it.append(" resourceSet) {"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\treturn createScript(packageName, createResource(resourceSet), null);"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\t/** Create the factory for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  				it.newLine();
  				it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @param resource the resource in which the script is created."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @return the factory."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t */"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t@"); //$NON-NLS-1$
  				it.append(Pure.class);
  				it.newLine();
  				it.append("\tpublic "); //$NON-NLS-1$
  				it.append(getScriptBuilderInterface());
  				it.append(" createScript(String packageName, "); //$NON-NLS-1$
  				it.append(Resource.class);
  				it.append(" resource) {"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\treturn createScript(packageName, resource, null);"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\t/** Create the factory for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  				it.newLine();
  				it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @param resource the resource in which the script is created."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @param context the context for type resolution."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @return the factory."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t */"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t@"); //$NON-NLS-1$
  				it.append(Pure.class);
  				it.newLine();
  				it.append("\tpublic "); //$NON-NLS-1$
  				it.append(getScriptBuilderInterface());
  				it.append(" createScript(String packageName, "); //$NON-NLS-1$
  				it.append(Resource.class);
  				it.append(" resource, "); //$NON-NLS-1$
  				it.append(IJvmTypeProvider.class);
  				it.append(" context) {"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\t"); //$NON-NLS-1$
  				it.append(getScriptBuilderInterface());
  				it.append(" builder = getProvider("); //$NON-NLS-1$
  				it.append(getScriptBuilderInterface());
  				it.append(".class).get();"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\tbuilder.eInit(resource, packageName, context);"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\treturn builder;"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\t/** Create the factory for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  				it.newLine();
  				it.append("\t * <p>The resource set is provided by the context."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @param context the context for type resolution."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t * @return the factory."); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t */"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t@"); //$NON-NLS-1$
  				it.append(Pure.class);
  				it.newLine();
  				it.append("\tpublic "); //$NON-NLS-1$
  				it.append(getScriptBuilderInterface());
  				it.append(" createScript(String packageName, "); //$NON-NLS-1$
  				it.append(IJvmTypeProvider.class);
  				it.append(" context) {"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\treturn createScript(packageName, createResource(context.getResourceSet()), context);"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  			}
  		});
  		if (enableAppenders) {
  			this.builderFactoryContributions.addContribution(new StringConcatenationClient() {
  				@Override
  				protected void appendTo(TargetStringConcatenation it) {
  					it.append("\t/** Create the appender for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  					it.newLine();
  					it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @param resourceSet the resource set in which the script is created."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @return the appender."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t */"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t@"); //$NON-NLS-1$
  					it.append(Pure.class);
  					it.newLine();
  					it.append("\tpublic "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" buildScript(String packageName, "); //$NON-NLS-1$
  					it.append(ResourceSet.class);
  					it.append(" resourceSet) {"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\t"); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" a = new "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append("(createScript(packageName, resourceSet));"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\tgetInjector().injectMembers(a);"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\treturn a;"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t}"); //$NON-NLS-1$
  					it.newLineIfNotEmpty();
  					it.newLine();
  					it.append("\t/** Create the appender for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  					it.newLine();
  					it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @param resource the resource in which the script is created."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @return the appender."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t */"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t@"); //$NON-NLS-1$
  					it.append(Pure.class);
  					it.newLine();
  					it.append("\tpublic "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" buildScript(String packageName, "); //$NON-NLS-1$
  					it.append(Resource.class);
  					it.append(" resource) {"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\t"); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" a = new "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append("(createScript(packageName, resource));"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\tgetInjector().injectMembers(a);"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\treturn a;"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t}"); //$NON-NLS-1$
  					it.newLineIfNotEmpty();
  					it.newLine();
  					it.append("\t/** Create the appender for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  					it.newLine();
  					it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @param resource the resource in which the script is created."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @param context the context for type resolution."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @return the appender."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t */"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t@"); //$NON-NLS-1$
  					it.append(Pure.class);
  					it.newLine();
  					it.append("\tpublic "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" buildScript(String packageName, "); //$NON-NLS-1$
  					it.append(Resource.class);
  					it.append(" resource, "); //$NON-NLS-1$
  					it.append(IJvmTypeProvider.class);
  					it.append(" context) {"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\t"); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" a = new "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append("(createScript(packageName, resource, context));"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\tgetInjector().injectMembers(a);"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\treturn a;"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t}"); //$NON-NLS-1$
  					it.newLineIfNotEmpty();
  					it.newLine();
  					it.append("\t/** Create the appender for a " + getLanguageName() + " script."); //$NON-NLS-1$ //$NON-NLS-2$
  					it.newLine();
  					it.append("\t * <p>The resource set is provided by the context."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @param packageName the name of the package of the script."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @param context the context for type resolution."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t * @return the appender."); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t */"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t@"); //$NON-NLS-1$
  					it.append(Pure.class);
  					it.newLine();
  					it.append("\tpublic "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" buildScript(String packageName, "); //$NON-NLS-1$
  					it.append(IJvmTypeProvider.class);
  					it.append(" context) {"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\t"); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append(" a = new "); //$NON-NLS-1$
  					it.append(getScriptAppender());
  					it.append("(createScript(packageName, context));"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\tgetInjector().injectMembers(a);"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t\treturn a;"); //$NON-NLS-1$
  					it.newLine();
  					it.append("\t}"); //$NON-NLS-1$
  					it.newLineIfNotEmpty();
  					it.newLine();
  				}
  			});
  		}
  	}