def METHOD_NAME(self):
	"""
	Generate API documentation from Vala source code with valadoc
	doc = bld(
		features = 'valadoc',
		output_dir = '../doc/html',
		package_name = 'vala-gtk-example',
		package_version = '1.0.0',
		packages = 'gtk+-2.0',
		vapi_dirs = '../vapi',
		force = True
	)
	path = bld.path.find_dir ('../src')
	doc.files = path.ant_glob (incl='**/*.vala')
	"""
	task = self.create_task('valadoc')
	if getattr(self, 'output_dir', None):
		task.output_dir = self.path.find_or_declare(self.output_dir).abspath()
	else:
		Errors.WafError('no output directory')
	if getattr(self, 'doclet', None):
		task.doclet = self.doclet
	else:
		Errors.WafError('no doclet directory')
	if getattr(self, 'package_name', None):
		task.package_name = self.package_name
	else:
		Errors.WafError('no package name')
	if getattr(self, 'package_version', None):
		task.package_version = self.package_version
	if getattr(self, 'packages', None):
		task.packages = Utils.to_list(self.packages)
	if getattr(self, 'vapi_dirs', None):
		vapi_dirs = Utils.to_list(self.vapi_dirs)
		for vapi_dir in vapi_dirs:
			try:
				task.vapi_dirs.append(self.path.find_dir(vapi_dir).abspath())
			except AttributeError:
				Logs.warn('Unable to locate Vala API directory: %r', vapi_dir)
	if getattr(self, 'files', None):
		task.files = self.files
	else:
		Errors.WafError('no input file')
	if getattr(self, 'protected', None):
		task.protected = self.protected
	if getattr(self, 'private', None):
		task.private = self.private
	if getattr(self, 'inherit', None):
		task.inherit = self.inherit
	if getattr(self, 'deps', None):
		task.deps = self.deps
	if getattr(self, 'vala_defines', None):
		task.vala_defines = Utils.to_list(self.vala_defines)
	if getattr(self, 'vala_target_glib', None):
		task.vala_target_glib = self.vala_target_glib
	if getattr(self, 'enable_non_null_experimental', None):
		task.enable_non_null_experimental = self.enable_non_null_experimental
	if getattr(self, 'force', None):
		task.force = self.force