<?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.
-->

<code_scheme name="apacheds">
  <option name="USE_SAME_INDENTS" value="false" />
  <option name="XML_INDENT_OPTIONS">
    <value>
      <option name="INDENT_SIZE" value="2" />
      <option name="CONTINUATION_INDENT_SIZE" value="8" />
      <option name="TAB_SIZE" value="2" />
      <option name="USE_TAB_CHARACTER" value="false" />
      <option name="SMART_TABS" value="false" />
      <option name="LABEL_INDENT_SIZE" value="0" />
      <option name="LABEL_INDENT_ABSOLUTE" value="false" />
    </value>
  </option>
  <option name="BRACE_STYLE" value="2" />
  <option name="CLASS_BRACE_STYLE" value="2" />
  <option name="METHOD_BRACE_STYLE" value="2" />
  <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
  <option name="SPACE_WITHIN_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_METHOD_CALL_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_METHOD_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_IF_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_WHILE_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_FOR_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_CATCH_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_SYNCHRONIZED_PARENTHESES" value="true" />
  <option name="SPACE_WITHIN_CAST_PARENTHESES" value="true" />
  <option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
  <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="5000" />
  <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="5000" />
  <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
    <value />
  </option>
  <option name="IMPORT_LAYOUT_TABLE">
    <value>
      <package name="java" withSubpackages="true" />
      <emptyLine />
      <package name="javax" withSubpackages="true" />
      <emptyLine />
      <package name="" withSubpackages="true" />
      <emptyLine />
    </value>
  </option>
  <option name="IF_BRACE_FORCE" value="3" />
  <option name="DOWHILE_BRACE_FORCE" value="3" />
  <option name="WHILE_BRACE_FORCE" value="3" />
  <option name="FOR_BRACE_FORCE" value="3" />
  <option name="SPACE_WITHIN_ANNOTATION_PARENTHESES" value="true" />
</code_scheme>

