<?xml version="1.0" encoding="UTF-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
	<!-- Profile to be imported in Eclipse clean-up tool -->
<profiles version="2">
	<profile kind="CleanUpProfile" name="Ac" version="2">
		<setting
			id="cleanup.use_this_for_non_static_field_access_only_if_necessary"
			value="true" />
		<setting id="cleanup.always_use_blocks" value="true" />
		<setting id="cleanup.qualify_static_method_accesses_with_declaring_class"
			value="false" />
		<setting id="cleanup.remove_unused_private_fields" value="true" />
		<setting id="cleanup.always_use_this_for_non_static_method_access"
			value="false" />
		<setting id="cleanup.qualify_static_field_accesses_with_declaring_class"
			value="false" />
		<setting
			id="cleanup.use_this_for_non_static_method_access_only_if_necessary"
			value="true" />
		<setting id="cleanup.remove_unused_private_types" value="true" />
		<setting id="cleanup.always_use_parentheses_in_expressions"
			value="false" />
		<setting
			id="cleanup.qualify_static_member_accesses_through_instances_with_declaring_class"
			value="true" />
		<setting id="cleanup.remove_unused_local_variables" value="true" />
		<setting id="cleanup.add_missing_override_annotations" value="true" />
		<setting id="cleanup.remove_trailing_whitespaces_all" value="true" />
		<setting id="cleanup.organize_imports" value="true" />
		<setting id="cleanup.remove_unnecessary_nls_tags" value="true" />
		<setting id="cleanup.add_missing_methods" value="false" />
		<setting id="cleanup.remove_trailing_whitespaces_ignore_empty"
			value="false" />
		<setting id="cleanup.use_parentheses_in_expressions" value="true" />
		<setting id="cleanup.make_type_abstract_if_missing_method"
			value="false" />
		<setting id="cleanup.sort_members" value="true" />
		<setting
			id="cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class"
			value="true" />
		<setting id="cleanup.use_blocks_only_for_return_and_throw"
			value="false" />
		<setting id="cleanup.use_blocks" value="true" />
		<setting id="cleanup.make_private_fields_final" value="true" />
		<setting id="cleanup.remove_unused_private_methods" value="true" />
		<setting id="cleanup.correct_indentation" value="false" />
		<setting id="cleanup.use_this_for_non_static_field_access"
			value="true" />
		<setting id="cleanup.remove_unnecessary_casts" value="true" />
		<setting id="cleanup.sort_members_all" value="true" />
		<setting id="cleanup.format_source_code_changes_only" value="false" />
		<setting id="cleanup.make_local_variable_final" value="true" />
		<setting id="cleanup.never_use_parentheses_in_expressions"
			value="true" />
		<setting id="cleanup.remove_trailing_whitespaces" value="true" />
		<setting id="cleanup.convert_to_enhanced_for_loop" value="true" />
		<setting id="cleanup.format_source_code" value="false" />
		<setting id="cleanup.add_missing_nls_tags" value="false" />
		<setting id="cleanup.add_missing_annotations" value="true" />
		<setting id="cleanup.use_this_for_non_static_method_access"
			value="true" />
		<setting id="cleanup.make_variable_declarations_final" value="true" />
		<setting id="cleanup.make_parameters_final" value="true" />
		<setting id="cleanup.remove_private_constructors" value="true" />
		<setting id="cleanup.add_generated_serial_version_id" value="false" />
		<setting id="cleanup.add_missing_deprecated_annotations"
			value="true" />
		<setting id="cleanup.qualify_static_member_accesses_with_declaring_class"
			value="true" />
		<setting id="cleanup.always_use_this_for_non_static_field_access"
			value="false" />
		<setting id="cleanup.never_use_blocks" value="false" />
		<setting id="cleanup.add_serial_version_id" value="false" />
		<setting id="cleanup.add_default_serial_version_id" value="true" />
		<setting id="cleanup.remove_unused_imports" value="true" />
		<setting id="cleanup.remove_unused_private_members" value="true" />
	</profile>
</profiles>
