docs: protected void generateInnerDocumentationAdapter() {
  		final TypeReference adapter = getCodeElementExtractor().getInnerBlockDocumentationAdapter();
  		final StringConcatenationClient content = new StringConcatenationClient() {
  			@Override
  			protected void appendTo(TargetStringConcatenation it) {
  				it.append("public class "); //$NON-NLS-1$
  				it.append(adapter.getSimpleName());
  				it.append(" extends "); //$NON-NLS-1$
  				it.append(AdapterImpl.class);
  				it.append(" {"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\tprivate String documentation;"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t@"); //$NON-NLS-1$
  				it.append(Pure.class);
  				it.newLine();
  				it.append("\tpublic String getDocumentation() {"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\t\treturn this.documentation;"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\tpublic void setDocumentation(String documentation) {"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\tthis.documentation = documentation;"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("\t@"); //$NON-NLS-1$
  				it.append(Pure.class);
  				it.newLine();
  				it.append("\tpublic boolean isAdapterForType(Object type) {"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t\treturn type == "); //$NON-NLS-1$
  				it.append(adapter.getSimpleName());
  				it.append(".class;"); //$NON-NLS-1$
  				it.newLine();
  				it.append("\t}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  				it.newLine();
  				it.append("}"); //$NON-NLS-1$
  				it.newLineIfNotEmpty();
  			}
  
  		};
  		final JavaFileAccess createJavaFile = getFileAccessFactory().createJavaFile(adapter, content);
  		createJavaFile.writeTo(getSrcGen());
  	}