##### General

- Home
- Downloads
- Javadocs
- Mailing Lists
- Bug Tracker
- SourceForge Project
- GitHub Project

##### Running

- Ant Task Usage
- Command-Line
- Run as a Test
- Other Tools/Frameworks

##### Using

- Creating a RuleSet
- Creating a Rule
- Configuring Rules
- Starter RuleSet (All)

##### Report Types

- HTML Report
- XML Report
- Text and IDE Reports

##### Sample Reports

- Sample HTML Report
- Sample XML Report

##### Rules

- Rule Index
- Basic Rules
- Braces Rules
- Concurrency Rules
- Convention Rules
- Design Rules
- DRY Rules
- Enhanced Rules
- Exceptions Rules
- Formatting Rules
- Generic Rules
- Grails Rules
- Groovyism Rules
- Imports Rules
- JDBC Rules
- JUnit Rules
- Logging Rules
- Naming Rules
- Size/Complexity Rules
- Security Rules
- Serialization Rules
- Unnecessary Rules
- Unused Rules

##### Developing

- Developer Guide

##### Project Documentation

- Project Information
- Project Reports
  - Cobertura Test Coverage
  - JavaDocs
  - CPD
  - PMD

## CPD Results

The following document contains the results of PMD's CPD 5.1.2.

## Duplications

File | Line
--- | ---
org\codenarc\rule\AbstractFieldVisitor.java | 110
org\codenarc\rule\AbstractMethodVisitor.java | 138
        }

        @Override
        protected final void visitObjectInitializerStatements(ClassNode node) {
            throw new UnsupportedOperationException();
        }

        @Override
        protected final SourceUnit getSourceUnit() {
            throw new RuntimeException("should never be called");
        }

        @Override
        public final void visitPackage(PackageNode node) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitImports(ModuleNode node) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitAnnotations(AnnotatedNode node) {
            throw new UnsupportedOperationException();
        }

        @Override
        protected final void visitClassCodeContainer(Statement code) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitVariableExpression(VariableExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        protected final void visitConstructorOrMethod(MethodNode node, boolean isConstructor) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitConstructor(ConstructorNode node) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitProperty(PropertyNode node) {
            throw new UnsupportedOperationException();
        }

        @Override
        protected final void addError(String msg, ASTNode expr) {
            super.addError(msg, expr);
        }

        @Override
        protected final void visitStatement(Statement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitAssertStatement(AssertStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitBlockStatement(BlockStatement block) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitBreakStatement(BreakStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitCaseStatement(CaseStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitCatchStatement(CatchStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitContinueStatement(ContinueStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitDoWhileLoop(DoWhileStatement loop) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitExpressionStatement(ExpressionStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitForLoop(ForStatement forLoop) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitIfElse(IfStatement ifElse) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitReturnStatement(ReturnStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitSwitch(SwitchStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitSynchronizedStatement(SynchronizedStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitThrowStatement(ThrowStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitTryCatchFinally(TryCatchStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitWhileLoop(WhileStatement loop) {
            throw new UnsupportedOperationException();
        }

        @Override
        protected final void visitEmptyStatement(EmptyStatement statement) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitMethodCallExpression(MethodCallExpression call) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitStaticMethodCallExpression(StaticMethodCallExpression call) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitConstructorCallExpression(ConstructorCallExpression call) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitBinaryExpression(BinaryExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitTernaryExpression(TernaryExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitShortTernaryExpression(ElvisOperatorExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitPostfixExpression(PostfixExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitPrefixExpression(PrefixExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitBooleanExpression(BooleanExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitNotExpression(NotExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitClosureExpression(ClosureExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitTupleExpression(TupleExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitListExpression(ListExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitArrayExpression(ArrayExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitMapExpression(MapExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitMapEntryExpression(MapEntryExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitRangeExpression(RangeExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitSpreadExpression(SpreadExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitSpreadMapExpression(SpreadMapExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitMethodPointerExpression(MethodPointerExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitUnaryMinusExpression(UnaryMinusExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitUnaryPlusExpression(UnaryPlusExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitBitwiseNegationExpression(BitwiseNegationExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitCastExpression(CastExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitConstantExpression(ConstantExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitClassExpression(ClassExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitDeclarationExpression(DeclarationExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitPropertyExpression(PropertyExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitAttributeExpression(AttributeExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitFieldExpression(FieldExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitGStringExpression(GStringExpression expression) {
            throw new UnsupportedOperationException();
        }

        @Override
        protected final void visitListOfExpressions(List<? extends Expression> list) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitArgumentlistExpression(ArgumentListExpression ale) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitClosureListExpression(ClosureListExpression cle) {
            throw new UnsupportedOperationException();
        }

        @Override
        public final void visitBytecodeExpression(BytecodeExpression cle) {
            throw new UnsupportedOperationException();
        }
        @Override
        public final void visitMethod(MethodNode node) {