docs: protected void initialize(SarlCapacity source, JvmGenericType inferredJvmType) {
  		// Issue #356: do not generate if the capacity has no name.
  		assert source != null;
  		assert inferredJvmType != null;
  		if (Strings.isNullOrEmpty(source.getName())) {
  			return;
  		}
  		// Create the generation context that is used by the other transformation functions.
  		final GenerationContext context = openContext(source, inferredJvmType,
  				Collections.singleton(SarlAction.class));
  		try {
  			// Copy the documentation
  			this.typeBuilder.copyDocumentationTo(source, inferredJvmType);
  
  			// Change the modifiers on the generated type.
  			inferredJvmType.setInterface(true);
  			inferredJvmType.setAbstract(true);
  			setVisibility(inferredJvmType, source);
  			inferredJvmType.setStatic(false);
  			inferredJvmType.setStrictFloatingPoint(false);
  			inferredJvmType.setFinal(false);
  
  			// Generate the annotations.
  			translateAnnotationsTo(source.getAnnotations(), inferredJvmType);
  
  			// Generate the extended types.
  			appendConstrainedExtends(context, inferredJvmType, Capacity.class, SarlCapacity.class, source.getExtends());
  
  			// Issue #363: do not generate the capacity if the SARL library is incompatible.
  			if (Utils.isCompatibleSARLLibraryOnClasspath(this.typeReferences, source)) {
  				// Generate the members of the generated type.
  				appendAOPMembers(
  						inferredJvmType,
  						source,
  						context);
  			}
  
  			// Add the @FunctionalInterface
  			appendFunctionalInterfaceAnnotation(inferredJvmType);
  
  			// Add the specification version of SARL
  			appendSARLSpecificationVersion(context, source, inferredJvmType);
  
  			// Add the type of SARL Element
  			appendSARLElementType(source, inferredJvmType);
  
  			// Resolving any name conflict with the generated JVM type
  			this.nameClashResolver.resolveNameClashes(inferredJvmType);
  		} finally {
  			closeContext(context);
  		}
  
  		// Generate the context aware wrapper
  		appendCapacityContextAwareWrapper(source, inferredJvmType);
  	}