private void generateAttributeAndAccessor(String attribute) {
final TypeName typeName = TypeName.get(classDescription.getMirrorWithDocumentation(attribute)
.getMirror());
classBuilder.addField(FieldSpec.builder(typeName, attribute, Modifier.PRIVATE, Modifier.FINAL)
.build());
constructorBuilder.addParameter(typeName, attribute)
.addStatement("this.$1L = $1L", attribute);
classDescription.getMirrorWithDocumentation(attribute)
.getJavadoc()
.filter(s -> !s.isEmpty())
.ifPresentOrElse(s -> constructorBuilder.addJavadoc("@param $L $L\n", attribute, s),
() -> constructorBuilder.addJavadoc(MISSING_DOC, attribute));
classBuilder.addMethod(createAccessor(attribute, typeName));
}