# The maximum number of lines of code in a method.

method.length.max                      = 15

# Regular expressions for identifiers.

format.instance.final.public           = ^[A-Z_][A-Z0-9_]*$
format.instance.final.package          = ^[A-Z_][A-Z0-9_]*$
format.instance.final.protected        = ^[A-Z_][A-Z0-9_]*$
format.instance.final.private          = ^[A-Z_][A-Z0-9_]*$

format.instance.nonfinal.public        = ^[a-z][a-zA-Z0-9]*$
format.instance.nonfinal.package       = ^_[a-z][a-zA-Z0-9]*$
format.instance.nonfinal.protected     = ^_[a-z][a-zA-Z0-9]*$
format.instance.nonfinal.private       = ^_[a-z][a-zA-Z0-9]*$

format.static.final.public             = ^[A-Z_][A-Z0-9_]*$
format.static.final.package            = ^[A-Z_][A-Z0-9_]*$
format.static.final.protected          = ^[A-Z_][A-Z0-9_]*$
format.static.final.private            = ^[A-Z_][A-Z0-9_]*$

format.static.nonfinal.public          = ^[a-z][a-zA-Z0-9]*$
format.static.nonfinal.package         = ^[a-z][a-zA-Z0-9]*$
format.static.nonfinal.protected       = ^[a-z][a-zA-Z0-9]*$
format.static.nonfinal.private         = ^[a-z][a-zA-Z0-9]*$

# The order in which the types are listed is the same as the order in which we
# expect them. And yes, that's a "+=", which in configuration files adds to a
# variable rather than replacing it, which is necessary because types.order is
# an array (vector, actually).

types.order  = public.static.final.field
types.order += protected.static.final.field
types.order += package.static.final.field
types.order += private.static.final.field

types.order += public.static.final.class
types.order += public.static.nonfinal.class
types.order += package.static.final.class
types.order += package.static.nonfinal.class
types.order += private.static.final.class
types.order += private.static.nonfinal.class
types.order += protected.static.final.class
types.order += protected.static.nonfinal.class

types.order += public.instance.final.class
types.order += public.instance.nonfinal.class
types.order += package.instance.final.class
types.order += package.instance.nonfinal.class
types.order += private.instance.final.class
types.order += private.instance.nonfinal.class
types.order += protected.instance.final.class
types.order += protected.instance.nonfinal.class

types.order += public.static.final.interface
types.order += public.static.nonfinal.interface
types.order += package.static.final.interface
types.order += package.static.nonfinal.interface
types.order += private.static.final.interface
types.order += private.static.nonfinal.interface
types.order += protected.static.final.interface
types.order += protected.static.nonfinal.interface

types.order += public.instance.final.interface
types.order += public.instance.nonfinal.interface
types.order += package.instance.final.interface
types.order += package.instance.nonfinal.interface
types.order += private.instance.final.interface
types.order += private.instance.nonfinal.interface
types.order += protected.instance.final.interface
types.order += protected.instance.nonfinal.interface

types.order += public.static.nonfinal.field
types.order += protected.static.nonfinal.field
types.order += package.static.nonfinal.field
types.order += private.static.nonfinal.field

types.order += public.instance.final.field
types.order += protected.instance.final.field
types.order += package.instance.final.field
types.order += private.instance.final.field

types.order += public.instance.nonfinal.field
types.order += protected.instance.nonfinal.field
types.order += package.instance.nonfinal.field
types.order += private.instance.nonfinal.field

types.order += public.static.final.method
types.order += public.static.nonfinal.method
types.order += package.static.final.method
types.order += package.static.nonfinal.method
types.order += private.static.final.method
types.order += private.static.nonfinal.method
types.order += protected.static.final.method
types.order += protected.static.nonfinal.method

types.order += public.ctor
types.order += protected.ctor
types.order += package.ctor
types.order += private.ctor

types.order += public.method.finalize
types.order += protected.method.finalize
types.order += package.method.finalize
types.order += private.method.finalize

types.order += public.instance.final.method
types.order += public.instance.nonfinal.method
types.order += package.instance.final.method
types.order += package.instance.nonfinal.method
types.order += private.instance.final.method
types.order += private.instance.nonfinal.method
types.order += protected.instance.final.method
types.order += protected.instance.nonfinal.method

types.order += public.instance.final.method
types.order += protected.instance.final.method
types.order += package.instance.final.method
types.order += private.instance.final.method

types.order += public.static.*.method.main

# suppress level 1 documentation errors
suppress     = D1..

tabwidth     = 8

# User-defined tags.

tags.custom  = @bug
tags.custom += @note
tags.custom += @status
tags.custom += @test
