1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
|
<html><head><title>CodeNarc Report: Gradle-1.0-milestone-9</title><style type='text/css'>body {
font-family: Arial, sans-serif;
margin: 20px 20px 20px 30px;
}
h1, h2, h3 {
font-weight: bold;
}
h1 {
width: 400px;
text-align: center;
color: white;
background-color: #557799;
padding: 10px;
-moz-box-shadow: 3px 3px 4px #AAA;
-webkit-box-shadow: 3px 3px 4px #AAA;
box-shadow: 3px 3px 4px #AAA;
border-radius: 10px;
-moz-border-radius: 10px;
text-shadow: 2px 2px 2px black;
}
h2 {
font-size: 150%;
margin-top: 40px;
padding-top: 5px;
border-top: 5px solid lightgray;
}
h3 {
margin-left: 10px;
margin-top: 30px;
}
a {
text-decoration: underline;
color: #D93544;
}
.logo {
float: right;
}
.metadata {
}
.summary {
margin-bottom: 20px;
}
.reportInfo {
font-size: 110%;
}
.allPackages {
font-weight: bold;
}
.fileHeader {
font-size: 120%;
font-weight: bold;
}
.tableHeader {
font-weight: bold;
}
.number {
text-align: center;
}
.priority1, .priority2, .priority3 {
font-weight: bold;
text-align: center;
color: #990000;
}
.priority1 {
background-color: #FFAAAA;
}
.priority2 {
background-color: #FFCCAA;
}
.priority3 {
background-color: #FFEEAA;
}
.ruleName {
font-weight: bold;
color: black;
text-align: left;
}
.violationInfo {
margin-bottom: 2px;
margin-top: 2px;
}
.violationInfoPrefix {
font-size: 60%;
width: 30px;
color: #a9a9a9;
padding-right: 4px;
}
.sourceCode {
font-family: Arial, sans-serif;
font-size: 80%;
color: #444444;
}
.violationMessage {
font-style: italic;
font-size: 80%;
color: black;
}
.ruleDescriptions {
font-size: 85%;
}
.version {
margin-top: 1px;
}
table {
border: 2px solid gray;
border-collapse: collapse;
-moz-box-shadow: 3px 3px 4px #AAA;
-webkit-box-shadow: 3px 3px 4px #AAA;
box-shadow: 3px 3px 4px #AAA;
}
td, th {
border: 1px solid #D3D3D3;
padding: 4px 20px 4px 20px;
}
th {
text-shadow: 2px 2px 2px white;
}
th {
border-bottom: 1px solid gray;
background-color: #DDDDFF;
}
em, .em {
font-weight: bold;
}</style></head><body><img class='logo' src='http://codenarc.sourceforge.net/images/codenarc-logo.png' alt='CodeNarc' align='right'/><h1>CodeNarc Report</h1><div class='metadata'><table><tr><td class='em'>Report title:</td><td>Gradle-1.0-milestone-9</td></tr><tr><td class='em'>Date:</td><td>Mar 23, 2012 5:46:40 PM</td></tr><tr><td class='em'>Generated with:</td><td><a href='http://www.codenarc.org'>CodeNarc v0.17</a></td></tr></table></div><div class='summary'><h2>Summary by Package</h2><table><tr class='tableHeader'><th>Package</th><th>Total Files</th><th>Files with Violations</th><th>Priority 1</th><th>Priority 2</th><th>Priority 3</th></tr><tr><td class='allPackages'>All Packages</td><td class='number'>258</td><td class='number'>125</td><td class='priority1'>-</td><td class='priority2'>56</td><td class='priority3'>389</td></tr><tr><td>src/org/gradle/api/internal</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/internal/artifacts/dsl'>src/org/gradle/api/internal/artifacts/dsl</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>4</td></tr><tr><td><a href='#src/org/gradle/api/internal/artifacts/dsl/dependencies'>src/org/gradle/api/internal/artifacts/dsl/dependencies</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>3</td></tr><tr><td><a href='#src/org/gradle/api/internal/file'>src/org/gradle/api/internal/file</a></td><td class='number'>4</td><td class='number'>3</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>4</td></tr><tr><td>src/org/gradle/api/internal/plugins</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/internal/project'>src/org/gradle/api/internal/project</a></td><td class='number'>3</td><td class='number'>3</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>18</td></tr><tr><td><a href='#src/org/gradle/api/internal/tasks/compile'>src/org/gradle/api/internal/tasks/compile</a></td><td class='number'>3</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>1</td></tr><tr><td><a href='#src/org/gradle/api/internal/tasks/scala'>src/org/gradle/api/internal/tasks/scala</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/plugins'>src/org/gradle/api/plugins</a></td><td class='number'>7</td><td class='number'>5</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>13</td></tr><tr><td>src/org/gradle/api/plugins/announce</td><td class='number'>3</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/plugins/announce/internal'>src/org/gradle/api/plugins/announce/internal</a></td><td class='number'>12</td><td class='number'>6</td><td class='priority1'>-</td><td class='priority2'>7</td><td class='priority3'>7</td></tr><tr><td>src/org/gradle/api/plugins/osgi</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/plugins/quality'>src/org/gradle/api/plugins/quality</a></td><td class='number'>19</td><td class='number'>7</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>25</td></tr><tr><td><a href='#src/org/gradle/api/plugins/quality/internal'>src/org/gradle/api/plugins/quality/internal</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>4</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/plugins/scala'>src/org/gradle/api/plugins/scala</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>11</td></tr><tr><td>src/org/gradle/api/plugins/sonar</td><td class='number'>2</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/plugins/sonar/internal'>src/org/gradle/api/plugins/sonar/internal</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>1</td></tr><tr><td><a href='#src/org/gradle/api/plugins/sonar/model'>src/org/gradle/api/plugins/sonar/model</a></td><td class='number'>4</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/publication'>src/org/gradle/api/publication</a></td><td class='number'>4</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>3</td></tr><tr><td>src/org/gradle/api/publication/maven</td><td class='number'>6</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/publication/maven/internal'>src/org/gradle/api/publication/maven/internal</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/publication/maven/internal/ant'>src/org/gradle/api/publication/maven/internal/ant</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/publication/maven/internal/model'>src/org/gradle/api/publication/maven/internal/model</a></td><td class='number'>3</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>1</td></tr><tr><td>src/org/gradle/api/publication/maven/internal/modelbuilder</td><td class='number'>2</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td>src/org/gradle/api/tasks</td><td class='number'>2</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/api/tasks/application'>src/org/gradle/api/tasks/application</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>20</td></tr><tr><td><a href='#src/org/gradle/api/tasks/bundling'>src/org/gradle/api/tasks/bundling</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>9</td></tr><tr><td><a href='#src/org/gradle/api/tasks/compile'>src/org/gradle/api/tasks/compile</a></td><td class='number'>7</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/tasks/javadoc'>src/org/gradle/api/tasks/javadoc</a></td><td class='number'>2</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>1</td></tr><tr><td><a href='#src/org/gradle/api/tasks/scala'>src/org/gradle/api/tasks/scala</a></td><td class='number'>3</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/api/tasks/testing/testng'>src/org/gradle/api/tasks/testing/testng</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>4</td></tr><tr><td><a href='#src/org/gradle/api/tasks/util'>src/org/gradle/api/tasks/util</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>2</td><td class='priority3'>8</td></tr><tr><td><a href='#src/org/gradle/groovy/scripts'>src/org/gradle/groovy/scripts</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>12</td></tr><tr><td><a href='#src/org/gradle/initialization'>src/org/gradle/initialization</a></td><td class='number'>3</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>3</td></tr><tr><td><a href='#src/org/gradle/integtests/fixtures'>src/org/gradle/integtests/fixtures</a></td><td class='number'>17</td><td class='number'>15</td><td class='priority1'>-</td><td class='priority2'>30</td><td class='priority3'>52</td></tr><tr><td><a href='#src/org/gradle/plugins/binaries/model/internal'>src/org/gradle/plugins/binaries/model/internal</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>1</td></tr><tr><td>src/org/gradle/plugins/binaries/tasks</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td>src/org/gradle/plugins/cpp</td><td class='number'>3</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td>src/org/gradle/plugins/cpp/cdt</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/cpp/cdt/model'>src/org/gradle/plugins/cpp/cdt/model</a></td><td class='number'>4</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>-</td></tr><tr><td>src/org/gradle/plugins/cpp/cdt/tasks</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/cpp/gpp'>src/org/gradle/plugins/cpp/gpp</a></td><td class='number'>3</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>8</td></tr><tr><td>src/org/gradle/plugins/cpp/msvcpp</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/ear'>src/org/gradle/plugins/ear</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>4</td></tr><tr><td><a href='#src/org/gradle/plugins/ear/descriptor/internal'>src/org/gradle/plugins/ear/descriptor/internal</a></td><td class='number'>4</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>2</td><td class='priority3'>2</td></tr><tr><td>src/org/gradle/plugins/ide/api</td><td class='number'>3</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/eclipse'>src/org/gradle/plugins/ide/eclipse</a></td><td class='number'>7</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>11</td></tr><tr><td>src/org/gradle/plugins/ide/eclipse/internal</td><td class='number'>2</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/eclipse/model'>src/org/gradle/plugins/ide/eclipse/model</a></td><td class='number'>27</td><td class='number'>12</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>28</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/eclipse/model/internal'>src/org/gradle/plugins/ide/eclipse/model/internal</a></td><td class='number'>8</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>4</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/idea'>src/org/gradle/plugins/ide/idea</a></td><td class='number'>4</td><td class='number'>3</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>3</td></tr><tr><td>src/org/gradle/plugins/ide/idea/internal</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/idea/model'>src/org/gradle/plugins/ide/idea/model</a></td><td class='number'>17</td><td class='number'>13</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>49</td></tr><tr><td>src/org/gradle/plugins/ide/idea/model/internal</td><td class='number'>2</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/internal'>src/org/gradle/plugins/ide/internal</a></td><td class='number'>2</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>11</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/internal/configurer'>src/org/gradle/plugins/ide/internal/configurer</a></td><td class='number'>3</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>3</td></tr><tr><td><a href='#src/org/gradle/plugins/ide/internal/generator'>src/org/gradle/plugins/ide/internal/generator</a></td><td class='number'>3</td><td class='number'>2</td><td class='priority1'>-</td><td class='priority2'>2</td><td class='priority3'>2</td></tr><tr><td><a href='#src/org/gradle/plugins/signing'>src/org/gradle/plugins/signing</a></td><td class='number'>7</td><td class='number'>4</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>28</td></tr><tr><td>src/org/gradle/plugins/signing/signatory</td><td class='number'>3</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/plugins/signing/signatory/pgp'>src/org/gradle/plugins/signing/signatory/pgp</a></td><td class='number'>4</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>1</td></tr><tr><td><a href='#src/org/gradle/plugins/signing/type'>src/org/gradle/plugins/signing/type</a></td><td class='number'>6</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>3</td></tr><tr><td>src/org/gradle/plugins/signing/type/pgp</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/profile'>src/org/gradle/profile</a></td><td class='number'>1</td><td class='number'>1</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>-</td></tr><tr><td>src/org/gradle/testing/internal/util</td><td class='number'>1</td><td class='number'>-</td><td class='priority1'>-</td><td class='priority2'>-</td><td class='priority3'>-</td></tr><tr><td><a href='#src/org/gradle/util'>src/org/gradle/util</a></td><td class='number'>8</td><td class='number'>5</td><td class='priority1'>-</td><td class='priority2'>1</td><td class='priority3'>17</td></tr></table></div><div class='summary'><a name='src/org/gradle/api/internal/artifacts/dsl'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.internal.artifacts.dsl</h2></div><div class='summary'><h3 class='fileHeader'>➥ DefaultArtifactHandler.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>35</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def DefaultArtifactHandler(ConfigurationContainer config..ctFactory) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private PublishArtifact pushArtifact(org.gradle.api.arti..reClosure) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The org.gradle.api.artifacts.Configuration class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>55</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>public def methodMissing(String name, args) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler. The def keyword is unneeded when a method is marked public</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>58</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (!getMetaClass().respondsTo(this, name, args.size())) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.artifacts.dsl.DefaultArtifactHandler. getMetaClass() can probably be rewritten as metaClass</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/internal/artifacts/dsl/dependencies'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.internal.artifacts.dsl.dependencies</h2></div><div class='summary'><h3 class='fileHeader'>➥ DefaultDependencyHandler.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>34</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def DefaultDependencyHandler(ConfigurationContainer conf..encyFactory,</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>93</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (!getMetaClass().respondsTo(this, name, args.size())) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. getMetaClass() can probably be rewritten as metaClass</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ ModuleDescriptorDelegate.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>29</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def ModuleFactoryDelegate(ClientModule clientModule, Dep..cyFactory) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.artifacts.dsl.dependencies.ModuleFactoryDelegate. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/internal/file'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.internal.file</h2></div><div class='summary'><h3 class='fileHeader'>➥ AntFileCollectionBuilder.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryParenthesesForMethodCallWithClosure'>UnnecessaryParenthesesForMethodCallWithClosure</a></td><td class='priority3'>3</td><td class='number'>33</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>node."${childNodeName ?: 'resources'}"() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.file.AntFileCollectionBuilder. Parentheses in the 'null' method call are unnecessary and can be removed.</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ AntFileCollectionMatchingTaskBuilder.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>24</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntFileCollectionMatchingTaskBuilder(Iterable<Direct..fileTrees) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.file.AntFileCollectionMatchingTaskBuilder. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ AntFileTreeBuilder.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>24</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntFileTreeBuilder(Map<String, File> files) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.file.AntFileTreeBuilder. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryParenthesesForMethodCallWithClosure'>UnnecessaryParenthesesForMethodCallWithClosure</a></td><td class='priority3'>3</td><td class='number'>29</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>node."${childNodeName ?: 'resources'}"() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.file.AntFileTreeBuilder. Parentheses in the 'null' method call are unnecessary and can be removed.</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/internal/project'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.internal.project</h2></div><div class='summary'><h3 class='fileHeader'>➥ DefaultAntBuilder.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>32</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def DefaultAntBuilder(Project gradleProject) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.DefaultAntBuilder. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>36</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Object invokeMethod(String methodName, Object args) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.DefaultAntBuilder. The def keyword is unneeded when a method returns the Object type</span></p></td></tr><tr><td><a href='#UnnecessaryOverridingMethod'>UnnecessaryOverridingMethod</a></td><td class='priority3'>3</td><td class='number'>36</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Object invokeMethod(String methodName, Object args) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class DefaultAntBuilder. The method invokeMethod contains no logic and can be safely deleted</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def doSetProperty(String property, newValue) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.DefaultAntBuilder. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>75</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antProject.setUserProperty(MagicNames.ANT_FILE, file.get..olutePath())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.DefaultAntBuilder. getAbsolutePath() can probably be rewritten as absolutePath</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ DefaultIsolatedAntBuilder.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>31</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def DefaultIsolatedAntBuilder(ClassPathRegistry classPat..erFactory) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.DefaultIsolatedAntBuilder. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>103</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Object antBuilder = gradleLoader.loadClass(BasicAntBuild..ewInstance()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>BasicAntBuilder.class can be rewritten as BasicAntBuilder</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>105</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Object antLogger = gradleLoader.loadClass(AntLoggingAdap..ewInstance()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>AntLoggingAdapter.class can be rewritten as AntLoggingAdapter</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antBuilder.project.removeBuildListener(antBuilder.projec..teners()[0])</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.DefaultIsolatedAntBuilder. getBuildListeners() can probably be rewritten as buildListeners</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>124</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntBuilderDelegate(builder, antlibClassLoader) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.AntBuilderDelegate. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ ProjectScript.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>29</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def void apply(Closure closure) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>33</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def void apply(Map options) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def ScriptHandler getBuildscript() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def void buildscript(Closure configureClosure) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>45</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def StandardOutputCapture getStandardOutputCapture() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def LoggingManager getLogging() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>53</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Logger getLogger() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>57</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String toString() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.project.ProjectScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/internal/tasks/compile'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.internal.tasks.compile</h2></div><div class='summary'><h3 class='fileHeader'>➥ AntGroovyCompiler.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedPrivateField'>UnusedPrivateField</a></td><td class='priority2'>2</td><td class='number'>35</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private static Logger logger = LoggerFactory.getLogger(A..ovyCompiler)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The field logger is not used within the class org.gradle.api.internal.tasks.compile.AntGroovyCompiler</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>42</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntGroovyCompiler(IsolatedAntBuilder ant, ClassPathR..hRegistry) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.tasks.compile.AntGroovyCompiler. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/internal/tasks/scala'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.internal.tasks.scala</h2></div><div class='summary'><h3 class='fileHeader'>➥ AntScalaCompiler.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedPrivateField'>UnusedPrivateField</a></td><td class='priority2'>2</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private static Logger logger = LoggerFactory.getLogger(A..alaCompiler)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The field logger is not used within the class org.gradle.api.internal.tasks.scala.AntScalaCompiler</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>33</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntScalaCompiler(IsolatedAntBuilder antBuilder) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.tasks.scala.AntScalaCompiler. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>39</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntScalaCompiler(IsolatedAntBuilder antBuilder, Iter..nsionDirs) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.internal.tasks.scala.AntScalaCompiler. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins</h2></div><div class='summary'><h3 class='fileHeader'>➥ ApplicationPlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>98</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>installTask.doLast {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ BasePlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>77</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Delete clean = project.tasks.add(CLEAN_TASK_NAME, Delete.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Delete.class can be rewritten as Delete</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>92</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String targetTaskName = taskName.substring(prefix.length())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.BasePlugin. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Configuration configuration = project.configurations.fin...length())))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.BasePlugin. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>120</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.tasks.add(taskName).dependsOn(configuration.getA..figuration))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.BasePlugin. getAllArtifacts() can probably be rewritten as allArtifacts</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>158</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Upload upload = project.getTasks().add(name, Upload.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.BasePlugin. getTasks() can probably be rewritten as tasks</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>158</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Upload upload = project.getTasks().add(name, Upload.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Upload.class can be rewritten as Upload</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>161</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>upload.descriptorDestination = new File(project.getBuild.., "ivy.xml")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.BasePlugin. getBuildDir() can probably be rewritten as buildDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>168</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigurationContainer configurations = project.getConfigurations();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.BasePlugin. getConfigurations() can probably be rewritten as configurations</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ JavaPluginConvention.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>74</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>sourceSets = instantiator.newInstance(DefaultSourceSetCo..nstantiator)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>DefaultSourceSetContainer.class can be rewritten as DefaultSourceSetContainer</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>185</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return ConfigureUtil.configure(closure, new DefaultManif..eResolver));</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.JavaPluginConvention. getProject() can probably be rewritten as project</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ ProjectReportsPluginConvention.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>29</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def ProjectReportsPluginConvention(Project project) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.ProjectReportsPluginConvention. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ WarPluginConvention.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WarPluginConvention(Project project) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.WarPluginConvention. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins/announce/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins.announce.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ AnnouncingBuildListener.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>35</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void beforeExecute(Task task) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AnnouncingBuildListener. Method parameter [task] is never referenced in the method beforeExecute of class org.gradle.api.plugins.announce.internal.AnnouncingBuildListener</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>73</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ AppleScriptBackedGrowlAnnouncer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>56</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def escape(String value) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.announce.internal.AppleScriptBackedGrowlAnnouncer. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ DefaultAnnouncerFactory.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#EmptyCatchBlock'>EmptyCatchBlock</a></td><td class='priority2'>2</td><td class='number'>66</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} catch (ClassNotFoundException e) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The catch block is empty</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>78</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void send(String title, String message) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class UnknownAnnouncer. Method parameter [title] is never referenced in the method send of class org.gradle.api.plugins.announce.internal.UnknownAnnouncer</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>78</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void send(String title, String message) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class UnknownAnnouncer. Method parameter [message] is never referenced in the method send of class org.gradle.api.plugins.announce.internal.UnknownAnnouncer</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return getClass().getClassLoader().loadClass("org.gradle..conProvider)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.announce.internal.DefaultAnnouncerFactory. getClassLoader() can probably be rewritten as classLoader</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ GrowlNotifyBackedAnnouncer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedPrivateMethod'>UnusedPrivateMethod</a></td><td class='priority2'>2</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def escape(String value) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The method escape is not used within GrowlNotifyBackedAnnouncer.groovy</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def escape(String value) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.announce.internal.GrowlNotifyBackedAnnouncer. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Snarl.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>43</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>with(new PrintWriter(sock.getOutputStream(), true)) { out -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.announce.internal.Snarl. getOutputStream() can probably be rewritten as outputStream</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>66</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Twitter.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#ImportFromSunPackages'>ImportFromSunPackages</a></td><td class='priority2'>2</td><td class='number'>20</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>import sun.misc.BASE64Encoder</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The file imports sun.misc.BASE64Encoder, which is not portable and likely to change</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void send(String title, String message) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class Twitter. Method parameter [title] is never referenced in the method send of class org.gradle.api.plugins.announce.internal.Twitter</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins/quality'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins.quality</h2></div><div class='summary'><h3 class='fileHeader'>➥ Checkstyle.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>66</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getConfigProperties()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getConfigProperties() can probably be rewritten as configProperties</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>144</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antBuilder.withClasspath(getCheckstyleClasspath()).execute {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getCheckstyleClasspath() can probably be rewritten as checkstyleClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>147</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ant.checkstyle(config: getConfigFile(), failOnViolation:..pertyName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getConfigFile() can probably be rewritten as configFile</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>148</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getSource().addToAntBuilder(ant, 'fileset', FileCollecti..ype.FileSet)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getSource() can probably be rewritten as source</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>149</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getClasspath().addToAntBuilder(ant, 'classpath')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getClasspath() can probably be rewritten as classpath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>155</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getConfigProperties().each { key, value -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getConfigProperties() can probably be rewritten as configProperties</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>160</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (!getIgnoreFailures() && ant.project.properties[propertyName]) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Checkstyle. getIgnoreFailures() can probably be rewritten as ignoreFailures</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ CodeNarc.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>102</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antBuilder.withClasspath(getCodenarcClasspath()).execute {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.CodeNarc. getCodenarcClasspath() can probably be rewritten as codenarcClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>105</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ant.codenarc(ruleSetFiles: "file:${getConfigFile()}", ma..ations: 0) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.CodeNarc. getConfigFile() can probably be rewritten as configFile</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>116</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (getIgnoreFailures()) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.CodeNarc. getIgnoreFailures() can probably be rewritten as ignoreFailures</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ FindBugs.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>113</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antBuilder.withClasspath(getFindbugsClasspath()).execute {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.FindBugs. getFindbugsClasspath() can probably be rewritten as findbugsClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>116</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getFindbugsClasspath().addToAntBuilder(ant, 'classpath')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.FindBugs. getFindbugsClasspath() can probably be rewritten as findbugsClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>117</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getPluginClasspath().addToAntBuilder(ant, 'pluginList')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.FindBugs. getPluginClasspath() can probably be rewritten as pluginClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getClasses().addToAntBuilder(ant, 'auxAnalyzepath')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.FindBugs. getClasses() can probably be rewritten as classes</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>121</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>addUnlessEmpty(ant, getClasspath(), 'auxClasspath')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.FindBugs. getClasspath() can probably be rewritten as classpath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>122</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>addUnlessEmpty(ant, getSource(), 'sourcePath')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.FindBugs. getSource() can probably be rewritten as source</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ GroovyCodeQualityPluginConvention.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def GroovyCodeQualityPluginConvention(Project project) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.GroovyCodeQualityPluginConvention. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ JDepend.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>99</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antBuilder.withClasspath(getJdependClasspath()).execute {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.JDepend. getJdependClasspath() can probably be rewritten as jdependClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>103</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>pathElement(location: getClassesDir())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.JDepend. getClassesDir() can probably be rewritten as classesDir</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ JavaCodeQualityPluginConvention.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def JavaCodeQualityPluginConvention(Project project) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.JavaCodeQualityPluginConvention. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Pmd.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>68</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>antBuilder.withClasspath(getPmdClasspath()).execute {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Pmd. getPmdClasspath() can probably be rewritten as pmdClasspath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>70</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ant.pmd(failOnRuleViolation: !getIgnoreFailures()) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Pmd. getIgnoreFailures() can probably be rewritten as ignoreFailures</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>71</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getSource().addToAntBuilder(ant, 'fileset', FileCollecti..ype.FileSet)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Pmd. getSource() can probably be rewritten as source</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>72</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getRuleSets().each {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Pmd. getRuleSets() can probably be rewritten as ruleSets</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>75</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getRuleSetFiles().each {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.Pmd. getRuleSetFiles() can probably be rewritten as ruleSetFiles</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins/quality/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins.quality.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ AbstractCodeQualityPlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void configureTaskDefaults(T task, String baseName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AbstractCodeQualityPlugin. Method parameter [task] is never referenced in the method configureTaskDefaults of class org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void configureTaskDefaults(T task, String baseName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AbstractCodeQualityPlugin. Method parameter [baseName] is never referenced in the method configureTaskDefaults of class org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void configureForSourceSet(SourceSet sourceSet, T task) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AbstractCodeQualityPlugin. Method parameter [sourceSet] is never referenced in the method configureForSourceSet of class org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void configureForSourceSet(SourceSet sourceSet, T task) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AbstractCodeQualityPlugin. Method parameter [task] is never referenced in the method configureForSourceSet of class org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>101</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>prunedName = prunedName[0].toLowerCase() + prunedName.substring(1)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessaryCollectCall'>UnnecessaryCollectCall</a></td><td class='priority3'>3</td><td class='number'>123</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.tasks['check'].dependsOn { extension.sourceSets...me, null) }}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin. The call to collect could probably be rewritten as a spread expression: extension.sourceSets*.getTaskName(taskBaseName, null)</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins/scala'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins.scala</h2></div><div class='summary'><h3 class='fileHeader'>➥ ScalaBasePlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedPrivateMethodParameter'>UnusedPrivateMethodParameter</a></td><td class='priority2'>2</td><td class='number'>64</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private void configureCompileDefaults(final Project proj..avaPlugin) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class ScalaBasePlugin. Method parameter [javaPlugin] is never referenced in the method configureCompileDefaults of class org.gradle.api.plugins.scala.ScalaBasePlugin</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>35</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>JavaBasePlugin javaPlugin = project.plugins.apply(JavaBa..ugin.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>JavaBasePlugin.class can be rewritten as JavaBasePlugin</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.convention.getPlugin(JavaPluginConvention.class)..sourceSet -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>JavaPluginConvention.class can be rewritten as JavaPluginConvention</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>54</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ScalaCompile scalaCompile = project.tasks.add(taskName, ..pile.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScalaCompile.class can be rewritten as ScalaCompile</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.tasks.withType(ScalaCompile.class) {ScalaCompile compile -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScalaCompile.class can be rewritten as ScalaCompile</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>71</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.getTasks().withType(ScalaDoc.class) {ScalaDoc scalaDoc -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.scala.ScalaBasePlugin. getTasks() can probably be rewritten as tasks</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>71</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.getTasks().withType(ScalaDoc.class) {ScalaDoc scalaDoc -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScalaDoc.class can be rewritten as ScalaDoc</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ ScalaPlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.plugins.apply(ScalaBasePlugin.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScalaBasePlugin.class can be rewritten as ScalaBasePlugin</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>31</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.plugins.apply(JavaPlugin.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>JavaPlugin.class can be rewritten as JavaPlugin</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.getTasks().withType(ScalaDoc.class) {ScalaDoc scalaDoc -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.plugins.scala.ScalaPlugin. getTasks() can probably be rewritten as tasks</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.getTasks().withType(ScalaDoc.class) {ScalaDoc scalaDoc -></span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScalaDoc.class can be rewritten as ScalaDoc</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ScalaDoc scalaDoc = project.tasks.add(SCALA_DOC_TASK_NAM..laDoc.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScalaDoc.class can be rewritten as ScalaDoc</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins/sonar/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins.sonar.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ SonarCodeAnalyzer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>71</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>projectDef.workDir = sonarProject.workDir</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/plugins/sonar/model'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.plugins.sonar.model</h2></div><div class='summary'><h3 class='fileHeader'>➥ IncludeProperties.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>26</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>public @interface IncludeProperties {}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The java.lang.annotation.Annotation class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ SonarProperty.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>26</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>public @interface SonarProperty {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The java.lang.annotation.Annotation class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/publication'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.publication</h2></div><div class='summary'><h3 class='fileHeader'>➥ PublicationPlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>36</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.task("publishArchives", dependsOn: 'assemble', t..ons.class) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>PublishPublications.class can be rewritten as PublishPublications</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>39</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.task("installArchives", dependsOn: 'assemble', t..ons.class) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>InstallPublications.class can be rewritten as InstallPublications</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Publications.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(c, getMaven())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.publication.Publications. getMaven() can probably be rewritten as maven</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/publication/maven/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.publication.maven.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ MavenPublicationPomGenerator.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>model.description = publication.description</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>55</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>dependency.optional = mavenDep.optional</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/publication/maven/internal/ant'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.publication.maven.internal.ant</h2></div><div class='summary'><h3 class='fileHeader'>➥ DefaultGroovyMavenDeployer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>47</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ DefaultMavenPublisher.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>55</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def execute(MavenPublication publication, Instal..port task) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.publication.maven.internal.ant.DefaultMavenPublisher. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/publication/maven/internal/model'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.publication.maven.internal.model</h2></div><div class='summary'><h3 class='fileHeader'>➥ DefaultMavenPublication.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>42</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(c, getRepository())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.publication.maven.internal.model.DefaultMavenPublication. getRepository() can probably be rewritten as repository</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/application'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.application</h2></div><div class='summary'><h3 class='fileHeader'>➥ CreateStartScripts.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>69</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (!getApplicationName()) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>72</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return "${GUtil.toConstant(getApplicationName())}_OPTS"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>80</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (!getApplicationName()) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>83</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return "${GUtil.toConstant(getApplicationName())}_EXIT_CONSOLE"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>88</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new File(getOutputDir(), getApplicationName())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getOutputDir() can probably be rewritten as outputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>88</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new File(getOutputDir(), getApplicationName())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>93</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new File(getOutputDir(), "${getApplicationName()}.bat")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getOutputDir() can probably be rewritten as outputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>93</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new File(getOutputDir(), "${getApplicationName()}.bat")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>98</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getOutputDir().mkdirs()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getOutputDir() can probably be rewritten as outputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>101</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.applicationName = getApplicationName()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getApplicationName() can probably be rewritten as applicationName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>102</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.mainClassName = getMainClassName()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getMainClassName() can probably be rewritten as mainClassName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>103</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.optsEnvironmentVar = getOptsEnvironmentVar()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getOptsEnvironmentVar() can probably be rewritten as optsEnvironmentVar</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>104</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.exitEnvironmentVar = getExitEnvironmentVar()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getExitEnvironmentVar() can probably be rewritten as exitEnvironmentVar</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>105</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.classpath = getClasspath().collect { "lib/${it.name}" }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getClasspath() can probably be rewritten as classpath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.scriptRelPath = "bin/${getUnixScript().name}"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getUnixScript() can probably be rewritten as unixScript</span></p></td></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.scriptRelPath = "bin/${getUnixScript().name}"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>107</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.generateUnixScript(getUnixScript())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getUnixScript() can probably be rewritten as unixScript</span></p></td></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>107</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.generateUnixScript(getUnixScript())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>108</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.generateWindowsScript(getWindowsScript())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.application.CreateStartScripts. getWindowsScript() can probably be rewritten as windowsScript</span></p></td></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>108</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>generator.generateWindowsScript(getWindowsScript())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/bundling'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.bundling</h2></div><div class='summary'><h3 class='fileHeader'>➥ Jar.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>47</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Manifest manifest = getManifest() ?: new DefaultManifest(null)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.Jar. getManifest() can probably be rewritten as manifest</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>86</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (getManifest() == null) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.Jar. getManifest() can probably be rewritten as manifest</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>89</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(configureClosure, getManifest());</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.Jar. getManifest() can probably be rewritten as manifest</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>107</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return ConfigureUtil.configure(configureClosure, getMetaInf())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.Jar. getMetaInf() can probably be rewritten as metaInf</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ War.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def classpath = getClasspath()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.War. getClasspath() can probably be rewritten as classpath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>52</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def classpath = getClasspath()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.War. getClasspath() can probably be rewritten as classpath</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>58</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getWebXml()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.War. getWebXml() can probably be rewritten as webXml</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>80</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return ConfigureUtil.configure(configureClosure, getWebInf())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.War. getWebInf() can probably be rewritten as webInf</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>110</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>FileCollection oldClasspath = getClasspath()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.bundling.War. getClasspath() can probably be rewritten as classpath</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/compile'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.compile</h2></div><div class='summary'><h3 class='fileHeader'>➥ AbstractOptions.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>48</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>((field.getModifiers() & Modifier.STATIC) == 0) &&</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.compile.AbstractOptions. getModifiers() can probably be rewritten as modifiers</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>(field.getName() != "metaClass") &&</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.compile.AbstractOptions. getName() can probably be rewritten as name</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/javadoc'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.javadoc</h2></div><div class='summary'><h3 class='fileHeader'>➥ AntGroovydoc.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>31</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntGroovydoc(IsolatedAntBuilder ant, ClassPathRegist..hRegistry) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.javadoc.AntGroovydoc. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/scala'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.scala</h2></div><div class='summary'><h3 class='fileHeader'>➥ AntScalaDoc.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedPrivateField'>UnusedPrivateField</a></td><td class='priority2'>2</td><td class='number'>24</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private static Logger logger = LoggerFactory.getLogger(AntScalaDoc)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The field logger is not used within the class org.gradle.api.tasks.scala.AntScalaDoc</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntScalaDoc(IsolatedAntBuilder antBuilder) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.scala.AntScalaDoc. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>36</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AntScalaDoc(IsolatedAntBuilder antBuilder, Iterable<..nsionDirs) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.scala.AntScalaDoc. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/testing/testng'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.testing.testng</h2></div><div class='summary'><h3 class='fileHeader'>➥ TestNGOptions.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>194</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return suiteXmlBuilder.getMetaClass()."${name}"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.testing.testng.TestNGOptions. getMetaClass() can probably be rewritten as metaClass</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>195</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>202</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return suiteXmlBuilder.getMetaClass().invokeMethod(suite.. name, args)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.testing.testng.TestNGOptions. getMetaClass() can probably be rewritten as metaClass</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>203</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/api/tasks/util'> </a><h2 class='packageHeader'>Package: src.org.gradle.api.tasks.util</h2></div><div class='summary'><h3 class='fileHeader'>➥ PatternSet.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>206</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def addToAntBuilder(node, String childNodeName = null) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class PatternSet. Method parameter [childNodeName] is never referenced in the method addToAntBuilder of class org.gradle.api.tasks.util.PatternSet</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>242</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def addToAntBuilder(Object node, String childNodeName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class IntersectionPatternSet. Method parameter [childNodeName] is never referenced in the method addToAntBuilder of class org.gradle.api.tasks.util.IntersectionPatternSet</span></p></td></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def boolean caseSensitive = true</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.PatternSet. The def keyword is unneeded when a field type is specified</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>57</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>static def setGlobalExcludes(Collection<String> excludes) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.PatternSet. The def keyword is unneeded when a method is marked static</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>62</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>static def resetGlobalExcludes() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.PatternSet. The def keyword is unneeded when a method is marked static</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>66</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def boolean equals(Object o) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.PatternSet. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>76</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def int hashCode() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.PatternSet. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>234</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def IntersectionPatternSet(PatternSet other) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.IntersectionPatternSet. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>239</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new AndSpec<FileTreeElement>([super.getAsSpec(), ..] as Spec[])</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.IntersectionPatternSet. getAsSpec() can probably be rewritten as asSpec</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>239</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new AndSpec<FileTreeElement>([super.getAsSpec(), ..] as Spec[])</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.api.tasks.util.IntersectionPatternSet. getAsSpec() can probably be rewritten as asSpec</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/groovy/scripts'> </a><h2 class='packageHeader'>Package: src.org.gradle.groovy.scripts</h2></div><div class='summary'><h3 class='fileHeader'>➥ BasicScript.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>34</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>standardOutputCapture = services.get(StandardOutputCapture.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>StandardOutputCapture.class can be rewritten as StandardOutputCapture</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>38</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Object getScriptTarget() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.groovy.scripts.BasicScript. The def keyword is unneeded when a method returns the Object type</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>42</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def StandardOutputCapture getStandardOutputCapture() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.groovy.scripts.BasicScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return target.getProperties()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.groovy.scripts.BasicScript. getProperties() can probably be rewritten as properties</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ DefaultScript.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>43</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private static final Logger LOGGER = Logging.getLogger(Script.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Script.class can be rewritten as Script</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def void init(Object target, ServiceRegistry services) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.groovy.scripts.DefaultScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>52</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>loggingManager = services.get(LoggingManager.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>LoggingManager.class can be rewritten as LoggingManager</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>68</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ObjectConfigurationAction action = new DefaultObjectConf..criptTarget)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScriptPluginFactory.class can be rewritten as ScriptPluginFactory</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>74</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ObjectConfigurationAction action = new DefaultObjectConf..criptTarget)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScriptPluginFactory.class can be rewritten as ScriptPluginFactory</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>80</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return services.get(ScriptHandler.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>ScriptHandler.class can be rewritten as ScriptHandler</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>84</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(configureClosure, getBuildscript())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.groovy.scripts.DefaultScript. getBuildscript() can probably be rewritten as buildscript</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>172</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String toString() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.groovy.scripts.DefaultScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/initialization'> </a><h2 class='packageHeader'>Package: src.org.gradle.initialization</h2></div><div class='summary'><h3 class='fileHeader'>➥ InitScript.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>23</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getBuildscript()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.initialization.InitScript. getBuildscript() can probably be rewritten as buildscript</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String toString() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.initialization.InitScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ SettingsScript.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>21</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String toString() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.initialization.SettingsScript. The def keyword is unneeded when a method specifies a return type</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/integtests/fixtures'> </a><h2 class='packageHeader'>Package: src.org.gradle.integtests.fixtures</h2></div><div class='summary'><h3 class='fileHeader'>➥ AbstractAutoTestedSamplesTest.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#JUnitPublicNonTestMethod'>JUnitPublicNonTestMethod</a></td><td class='priority2'>2</td><td class='number'>26</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void runSamplesFrom(String dir) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AbstractAutoTestedSamplesTest. The method runSamplesFrom is public but not a test method</span></p></td></tr><tr><td><a href='#JUnitPublicNonTestMethod'>JUnitPublicNonTestMethod</a></td><td class='priority2'>2</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void includeOnly(String includes) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class AbstractAutoTestedSamplesTest. The method includeOnly is public but not a test method</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ AbstractIntegrationSpec.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>distribution.getTestDir();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.AbstractIntegrationSpec. getTestDir() can probably be rewritten as testDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>48</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getTestDir().file(path);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.AbstractIntegrationSpec. getTestDir() can probably be rewritten as testDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>130</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>executer.withUserHomeDir(distribution.getUserHomeDir())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.AbstractIntegrationSpec. getUserHomeDir() can probably be rewritten as userHomeDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>131</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new GradleBackedArtifactBuilder(executer, getTest..artifacts"))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.AbstractIntegrationSpec. getTestDir() can probably be rewritten as testDir</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ AutoTestedSamplesUtil.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryParenthesesForMethodCallWithClosure'>UnnecessaryParenthesesForMethodCallWithClosure</a></td><td class='priority3'>3</td><td class='number'>34</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>list.each() { runSamplesFromFile(it, runner) }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.AutoTestedSamplesUtil. Parentheses in the 'each' method call are unnecessary and can be removed.</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ CrossVersionIntegrationSpec.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>current.getTestDir();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.CrossVersionIntegrationSpec. getTestDir() can probably be rewritten as testDir</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ CrossVersionTestRunner.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>68</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def minVersion = targetGradleVersion.substring(0, target..ength() - 1)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.CrossVersionTestRunner$PreviousVersionExecution. The String.substring(int, int) method can be replaced with the subscript operator</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ HttpServer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>338</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean reauthenticate(Principal user) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. Method parameter [user] is never referenced in the method reauthenticate of class org.gradle.integtests.fixtures.HttpServer$TestUserRealm</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>342</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean isUserInRole(Principal user, String role) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. Method parameter [user] is never referenced in the method isUserInRole of class org.gradle.integtests.fixtures.HttpServer$TestUserRealm</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>342</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean isUserInRole(Principal user, String role) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. Method parameter [role] is never referenced in the method isUserInRole of class org.gradle.integtests.fixtures.HttpServer$TestUserRealm</span></p></td></tr><tr><td><a href='#EmptyMethod'>EmptyMethod</a></td><td class='priority2'>2</td><td class='number'>346</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void disassociate(Principal user) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. The method disassociate is both empty and not marked with @Override</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>346</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void disassociate(Principal user) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. Method parameter [user] is never referenced in the method disassociate of class org.gradle.integtests.fixtures.HttpServer$TestUserRealm</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>349</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Principal pushRole(Principal user, String role) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. Method parameter [role] is never referenced in the method pushRole of class org.gradle.integtests.fixtures.HttpServer$TestUserRealm</span></p></td></tr><tr><td><a href='#EmptyMethod'>EmptyMethod</a></td><td class='priority2'>2</td><td class='number'>357</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void logout(Principal user) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. The method logout is both empty and not marked with @Override</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>357</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void logout(Principal user) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class HttpServer$TestUserRealm. Method parameter [user] is never referenced in the method logout of class org.gradle.integtests.fixtures.HttpServer$TestUserRealm</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>31</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private static Logger logger = LoggerFactory.getLogger(H..erver.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>HttpServer.class can be rewritten as HttpServer</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>93</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def relativePath = request.pathInfo.substring(path.length() + 1)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.HttpServer$3. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ JUnitTestExecutionResult.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>100</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>TestClassExecutionResult assertTestSkipped(String name) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class JUnitTestClassExecutionResult. Method parameter [name] is never referenced in the method assertTestSkipped of class org.gradle.integtests.fixtures.JUnitTestClassExecutionResult</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>110</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>TestClassExecutionResult assertConfigMethodPassed(String name) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class JUnitTestClassExecutionResult. Method parameter [name] is never referenced in the method assertConfigMethodPassed of class org.gradle.integtests.fixtures.JUnitTestClassExecutionResult</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>114</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>TestClassExecutionResult assertConfigMethodFailed(String name) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class JUnitTestClassExecutionResult. Method parameter [name] is never referenced in the method assertConfigMethodFailed of class org.gradle.integtests.fixtures.JUnitTestClassExecutionResult</span></p></td></tr><tr><td><a href='#MisorderedStaticImports'>MisorderedStaticImports</a></td><td class='priority3'>3</td><td class='number'>21</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>import static org.hamcrest.Matchers.*</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Static imports should appear before normal imports</span></p></td></tr><tr><td><a href='#MisorderedStaticImports'>MisorderedStaticImports</a></td><td class='priority3'>3</td><td class='number'>22</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>import static org.junit.Assert.assertThat</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Static imports should appear before normal imports</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def JUnitTestExecutionResult(TestFile projectDir, String..= 'build') {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.JUnitTestExecutionResult. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findTestClass(String testClass) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.JUnitTestExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findClasses() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.JUnitTestExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>69</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def JUnitTestClassExecutionResult(GPathResult testClassN..ClassName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.JUnitTestClassExecutionResult. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>130</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findTests() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.JUnitTestClassExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>160</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findIgnoredTests() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.JUnitTestClassExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ MavenRepository.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryCollectCall'>UnnecessaryCollectCall</a></td><td class='priority3'>3</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>artifactNames = names.collect { it.replace('-SNAPSHOT', ..-${build}")}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.MavenModule. The call to collect could probably be rewritten as a spread expression: names*.replace(-SNAPSHOT, -$timestamp-$build)</span></p></td></tr><tr><td><a href='#UnnecessaryCollectCall'>UnnecessaryCollectCall</a></td><td class='priority3'>3</td><td class='number'>283</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>assert dependencies.collect { it.artifactId} as Set == a..ctIds as Set</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.MavenScope. The call to collect could probably be rewritten as a spread expression: dependencies*.artifactId</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ PreviousGradleVersionExecuter.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>60</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String toString() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.PreviousGradleVersionExecuter. The def keyword is unneeded when a method specifies a return type</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>102</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>158</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def TestFile getGradleHomeDir() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.PreviousGradleVersionExecuter. The def keyword is unneeded when a method specifies a return type</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ SFTPServer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#EmptyCatchBlock'>EmptyCatchBlock</a></td><td class='priority2'>2</td><td class='number'>70</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} catch (Throwable e) {}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The catch block is empty</span></p></td></tr><tr><td><a href='#EmptyCatchBlock'>EmptyCatchBlock</a></td><td class='priority2'>2</td><td class='number'>73</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} catch (Throwable e) {}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The catch block is empty</span></p></td></tr><tr><td><a href='#EmptyCatchBlock'>EmptyCatchBlock</a></td><td class='priority2'>2</td><td class='number'>77</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} catch (Throwable e) {}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The catch block is empty</span></p></td></tr><tr><td><a href='#EmptyMethod'>EmptyMethod</a></td><td class='priority2'>2</td><td class='number'>105</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>public void showMessage(String message) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class SFTPServer$1. The method showMessage is both empty and not marked with @Override</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>128</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean authenticate(String username, PublicKey key, Ser..n session) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class SFTPServer$3. Method parameter [username] is never referenced in the method authenticate of class org.gradle.integtests.fixtures.SFTPServer$3</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>128</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean authenticate(String username, PublicKey key, Ser..n session) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class SFTPServer$3. Method parameter [key] is never referenced in the method authenticate of class org.gradle.integtests.fixtures.SFTPServer$3</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>128</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean authenticate(String username, PublicKey key, Ser..n session) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class SFTPServer$3. Method parameter [session] is never referenced in the method authenticate of class org.gradle.integtests.fixtures.SFTPServer$3</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>160</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean authenticate(String username, String password, o..n session) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class DummyPasswordAuthenticator. Method parameter [session] is never referenced in the method authenticate of class org.gradle.integtests.fixtures.DummyPasswordAuthenticator</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>114</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>FileUtils.copyURLToFile(fileUrl, new File(configDir.getR..-dsa.key"));</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.SFTPServer. getRoot() can probably be rewritten as root</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>sshServer.setFileSystemFactory(new TestNativeFileSystemF..stLogger() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.SFTPServer. getRoot() can probably be rewritten as root</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>125</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>sshServer.setKeyPairProvider(new SimpleGeneratorHostKeyP..-dsa.key"));</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.SFTPServer. getRoot() can probably be rewritten as root</span></p></td></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>126</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>sshServer.setPasswordAuthenticator(new DummyPasswordAuthenticator());</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr><tr><td><a href='#UnnecessaryObjectReferences'>UnnecessaryObjectReferences</a></td><td class='priority3'>3</td><td class='number'>127</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>sshServer.setPublickeyAuthenticator(new PublickeyAuthenticator() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The code could be more concise by using a with() or identity() block</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>136</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new File(baseDir.getRoot(), filePathToCheck).exists()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.SFTPServer. getRoot() can probably be rewritten as root</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>140</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new TestFile(new File(baseDir.getRoot(), expectedPath))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.SFTPServer. getRoot() can probably be rewritten as root</span></p></td></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>160</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>boolean authenticate(String username, String password, o..n session) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The org.apache.sshd.server.session.ServerSession class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ TestNGExecutionResult.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>84</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>TestClassExecutionResult assertTestsSkipped(String... testNames) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class TestNgTestClassExecutionResult. Method parameter [testNames] is never referenced in the method assertTestsSkipped of class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>107</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>TestClassExecutionResult assertStdout(Matcher<? super St..> matcher) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class TestNgTestClassExecutionResult. Method parameter [matcher] is never referenced in the method assertStdout of class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>111</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>TestClassExecutionResult assertStderr(Matcher<? super St..> matcher) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class TestNgTestClassExecutionResult. Method parameter [matcher] is never referenced in the method assertStderr of class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def TestNGExecutionResult(projectDir) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNGExecutionResult. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findTestClass(String testClass) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNGExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>54</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findTestClasses() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNGExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>64</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String testClass</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded when a field type is specified</span></p></td></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def GPathResult testClassNode</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded when a field type is specified</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>67</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def TestNgTestClassExecutionResult(String testClass, GPa..resultXml) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>127</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findConfigMethod(String testName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>135</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findConfigMethods() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>143</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findTestMethod(String testName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>151</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findTestMethods() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNgTestClassExecutionResult. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ TestNativeFileSystem.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>67</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return getFile(baseDir.getAbsolutePath(), file);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNativeFileSystemView. getAbsolutePath() can probably be rewritten as absolutePath</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>77</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String userFileName = physicalName.substring("/".length() - 1);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNativeFileSystemView. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>107</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String userName = session.getUsername();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.TestNativeFileSystemFactory. getUsername() can probably be rewritten as username</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ TestProxyServer.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void filter(HttpRequest httpRequest) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class TestProxyServer$1. Method parameter [httpRequest] is never referenced in the method filter of class org.gradle.integtests.fixtures.TestProxyServer$1</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ UserGuideSamplesRunner.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#EmptyIfStatement'>EmptyIfStatement</a></td><td class='priority2'>2</td><td class='number'>176</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (line.matches('Download .+')) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The if statement is empty</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>42</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def UserGuideSamplesRunner(Class<?> testClass) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.UserGuideSamplesRunner. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>45</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>this.dirFilter = getDirFilterPattern()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.UserGuideSamplesRunner. getDirFilterPattern() can probably be rewritten as dirFilterPattern</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>88</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def cleanup(SampleRun run) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.UserGuideSamplesRunner. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>99</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def runSample(GradleRun run) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.UserGuideSamplesRunner. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>138</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def compareStrings(String expected, String actua..xtraLines) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.UserGuideSamplesRunner. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>197</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>actual = actual.replaceAll(java.util.regex.Pattern.quote..le/samples')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The java.util.regex.Pattern class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>199</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>actual = actual.replaceAll(java.util.regex.Pattern.quote..rator), '/')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The java.util.regex.Pattern class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ WellBehavedPluginTest.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#JUnitPublicNonTestMethod'>JUnitPublicNonTestMethod</a></td><td class='priority2'>2</td><td class='number'>23</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String getPluginId() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class WellBehavedPluginTest. The method getPluginId is public but not a test method</span></p></td></tr><tr><td><a href='#JUnitPublicNonTestMethod'>JUnitPublicNonTestMethod</a></td><td class='priority2'>2</td><td class='number'>31</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String getMainTask() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class WellBehavedPluginTest. The method getMainTask is public but not a test method</span></p></td></tr><tr><td><a href='#JUnitPublicNonTestMethod'>JUnitPublicNonTestMethod</a></td><td class='priority2'>2</td><td class='number'>35</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def "plugin does not force creation of build dir during ..uration"() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class WellBehavedPluginTest. The method plugin does not force creation of build dir during configuration is public but not a test method</span></p></td></tr><tr><td><a href='#JUnitPublicNonTestMethod'>JUnitPublicNonTestMethod</a></td><td class='priority2'>2</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def "plugin can build with empty project"() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class WellBehavedPluginTest. The method plugin can build with empty project is public but not a test method</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>buildFile << "apply plugin: '${getPluginId()}'"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.WellBehavedPluginTest. getPluginId() can probably be rewritten as pluginId</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>48</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>buildFile << "apply plugin: '${getPluginId()}'"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.integtests.fixtures.WellBehavedPluginTest. getPluginId() can probably be rewritten as pluginId</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/binaries/model/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.binaries.model.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ ConfigurationBasedNativeDependencySet.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>50</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def headersConfiguration = getHeadersConfiguration()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.binaries.model.internal.ConfigurationBasedNativeDependencySet. getHeadersConfiguration() can probably be rewritten as headersConfiguration</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/cpp/cdt/model'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.cpp.cdt.model</h2></div><div class='summary'><h3 class='fileHeader'>➥ CprojectDescriptor.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>109</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void store(Node xml) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class CprojectDescriptor. Method parameter [xml] is never referenced in the method store of class org.gradle.plugins.cpp.cdt.model.CprojectDescriptor</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/cpp/gpp'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.cpp.gpp</h2></div><div class='summary'><h3 class='fileHeader'>➥ GppCompileSpec.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>67</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>task.outputs.file { getOutputFile() }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppCompileSpec. getOutputFile() can probably be rewritten as outputFile</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>143</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>project.file "$project.buildDir/binaries/${getOutputFileName()}"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppCompileSpec. getOutputFileName() can probably be rewritten as outputFileName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>150</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return "${getBaseName()}.${extension}"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppCompileSpec. getBaseName() can probably be rewritten as baseName</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>151</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>152</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return getDefaultOutputFileName()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppCompileSpec. getDefaultOutputFileName() can probably be rewritten as defaultOutputFileName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>157</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return OperatingSystem.current().getExecutableName(getBaseName())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppCompileSpec. getBaseName() can probably be rewritten as baseName</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ GppLibraryCompileSpec.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>34</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return OperatingSystem.current().getSharedLibraryName(getBaseName())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppLibraryCompileSpec. getBaseName() can probably be rewritten as baseName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>38</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return installName ?: getOutputFileName()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.cpp.gpp.GppLibraryCompileSpec. getOutputFileName() can probably be rewritten as outputFileName</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ear'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ear</h2></div><div class='summary'><h3 class='fileHeader'>➥ Ear.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>55</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getLibDirName()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ear.Ear. getLibDirName() can probably be rewritten as libDirName</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>66</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>module = new DefaultEarWebModule(details.path, details.p..dexOf('.')))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ear.Ear. The String.substring(int, int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>128</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return ConfigureUtil.configure(configureClosure, getLib())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ear.Ear. getLib() can probably be rewritten as lib</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ EarPluginConvention.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def EarPluginConvention(FileResolver fileResolver) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ear.EarPluginConvention. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ear/descriptor/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ear.descriptor.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ DefaultDeploymentDescriptor.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>189</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (file.getParentFile() != null) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ear.descriptor.internal.DefaultDeploymentDescriptor. getParentFile() can probably be rewritten as parentFile</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>190</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>file.getParentFile().mkdirs()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ear.descriptor.internal.DefaultDeploymentDescriptor. getParentFile() can probably be rewritten as parentFile</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ DefaultEarWebModule.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedObject'>UnusedObject</a></td><td class='priority2'>2</td><td class='number'>39</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new Node(web, nodeNameFor("web-uri", name), path)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The instantiated object is not used</span></p></td></tr><tr><td><a href='#UnusedObject'>UnusedObject</a></td><td class='priority2'>2</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new Node(web, nodeNameFor("context-root", name), contextRoot)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The instantiated object is not used</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/eclipse'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.eclipse</h2></div><div class='summary'><h3 class='fileHeader'>➥ EclipseWtpPlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>EclipsePlugin delegatePlugin = project.getPlugins().appl..ugin.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.EclipseWtpPlugin. getPlugins() can probably be rewritten as plugins</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>EclipsePlugin delegatePlugin = project.getPlugins().appl..ugin.class);</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>EclipsePlugin.class can be rewritten as EclipsePlugin</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>50</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>delegatePlugin.getLifecycleTask().dependsOn(getLifecycleTask())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.EclipseWtpPlugin. getLifecycleTask() can probably be rewritten as lifecycleTask</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>50</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>delegatePlugin.getLifecycleTask().dependsOn(getLifecycleTask())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.EclipseWtpPlugin. getLifecycleTask() can probably be rewritten as lifecycleTask</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>delegatePlugin.getCleanTask().dependsOn(getCleanTask())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.EclipseWtpPlugin. getCleanTask() can probably be rewritten as cleanTask</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>delegatePlugin.getCleanTask().dependsOn(getCleanTask())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.EclipseWtpPlugin. getCleanTask() can probably be rewritten as cleanTask</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>96</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (WarPlugin.class.isAssignableFrom(type)) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>WarPlugin.class can be rewritten as WarPlugin</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>102</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else if (EarPlugin.class.isAssignableFrom(type)) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>EarPlugin.class can be rewritten as EarPlugin</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ GenerateEclipseJdt.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>jdt = services.get(Instantiator).newInstance(EclipseJdt,..nsformer()))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.GenerateEclipseJdt. getTransformer() can probably be rewritten as transformer</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new Jdt(getTransformer())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.GenerateEclipseJdt. getTransformer() can probably be rewritten as transformer</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>45</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def jdtModel = getJdt()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.GenerateEclipseJdt. getJdt() can probably be rewritten as jdt</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/eclipse/model'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.eclipse.model</h2></div><div class='summary'><h3 class='fileHeader'>➥ AbstractClasspathEntry.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>61</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def allAttributes = attributes.findAll { it.value } + [k.. path: path]</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry. getKind() can probably be rewritten as kind</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ AccessRule.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>25</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def AccessRule(kind, pattern) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.AccessRule. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ BuildCommand.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>25</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def BuildCommand(String name, Map arguments = [:]) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.BuildCommand. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ EclipseWtpComponent.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>144</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getLibConfigurations()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.EclipseWtpComponent. getLibConfigurations() can probably be rewritten as libConfigurations</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ EclipseWtpFacet.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>115</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>xmlFacet.configure(getFacets())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.EclipseWtpFacet. getFacets() can probably be rewritten as facets</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Facet.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Facet() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Facet. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>34</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Facet(Node node) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Facet. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>38</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Facet(String name, String version) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Facet. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>42</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Facet(FacetType type, String name, String version) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Facet. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Link.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>29</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Link(String name, String type, String location, Stri..cationUri) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Link. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Output.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Output(Node node) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Output. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>31</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Output(String path) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Output. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>node.appendNode('classpathentry', [kind: getKind(), path: path])</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Output. getKind() can probably be rewritten as kind</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Project.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>59</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Project(XmlTransformer xmlTransformer) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>76</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def readReferencedProjects() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>82</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def readNatures() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>86</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def readBuildCommands() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>96</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def readLinkedResources() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>132</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def addReferencedProjectsToXml() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>139</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def addNaturesToXml() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>146</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def addBuildSpecToXml() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>160</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def addLinkedResourcesToXml() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ WbDependentModule.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>28</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WbDependentModule(node) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.WbDependentModule. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>32</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WbDependentModule(String deployPath, String handle) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.WbDependentModule. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ WbProperty.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>26</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WbProperty(node) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.WbProperty. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WbProperty(String name, String value) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.WbProperty. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ WbResource.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>28</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WbResource(node) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.WbResource. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>32</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def WbResource(String deployPath, String sourcePath) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.WbResource. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/eclipse/model/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.eclipse.model.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ FileReferenceFactory.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>path = entry.key + filePath.substring(len)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>91</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def file = new File(entry.value, path.substring(prefix.length()))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>130</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>", jarUrl='" + getJarURL() + '\'' +</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory$FileReferenceImpl. getJarURL() can probably be rewritten as jarURL</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ WtpComponentFactory.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryCollectCall'>UnnecessaryCollectCall</a></td><td class='priority3'>3</td><td class='number'>100</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>dependencies.collect { it.resolve() }.flatten() as LinkedHashSet</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.eclipse.model.internal.WtpComponentFactory. The call to collect could probably be rewritten as a spread expression: dependencies*.resolve()</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/idea'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.idea</h2></div><div class='summary'><h3 class='fileHeader'>➥ GenerateIdeaModule.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>43</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getModule().mergeXmlModule(xmlModule)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.GenerateIdeaModule. getModule() can probably be rewritten as module</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ GenerateIdeaProject.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getIdeaProject().mergeXmlProject(xmlModule)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.GenerateIdeaProject. getIdeaProject() can probably be rewritten as ideaProject</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ GenerateIdeaWorkspace.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getWorkspace().mergeXmlWorkspace(xmlWorkspace)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.GenerateIdeaWorkspace. getWorkspace() can probably be rewritten as workspace</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/idea/model'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.idea.model</h2></div><div class='summary'><h3 class='fileHeader'>➥ IdeaModel.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>60</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(closure, getModule())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModel. getModule() can probably be rewritten as module</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>71</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(closure, getProject())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModel. getProject() can probably be rewritten as project</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>82</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(closure, getWorkspace())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModel. getWorkspace() can probably be rewritten as workspace</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ IdeaModule.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>277</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(closure, getIml())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getIml() can probably be rewritten as iml</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>288</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new File((File) iml.getGenerateTo(), getName() + ".iml")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getGenerateTo() can probably be rewritten as generateTo</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>288</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new File((File) iml.getGenerateTo(), getName() + ".iml")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getName() can probably be rewritten as name</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>302</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return new IdeaDependenciesProvider().provide(this, getPathFactory())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getPathFactory() can probably be rewritten as pathFactory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>330</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def path = { getPathFactory().path(it) }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getPathFactory() can probably be rewritten as pathFactory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>331</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def contentRoot = path(getContentRoot())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getContentRoot() can probably be rewritten as contentRoot</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>332</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Set sourceFolders = getSourceDirs().findAll { it.exists(..{ path(it) }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getSourceDirs() can probably be rewritten as sourceDirs</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>333</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Set testSourceFolders = getTestSourceDirs().findAll { it..{ path(it) }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getTestSourceDirs() can probably be rewritten as testSourceDirs</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>334</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Set excludeFolders = getExcludeDirs().collect { path(it) }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getExcludeDirs() can probably be rewritten as excludeDirs</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>335</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def outputDir = getOutputDir() ? path(getOutputDir()) : null</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getOutputDir() can probably be rewritten as outputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>335</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def outputDir = getOutputDir() ? path(getOutputDir()) : null</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getOutputDir() can probably be rewritten as outputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>336</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def testOutputDir = getTestOutputDir() ? path(getTestOut..ir()) : null</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getTestOutputDir() can probably be rewritten as testOutputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>336</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def testOutputDir = getTestOutputDir() ? path(getTestOut..ir()) : null</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getTestOutputDir() can probably be rewritten as testOutputDir</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>340</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getInheritOutputDirs(), outputDir, testOutputDir, depend..etJdkName())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getInheritOutputDirs() can probably be rewritten as inheritOutputDirs</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>340</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getInheritOutputDirs(), outputDir, testOutputDir, depend..etJdkName())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaModule. getJdkName() can probably be rewritten as jdkName</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ IdeaProject.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>136</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getOutputFile().name.replaceFirst(/\.ipr$/, '')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getOutputFile() can probably be rewritten as outputFile</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>146</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(closure, getIpr())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getIpr() can probably be rewritten as ipr</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>162</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def modulePaths = getModules().collect {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getModules() can probably be rewritten as modules</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>163</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getPathFactory().relativePath('PROJECT_DIR', it.outputFile)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getPathFactory() can probably be rewritten as pathFactory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>165</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>xmlProject.configure(modulePaths, getJdkName(), getLangu..Wildcards())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getJdkName() can probably be rewritten as jdkName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>165</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>xmlProject.configure(modulePaths, getJdkName(), getLangu..Wildcards())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getLanguageLevel() can probably be rewritten as languageLevel</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>165</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>xmlProject.configure(modulePaths, getJdkName(), getLangu..Wildcards())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaProject. getWildcards() can probably be rewritten as wildcards</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ IdeaWorkspace.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>48</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>ConfigureUtil.configure(closure, getIws())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.IdeaWorkspace. getIws() can probably be rewritten as iws</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ JarDirectory.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>34</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def JarDirectory(path, recursive) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.JarDirectory. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Jdk.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Jdk(String jdkName, IdeaLanguageLevel ideaLanguageLevel) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Jdk. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Jdk(assertKeyword, jdk15, languageLevel, projectJdkName) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Jdk. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Module.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>155</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected def configure(Path contentPath, Set sourceFold..ludeFolders,</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Module. The def keyword is unneeded when a method is marked protected</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ ModuleDependency.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>36</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def ModuleDependency(name, scope) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.ModuleDependency. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>43</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>parentNode.appendNode('orderEntry', [type: 'module', 'mo..dExported())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.ModuleDependency. getAttributeMapForScopeAndExported() can probably be rewritten as attributeMapForScopeAndExported</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>68</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>77</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>result = 31 * result + getScopeHash();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.ModuleDependency. getScopeHash() can probably be rewritten as scopeHash</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ ModuleLibrary.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def ModuleLibrary(Collection<Path> classes, Collection<P..ing scope) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.ModuleLibrary. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>61</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Node libraryNode = parentNode.appendNode('orderEntry', [..e('library')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.ModuleLibrary. getAttributeMapForScopeAndExported() can probably be rewritten as attributeMapForScopeAndExported</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>104</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>117</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>result = 31 * result + getScopeHash()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.ModuleLibrary. getScopeHash() can probably be rewritten as scopeHash</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ PathFactory.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>84</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>expandedUrl = toUrl('file', new File(expandedUrl.substri..nonicalFile)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.PathFactory. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>86</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def parts = expandedUrl.substring(6).split('!')</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.PathFactory. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>94</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def toUrl(String scheme, File file) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.PathFactory. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>106</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Project.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Project(XmlTransformer xmlTransformer, pathFactory) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Project. The def keyword is unneeded on constructors</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>96</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findProjectRootManager() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>100</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findWildcardResourcePatterns() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>104</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private def findModules() {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Project. The def keyword is unneeded when a method is marked private</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ SingleEntryModuleLibrary.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>63</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr><tr><td><a href='#UnnecessaryElseStatement'>UnnecessaryElseStatement</a></td><td class='priority3'>3</td><td class='number'>74</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>} else {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>When an if statement block ends with a return statement the else is unnecessary</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Workspace.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>28</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Workspace(XmlTransformer withXmlActions) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.idea.model.Workspace. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/internal'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.internal</h2></div><div class='summary'><h3 class='fileHeader'>➥ IdeDependenciesExtractor.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryPackageReference'>UnnecessaryPackageReference</a></td><td class='priority3'>3</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def filter = { it instanceof SelfResolvingDependency && ..Dependency)}</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>The org.gradle.api.artifacts.ProjectDependency class was explicitly imported, so specifying the package name is not necessary</span></p></td></tr><tr><td><a href='#UnnecessaryCollectCall'>UnnecessaryCollectCall</a></td><td class='priority3'>3</td><td class='number'>122</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def files = deps.collect { it.resolve() }.flatten()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdeDependenciesExtractor. The call to collect could probably be rewritten as a spread expression: deps*.resolve()</span></p></td></tr><tr><td><a href='#UnnecessaryCollectCall'>UnnecessaryCollectCall</a></td><td class='priority3'>3</td><td class='number'>127</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def files = deps.collect { it.resolve() }.flatten()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdeDependenciesExtractor. The call to collect could probably be rewritten as a spread expression: deps*.resolve()</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ IdePlugin.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void onApply(Project target) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class IdePlugin. Method parameter [target] is never referenced in the method onApply of class org.gradle.plugins.ide.internal.IdePlugin</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>32</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String lifecyleTaskName = getLifecycleTaskName();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getLifecycleTaskName() can probably be rewritten as lifecycleTaskName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return project.getTasks().getByName(cleanName(worker.getName()));</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getTasks() can probably be rewritten as tasks</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return project.getTasks().getByName(cleanName(worker.getName()));</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getName() can probably be rewritten as name</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>58</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Delete cleanWorker = project.getTasks().add(cleanName(wo..elete.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getTasks() can probably be rewritten as tasks</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>58</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Delete cleanWorker = project.getTasks().add(cleanName(wo..elete.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getName() can probably be rewritten as name</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>58</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>Delete cleanWorker = project.getTasks().add(cleanName(wo..elete.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Delete.class can be rewritten as Delete</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>59</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>cleanWorker.delete(worker.getOutputs().getFiles())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getFiles() can probably be rewritten as files</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>59</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>cleanWorker.delete(worker.getOutputs().getFiles())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.IdePlugin. getOutputs() can probably be rewritten as outputs</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/internal/configurer'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.internal.configurer</h2></div><div class='summary'><h3 class='fileHeader'>➥ DeduplicationTarget.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>26</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def String moduleName</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.configurer.DeduplicationTarget. The def keyword is unneeded when a field type is specified</span></p></td></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Project project</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.configurer.DeduplicationTarget. The def keyword is unneeded when a field type is specified</span></p></td></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>28</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def Closure updateModuleName</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.configurer.DeduplicationTarget. The def keyword is unneeded when a field type is specified</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/ide/internal/generator'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.ide.internal.generator</h2></div><div class='summary'><h3 class='fileHeader'>➥ AbstractPersistableConfigurationObject.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>38</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>String defaultResourceName = getDefaultResourceName();</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.generator.AbstractPersistableConfigurationObject. getDefaultResourceName() can probably be rewritten as defaultResourceName</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>41</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>throw new IllegalStateException(String.format("Failed to..getName()));</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.ide.internal.generator.AbstractPersistableConfigurationObject. getName() can probably be rewritten as name</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ XmlPersistableConfigurationObject.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void load(Node xml) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class XmlPersistableConfigurationObject. Method parameter [xml] is never referenced in the method load of class org.gradle.plugins.ide.internal.generator.XmlPersistableConfigurationObject</span></p></td></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>58</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>protected void store(Node xml) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class XmlPersistableConfigurationObject. Method parameter [xml] is never referenced in the method store of class org.gradle.plugins.ide.internal.generator.XmlPersistableConfigurationObject</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/signing'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.signing</h2></div><div class='summary'><h3 class='fileHeader'>➥ Sign.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnusedMethodParameter'>UnusedMethodParameter</a></td><td class='priority2'>2</td><td class='number'>138</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>void signatureType(SignatureType type) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class Sign. Method parameter [type] is never referenced in the method signatureType of class org.gradle.plugins.signing.Sign</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>65</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>isRequired() || getSignatory() != null</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatory() can probably be rewritten as signatory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>69</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>inputs.property("signatory") { getSignatory()?.keyId?.asHex }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatory() can probably be rewritten as signatory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>71</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>inputs.files { getSignatures()*.toSign }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatures() can probably be rewritten as signatures</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>72</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>outputs.files { getSignatures()*.toSign }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatures() can probably be rewritten as signatures</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>161</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>if (getSignatory() == null) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatory() can probably be rewritten as signatory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>162</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>throw new InvalidUserDataException("Cannot perform signi.. signatory")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getPath() can probably be rewritten as path</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>165</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getSignatures()*.generate()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatures() can probably be rewritten as signatures</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>182</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def signatureSet = getSignatures()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatures() can probably be rewritten as signatures</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>196</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new SimpleFileCollection(*getSignatures()*.toSign.findAl.. != null }))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatures() can probably be rewritten as signatures</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>203</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new SimpleFileCollection(*getSignatures()*.file.findAll(.. != null }))</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Sign. getSignatures() can probably be rewritten as signatures</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ SignOperation.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>61</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getDisplayName()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.SignOperation. getDisplayName() can probably be rewritten as displayName</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Signature.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>176</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>name == null ? (toSignArtifact?.name ?: getFile()?.name) : name</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getFile() can probably be rewritten as file</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>187</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>extension == null ? getSignatureType()?.extension : extension</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatureType() can probably be rewritten as signatureType</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>200</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def toSign = getToSign()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getToSign() can probably be rewritten as toSign</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>201</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def signatureType = getSignatureType()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatureType() can probably be rewritten as signatureType</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>234</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def file = getFile()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getFile() can probably be rewritten as file</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>260</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def toSign = getToSign()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getToSign() can probably be rewritten as toSign</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>261</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def signatureType = getSignatureType()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatureType() can probably be rewritten as signatureType</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>279</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>signatureSpec.getSignatory()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatory() can probably be rewritten as signatory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>288</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>signatureSpec.getSignatureType()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatureType() can probably be rewritten as signatureType</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>300</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def toSign = getToSign()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getToSign() can probably be rewritten as toSign</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>309</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def signatory = getSignatory()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatory() can probably be rewritten as signatory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>318</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def signatureType = getSignatureType()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.Signature. getSignatureType() can probably be rewritten as signatureType</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ SigningExtension.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>118</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>this.configuration = getDefaultConfiguration()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.SigningExtension. getDefaultConfiguration() can probably be rewritten as defaultConfiguration</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>198</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>spec.conventionMapping.map('signatory') { getSignatory() }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.SigningExtension. getSignatory() can probably be rewritten as signatory</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>199</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>spec.conventionMapping.map('signatureType') { getSignatureType() }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.SigningExtension. getSignatureType() can probably be rewritten as signatureType</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>222</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>addSignaturesToConfiguration(signTask, getConfiguration())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.SigningExtension. getConfiguration() can probably be rewritten as configuration</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>243</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>this.addSignaturesToConfiguration(signTask, getConfiguration())</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.SigningExtension. getConfiguration() can probably be rewritten as configuration</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/signing/signatory/pgp'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.signing.signatory.pgp</h2></div><div class='summary'><h3 class='fileHeader'>➥ PgpKeyId.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>63</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>normalised = keyIdUpped.substring(2)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.signatory.pgp.PgpKeyId. The String.substring(int) method can be replaced with the subscript operator</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/plugins/signing/type'> </a><h2 class='packageHeader'>Package: src.org.gradle.plugins.signing.type</h2></div><div class='summary'><h3 class='fileHeader'>➥ AbstractSignatureType.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>37</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>new File(toSign.path + ".${getExtension()}")</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.type.AbstractSignatureType. getExtension() can probably be rewritten as extension</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>44</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>getExtension()</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.type.AbstractSignatureType. getExtension() can probably be rewritten as extension</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>46</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>name[++dotIndex..-1] + ".${getExtension()}"</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.plugins.signing.type.AbstractSignatureType. getExtension() can probably be rewritten as extension</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/profile'> </a><h2 class='packageHeader'>Package: src.org.gradle.profile</h2></div><div class='summary'><h3 class='fileHeader'>➥ HTMLProfileReport.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#StaticSimpleDateFormatField'>StaticSimpleDateFormatField</a></td><td class='priority2'>2</td><td class='number'>25</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>private static final SimpleDateFormat DATE_FORMAT = new .. HH:mm:ss");</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.profile.HTMLProfileReport. SimpleDateFormat instances are not thread safe. Wrap the SimpleDateFormat field DATE_FORMAT in a ThreadLocal or make it an instance field</span></p></td></tr></table></div><div class='summary'><a name='src/org/gradle/util'> </a><h2 class='packageHeader'>Package: src.org.gradle.util</h2></div><div class='summary'><h3 class='fileHeader'>➥ ReflectionUtil.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>49</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Boolean.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Boolean.class can be rewritten as Boolean</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>51</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Long.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Long.class can be rewritten as Long</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>53</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Integer.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Integer.class can be rewritten as Integer</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>55</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Short.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Short.class can be rewritten as Short</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>57</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Byte.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Byte.class can be rewritten as Byte</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>59</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Float.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Float.class can be rewritten as Float</span></p></td></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>61</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return Double.class;</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Double.class can be rewritten as Double</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ Requires.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDotClass'>UnnecessaryDotClass</a></td><td class='priority3'>3</td><td class='number'>27</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>@ExtensionAnnotation(TestPreconditionExtension.class)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>TestPreconditionExtension.class can be rewritten as TestPreconditionExtension</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ TestDirHelper.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryDefInFieldDeclaration'>UnnecessaryDefInFieldDeclaration</a></td><td class='priority3'>3</td><td class='number'>19</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def TestFile baseDir</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.util.TestDirHelper. The def keyword is unneeded when a field type is specified</span></p></td></tr><tr><td><a href='#UnnecessaryDefInMethodDeclaration'>UnnecessaryDefInMethodDeclaration</a></td><td class='priority3'>3</td><td class='number'>21</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>def TestDirHelper(TestFile baseDir) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.util.TestDirHelper. The def keyword is unneeded on constructors</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ TestFileHelper.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#AssignmentInConditional'>AssignmentInConditional</a></td><td class='priority2'>2</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>while (entry = zipStr.getNextEntry()) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Assignment used as conditional value, which always results in true. Use the == operator instead</span></p></td></tr><tr><td><a href='#MisorderedStaticImports'>MisorderedStaticImports</a></td><td class='priority3'>3</td><td class='number'>22</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>import static org.hamcrest.Matchers.equalTo</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Static imports should appear before normal imports</span></p></td></tr><tr><td><a href='#MisorderedStaticImports'>MisorderedStaticImports</a></td><td class='priority3'>3</td><td class='number'>23</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>import static org.junit.Assert.assertThat</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Static imports should appear before normal imports</span></p></td></tr><tr><td><a href='#MisorderedStaticImports'>MisorderedStaticImports</a></td><td class='priority3'>3</td><td class='number'>24</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>import static org.junit.Assert.assertTrue</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Static imports should appear before normal imports</span></p></td></tr><tr><td><a href='#UnnecessaryGetter'>UnnecessaryGetter</a></td><td class='priority3'>3</td><td class='number'>40</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>while (entry = zipStr.getNextEntry()) {</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.util.TestFileHelper. getNextEntry() can probably be rewritten as nextEntry</span></p></td></tr><tr><td><a href='#UnnecessarySubstring'>UnnecessarySubstring</a></td><td class='priority3'>3</td><td class='number'>110</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>return perms.substring(1, 10)</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.util.TestFileHelper. The String.substring(int, int) method can be replaced with the subscript operator</span></p></td></tr></table></div><div class='summary'><h3 class='fileHeader'>➥ TestPreconditionExtension.groovy</h3><table border='1'><tr class='tableHeader'><th>Rule Name</th><th>Priority</th><th>Line #</th><th>Source Line / Message</th></tr><tr><td><a href='#UnnecessaryParenthesesForMethodCallWithClosure'>UnnecessaryParenthesesForMethodCallWithClosure</a></td><td class='priority3'>3</td><td class='number'>25</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>spec.skipped = annotation.value().any() { !it.fulfilled }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.util.TestPreconditionExtension. Parentheses in the 'any' method call are unnecessary and can be removed.</span></p></td></tr><tr><td><a href='#UnnecessaryParenthesesForMethodCallWithClosure'>UnnecessaryParenthesesForMethodCallWithClosure</a></td><td class='priority3'>3</td><td class='number'>30</td><td><p class='violationInfo'><span class='violationInfoPrefix'>[SRC]</span><span class='sourceCode'>feature.skipped = annotation.value().any() { !it.fulfilled }</span></p><p class='violationInfo'><span class='violationInfoPrefix'>[MSG]</span><span class='violationMessage'>Violation in class org.gradle.util.TestPreconditionExtension. Parentheses in the 'any' method call are unnecessary and can be removed.</span></p></td></tr></table></div><div class='summary'><h2>Rule Descriptions</h2><table border='1'><tr class='tableHeader'><th class='ruleDescriptions'>#</th><th class='ruleDescriptions'>Rule Name</th><th class='ruleDescriptions'>Description</th></tr><tr class='ruleDescriptions'><a name='AddEmptyString'/><td>1</td><td class='ruleName priority2'>AddEmptyString</td><td>Finds empty string literals which are being added. This is an inefficient way to convert any type to a String.</td></tr><tr class='ruleDescriptions'><a name='AssertWithinFinallyBlock'/><td>2</td><td class='ruleName priority2'>AssertWithinFinallyBlock</td><td>Checks for <em>assert</em> statements within a <em>finally</em> block. An <em>assert</em> can throw an exception, hiding the original exception, if there is one.</td></tr><tr class='ruleDescriptions'><a name='AssignmentInConditional'/><td>3</td><td class='ruleName priority2'>AssignmentInConditional</td><td>An assignment operator (=) was used in a conditional test. This is usually a typo, and the comparison operator (==) was intended.</td></tr><tr class='ruleDescriptions'><a name='BigDecimalInstantiation'/><td>4</td><td class='ruleName priority2'>BigDecimalInstantiation</td><td>Checks for calls to the <em>BigDecimal</em> constructors that take a <em>double</em> parameter, which may result in an unexpected <em>BigDecimal</em> value.</td></tr><tr class='ruleDescriptions'><a name='BitwiseOperatorInConditional'/><td>5</td><td class='ruleName priority2'>BitwiseOperatorInConditional</td><td>Checks for bitwise operations in conditionals, if you need to do a bitwise operation then it is best practive to extract a temp variable.</td></tr><tr class='ruleDescriptions'><a name='BooleanGetBoolean'/><td>6</td><td class='ruleName priority2'>BooleanGetBoolean</td><td>This rule catches usages of java.lang.Boolean.getBoolean(String) which reads a boolean from the System properties. It is often mistakenly used to attempt to read user input or parse a String into a boolean. It is a poor piece of API to use; replace it with System.properties['prop'].</td></tr><tr class='ruleDescriptions'><a name='BrokenNullCheck'/><td>7</td><td class='ruleName priority2'>BrokenNullCheck</td><td>Looks for faulty checks for null that can cause a <em>NullPointerException</em>.</td></tr><tr class='ruleDescriptions'><a name='BrokenOddnessCheck'/><td>8</td><td class='ruleName priority2'>BrokenOddnessCheck</td><td>The code uses x % 2 == 1 to check to see if a value is odd, but this won't work for negative numbers (e.g., (-5) % 2 == -1). If this code is intending to check for oddness, consider using x & 1 == 1, or x % 2 != 0.</td></tr><tr class='ruleDescriptions'><a name='BusyWait'/><td>9</td><td class='ruleName priority2'>BusyWait</td><td>Busy waiting (forcing a Thread.sleep() while waiting on a condition) should be avoided. Prefer using the gate and barrier objects in the java.util.concurrent package.</td></tr><tr class='ruleDescriptions'><a name='ChainedTest'/><td>10</td><td class='ruleName priority2'>ChainedTest</td><td>A test method that invokes another test method is a chained test; the methods are dependent on one another. Tests should be isolated, and not be dependent on one another.</td></tr><tr class='ruleDescriptions'><a name='ClassForName'/><td>11</td><td class='ruleName priority2'>ClassForName</td><td>Using Class.forName(...) is a common way to add dynamic behavior to a system. However, using this method can cause resource leaks because the classes can be pinned in memory for long periods of time.</td></tr><tr class='ruleDescriptions'><a name='ComparisonOfTwoConstants'/><td>12</td><td class='ruleName priority2'>ComparisonOfTwoConstants</td><td>Checks for expressions where a comparison operator or <em>equals()</em> or <em>compareTo()</em> is used to compare two constants to each other or two literals that contain only constant values., e.g.: <em>23 == 67, Boolean.FALSE != false, 0.17 <= 0.99, "abc" > "ddd", [a:1] <=> [a:2], [1,2].equals([3,4]) or [a:false, b:true].compareTo(['a':34.5, b:Boolean.TRUE]</em>.</td></tr><tr class='ruleDescriptions'><a name='ComparisonWithSelf'/><td>13</td><td class='ruleName priority2'>ComparisonWithSelf</td><td>Checks for expressions where a comparison operator or <em>equals()</em> or <em>compareTo()</em> is used to compare a variable to itself, e.g.: <em>x == x, x != x, x <=> x, x < x, x =>= x, x.equals(x) or x.compareTo(x)</em>, where <em>x</em> is a variable.</td></tr><tr class='ruleDescriptions'><a name='ConsecutiveLiteralAppends'/><td>14</td><td class='ruleName priority2'>ConsecutiveLiteralAppends</td><td>Violations occur when method calls to append(Object) are chained together with literals as parameters. The chained calls can be joined into one invocation.</td></tr><tr class='ruleDescriptions'><a name='ConsecutiveStringConcatenation'/><td>15</td><td class='ruleName priority3'>ConsecutiveStringConcatenation</td><td>Catches concatenation of two string literals on the same line. These can safely by joined.</td></tr><tr class='ruleDescriptions'><a name='ConstantAssertExpression'/><td>16</td><td class='ruleName priority3'>ConstantAssertExpression</td><td>Checks for <em>assert</em> statements where the assert boolean condition expression is a constant or literal value.</td></tr><tr class='ruleDescriptions'><a name='ConstantIfExpression'/><td>17</td><td class='ruleName priority2'>ConstantIfExpression</td><td>Checks for <em>if</em> statements with a constant value for the if expression, such as <em>true</em>, <em>false</em>, <em>null</em>, or a literal constant value.</td></tr><tr class='ruleDescriptions'><a name='ConstantTernaryExpression'/><td>18</td><td class='ruleName priority2'>ConstantTernaryExpression</td><td>Checks for ternary expressions with a constant value for the boolean expression, such as <em>true</em>, <em>false</em>, <em>null</em>, or a literal constant value.</td></tr><tr class='ruleDescriptions'><a name='CoupledTestCase'/><td>19</td><td class='ruleName priority2'>CoupledTestCase</td><td>This rule finds test cases that are coupled to other test cases, either by invoking static methods on another test case or by creating instances of another test case. If you require shared logic in test cases then extract that logic to a new class where it can properly be reused.</td></tr><tr class='ruleDescriptions'><a name='CyclomaticComplexity'/><td>20</td><td class='ruleName priority2'>CyclomaticComplexity</td><td>Checks the cyclomatic complexity for methods/classes.A method (or "closure field") with a cyclomatic complexity value greater than the <em>maxMethodComplexity</em> property (20) causes a violation. Likewise, a class that has an (average method) cyclomatic complexityvalue greater than the <em>maxClassAverageMethodComplexity</em> property (20) causes a violation.</td></tr><tr class='ruleDescriptions'><a name='DeadCode'/><td>21</td><td class='ruleName priority2'>DeadCode</td><td>Dead code appears after a return statement or an exception is thrown. If code appears after one of these statements then it will never be executed and can be safely deleted.</td></tr><tr class='ruleDescriptions'><a name='DoubleCheckedLocking'/><td>22</td><td class='ruleName priority2'>DoubleCheckedLocking</td><td>This rule detects double checked locking, where a 'lock hint' is tested for null before initializing an object within a synchronized block. Double checked locking does not guarantee correctness and is an anti-pattern.</td></tr><tr class='ruleDescriptions'><a name='DoubleNegative'/><td>23</td><td class='ruleName priority2'>DoubleNegative</td><td>There is no point in using a double negative, it is always positive. For instance <em>!!x</em> can always be simplified to x. And <em>!(!x)</em> can as well.</td></tr><tr class='ruleDescriptions'><a name='DuplicateCaseStatement'/><td>24</td><td class='ruleName priority2'>DuplicateCaseStatement</td><td>Check for duplicate <em>case</em> statements in a <em>switch</em> block, such as two equal integers or strings.</td></tr><tr class='ruleDescriptions'><a name='DuplicateImport'/><td>25</td><td class='ruleName priority3'>DuplicateImport</td><td>Duplicate import statements are unnecessary.</td></tr><tr class='ruleDescriptions'><a name='DuplicateMapKey'/><td>26</td><td class='ruleName priority2'>DuplicateMapKey</td><td>A map literal is created with duplicated key. The map entry will be overwritten.</td></tr><tr class='ruleDescriptions'><a name='DuplicateSetValue'/><td>27</td><td class='ruleName priority2'>DuplicateSetValue</td><td>A Set literal is created with duplicate constant value. A set cannot contain two elements with the same value.</td></tr><tr class='ruleDescriptions'><a name='EmptyCatchBlock'/><td>28</td><td class='ruleName priority2'>EmptyCatchBlock</td><td>In most cases, exceptions should not be caught and ignored (swallowed).</td></tr><tr class='ruleDescriptions'><a name='EmptyElseBlock'/><td>29</td><td class='ruleName priority2'>EmptyElseBlock</td><td>Empty <em>else</em> blocks are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptyFinallyBlock'/><td>30</td><td class='ruleName priority2'>EmptyFinallyBlock</td><td>Empty <em>finally</em> blocks are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptyForStatement'/><td>31</td><td class='ruleName priority2'>EmptyForStatement</td><td>Empty <em>for</em> statements are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptyIfStatement'/><td>32</td><td class='ruleName priority2'>EmptyIfStatement</td><td>Empty <em>if</em> statements are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptyInstanceInitializer'/><td>33</td><td class='ruleName priority2'>EmptyInstanceInitializer</td><td>An empty class instance initializer was found. It is safe to remove it.</td></tr><tr class='ruleDescriptions'><a name='EmptyMethod'/><td>34</td><td class='ruleName priority2'>EmptyMethod</td><td>A method was found without an implementation. If the method is overriding or implementing a parent method, then mark it with the @Override annotation.</td></tr><tr class='ruleDescriptions'><a name='EmptyStaticInitializer'/><td>35</td><td class='ruleName priority2'>EmptyStaticInitializer</td><td>An empty static initializer was found. It is safe to remove it.</td></tr><tr class='ruleDescriptions'><a name='EmptySwitchStatement'/><td>36</td><td class='ruleName priority2'>EmptySwitchStatement</td><td>Empty <em>switch</em> statements are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptySynchronizedStatement'/><td>37</td><td class='ruleName priority2'>EmptySynchronizedStatement</td><td>Empty <em>synchronized</em> statements are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptyTryBlock'/><td>38</td><td class='ruleName priority2'>EmptyTryBlock</td><td>Empty <em>try</em> blocks are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EmptyWhileStatement'/><td>39</td><td class='ruleName priority2'>EmptyWhileStatement</td><td>Empty <em>while</em> statements are confusing and serve no purpose.</td></tr><tr class='ruleDescriptions'><a name='EqualsAndHashCode'/><td>40</td><td class='ruleName priority2'>EqualsAndHashCode</td><td>If either the <em>boolean equals(Object)</em> or the <em>int hashCode()</em> methods are overridden within a class, then both must be overridden.</td></tr><tr class='ruleDescriptions'><a name='EqualsOverloaded'/><td>41</td><td class='ruleName priority2'>EqualsOverloaded</td><td>The class has an equals method, but the parameter of the method is not of type Object. It is not overriding equals but instead overloading it.</td></tr><tr class='ruleDescriptions'><a name='ExplicitGarbageCollection'/><td>42</td><td class='ruleName priority2'>ExplicitGarbageCollection</td><td>Calls to System.gc(), Runtime.getRuntime().gc(), and System.runFinalization() are not advised. Code should have the same behavior whether the garbage collection is disabled using the option -Xdisableexplicitgc or not. Moreover, "modern" jvms do a very good job handling garbage collections. If memory usage issues unrelated to memory leaks develop within an application, it should be dealt with JVM options rather than within the code itself.</td></tr><tr class='ruleDescriptions'><a name='ForLoopShouldBeWhileLoop'/><td>43</td><td class='ruleName priority3'>ForLoopShouldBeWhileLoop</td><td>A for loop without an init and update statement can be simplified to a while loop.</td></tr><tr class='ruleDescriptions'><a name='HardCodedWindowsFileSeparator'/><td>44</td><td class='ruleName priority2'>HardCodedWindowsFileSeparator</td><td>This rule finds usages of a Windows file separator within the constructor call of a File object. It is better to use the Unix file separator or use the File.separator constant.</td></tr><tr class='ruleDescriptions'><a name='HardCodedWindowsRootDirectory'/><td>45</td><td class='ruleName priority2'>HardCodedWindowsRootDirectory</td><td>This rule find cases where a <em>File</em> object is constructed with a windows-based path. This is not portable, and using the <em>File.listRoots()</em> method is a better alternative.</td></tr><tr class='ruleDescriptions'><a name='ImportFromSamePackage'/><td>46</td><td class='ruleName priority3'>ImportFromSamePackage</td><td>An import of a class that is within the same package is unnecessary.</td></tr><tr class='ruleDescriptions'><a name='ImportFromSunPackages'/><td>47</td><td class='ruleName priority2'>ImportFromSunPackages</td><td>Avoid importing anything from the 'sun.*' packages. These packages are not portable and are likely to change.</td></tr><tr class='ruleDescriptions'><a name='InconsistentPropertyLocking'/><td>48</td><td class='ruleName priority2'>InconsistentPropertyLocking</td><td>Class contains similarly-named get and set methods where one method of the pair is marked either @WithReadLock or @WithWriteLock and the other is not locked at all.</td></tr><tr class='ruleDescriptions'><a name='InconsistentPropertySynchronization'/><td>49</td><td class='ruleName priority2'>InconsistentPropertySynchronization</td><td>Class contains similarly-named get and set methods where the set method is synchronized and the get method is not, or the get method is synchronized and the set method is not.</td></tr><tr class='ruleDescriptions'><a name='IntegerGetInteger'/><td>50</td><td class='ruleName priority2'>IntegerGetInteger</td><td>This rule catches usages of java.lang.Integer.getInteger(String, ...) which reads an Integer from the System properties. It is often mistakenly used to attempt to read user input or parse a String into an Integer. It is a poor piece of API to use; replace it with System.properties['prop'].</td></tr><tr class='ruleDescriptions'><a name='JUnitAssertAlwaysFails'/><td>51</td><td class='ruleName priority2'>JUnitAssertAlwaysFails</td><td>Checks for JUnit <em>assert()</em> method calls with constant arguments such that the assertion always fails. This includes: <em>assertTrue(false)</em>, <em>assertFalse(true)</em> and <em>assertNull(CONSTANT)</em>.</td></tr><tr class='ruleDescriptions'><a name='JUnitAssertAlwaysSucceeds'/><td>52</td><td class='ruleName priority2'>JUnitAssertAlwaysSucceeds</td><td>Checks for JUnit <em>assert()</em> method calls with constant arguments such that the assertion always succeeds. This includes: <em>assertTrue(true)</em>, <em>assertFalse(false)</em> and <em>assertNull(null)</em>.</td></tr><tr class='ruleDescriptions'><a name='JUnitFailWithoutMessage'/><td>53</td><td class='ruleName priority2'>JUnitFailWithoutMessage</td><td>This rule detects JUnit calling the <em>fail()</em> method without an argument. For better error reporting you should always provide a message.</td></tr><tr class='ruleDescriptions'><a name='JUnitPublicNonTestMethod'/><td>54</td><td class='ruleName priority2'>JUnitPublicNonTestMethod</td><td>Checks if a JUnit test class contains public methods other than standard test methods, JUnit framework methods or methods with JUnit annotations.</td></tr><tr class='ruleDescriptions'><a name='JUnitSetUpCallsSuper'/><td>55</td><td class='ruleName priority2'>JUnitSetUpCallsSuper</td><td>Checks that if the JUnit <em>setUp()</em> method is defined, that it includes a call to <em>super.setUp()</em>.</td></tr><tr class='ruleDescriptions'><a name='JUnitTearDownCallsSuper'/><td>56</td><td class='ruleName priority2'>JUnitTearDownCallsSuper</td><td>Checks that if the JUnit <em>tearDown()</em> method is defined, that it includes a call to <em>super.tearDown()</em>.</td></tr><tr class='ruleDescriptions'><a name='JUnitTestMethodWithoutAssert'/><td>57</td><td class='ruleName priority2'>JUnitTestMethodWithoutAssert</td><td>This rule searches for test methods that do not contain assert statements. Either the test method is missing assert statements, which is an error, or the test method contains custom assert statements that do not follow a proper assert naming convention. Test methods are defined as public void methods that begin with the work test or have a @Test annotation. By default this rule applies to the default test class names, but this can be changed using the rule's applyToClassNames property.</td></tr><tr class='ruleDescriptions'><a name='JUnitUnnecessarySetUp'/><td>58</td><td class='ruleName priority3'>JUnitUnnecessarySetUp</td><td>Checks for JUnit <em>setUp()</em> methods that contain only a call to <em>super.setUp()</em>.</td></tr><tr class='ruleDescriptions'><a name='JUnitUnnecessaryTearDown'/><td>59</td><td class='ruleName priority3'>JUnitUnnecessaryTearDown</td><td>Checks for JUnit <em>tearDown()</em> methods that contain only a call to <em>super.tearDown()</em>.</td></tr><tr class='ruleDescriptions'><a name='MisorderedStaticImports'/><td>60</td><td class='ruleName priority3'>MisorderedStaticImports</td><td>Static imports should never be declared after nonstatic imports.</td></tr><tr class='ruleDescriptions'><a name='NestedSynchronization'/><td>61</td><td class='ruleName priority2'>NestedSynchronization</td><td>Nested synchronized statements should be avoided. Nested synchronized statements are either useless (if the lock objects are identical) or prone to deadlock.</td></tr><tr class='ruleDescriptions'><a name='RandomDoubleCoercedToZero'/><td>62</td><td class='ruleName priority2'>RandomDoubleCoercedToZero</td><td>The Math.random() method returns a double result greater than or equal to 0.0 and less than 1.0. If you coerce this result into an Integer or int, then it is coerced to zero. Casting the result to int, or assigning it to an int field is probably a bug.</td></tr><tr class='ruleDescriptions'><a name='RemoveAllOnSelf'/><td>63</td><td class='ruleName priority2'>RemoveAllOnSelf</td><td>Don't use <em>removeAll</em> to clear a collection. If you want to remove all elements from a collection c, use c.clear, not c.removeAll(c). Calling <em>c.removeAll(c)</em> to clear a collection is less clear, susceptible to errors from typos, less efficient and for some collections, might throw a <em>ConcurrentModificationException</em>.</td></tr><tr class='ruleDescriptions'><a name='ReturnFromFinallyBlock'/><td>64</td><td class='ruleName priority2'>ReturnFromFinallyBlock</td><td>Returning from a <em>finally</em> block is confusing and can hide the original exception.</td></tr><tr class='ruleDescriptions'><a name='SpockIgnoreRestUsed'/><td>65</td><td class='ruleName priority2'>SpockIgnoreRestUsed</td><td>If Spock's @IgnoreRest appears on any method, all non-annotated test methods are not executed. This behaviour is almost always unintended. It's fine to use @IgnoreRest locally during development, but when committing code, it should be removed.</td></tr><tr class='ruleDescriptions'><a name='StaticCalendarField'/><td>66</td><td class='ruleName priority2'>StaticCalendarField</td><td><em>Calendar</em> objects should not be used as static fields. <em>Calendars</em> are inherently unsafe for multihtreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application.</td></tr><tr class='ruleDescriptions'><a name='StaticConnection'/><td>67</td><td class='ruleName priority2'>StaticConnection</td><td>Creates violations when a java.sql.Connection object is used as a static field. Database connections stored in static fields will be shared between threads, which is unsafe and can lead to race conditions.</td></tr><tr class='ruleDescriptions'><a name='StaticDateFormatField'/><td>68</td><td class='ruleName priority2'>StaticDateFormatField</td><td><em>DateFormat</em> objects should not be used as static fields. <em>DateFormat</em> are inherently unsafe for multithreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application.</td></tr><tr class='ruleDescriptions'><a name='StaticMatcherField'/><td>69</td><td class='ruleName priority2'>StaticMatcherField</td><td><em>Matcher</em> objects should not be used as static fields. <em>Matcher</em> instances are inherently unsafe for multithreaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application.</td></tr><tr class='ruleDescriptions'><a name='StaticSimpleDateFormatField'/><td>70</td><td class='ruleName priority2'>StaticSimpleDateFormatField</td><td><em>SimpleDateFormat</em> objects should not be used as <em>static</em> fields. <em>SimpleDateFormat</em> are inherently unsafe for multi-threaded use. Sharing a single instance across thread boundaries without proper synchronization will result in erratic behavior of the application.</td></tr><tr class='ruleDescriptions'><a name='SynchronizedMethod'/><td>71</td><td class='ruleName priority2'>SynchronizedMethod</td><td>This rule reports uses of the <em>synchronized</em> keyword on methods. Synchronized methods are the same as synchronizing on 'this', which effectively make your synchronization policy public and modifiable by other objects. To avoid possibilities of deadlock, it is better to synchronize on internal objects.</td></tr><tr class='ruleDescriptions'><a name='SynchronizedOnBoxedPrimitive'/><td>72</td><td class='ruleName priority2'>SynchronizedOnBoxedPrimitive</td><td>The code synchronizes on a boxed primitive constant, such as an Integer. Since Integer objects can be cached and shared, this code could be synchronizing on the same object as other, unrelated code, leading to unresponsiveness and possible deadlock</td></tr><tr class='ruleDescriptions'><a name='SynchronizedOnGetClass'/><td>73</td><td class='ruleName priority2'>SynchronizedOnGetClass</td><td>Synchronization on getClass rather than class literal. This instance method synchronizes on this.getClass(). If this class is subclassed, subclasses will synchronize on the class object for the subclass, which isn't likely what was intended.</td></tr><tr class='ruleDescriptions'><a name='SynchronizedOnReentrantLock'/><td>74</td><td class='ruleName priority2'>SynchronizedOnReentrantLock</td><td>Synchronizing on a ReentrantLock field is almost never the intended usage. A ReentrantLock should be obtained using the lock() method and released in a finally block using the unlock() method.</td></tr><tr class='ruleDescriptions'><a name='SynchronizedOnString'/><td>75</td><td class='ruleName priority2'>SynchronizedOnString</td><td>Synchronization on a String field can lead to deadlock because Strings are interned by the JVM and can be shared.</td></tr><tr class='ruleDescriptions'><a name='SynchronizedOnThis'/><td>76</td><td class='ruleName priority2'>SynchronizedOnThis</td><td>This rule reports uses of the <em>synchronized</em> blocks where the synchronization reference is 'this'. Doing this effectively makes your synchronization policy public and modifiable by other objects. To avoid possibilities of deadlock, it is better to synchronize on internal objects.</td></tr><tr class='ruleDescriptions'><a name='SynchronizedReadObjectMethod'/><td>77</td><td class='ruleName priority2'>SynchronizedReadObjectMethod</td><td>Catches Serializable classes that define a synchronized readObject method. By definition, an object created by deserialization is only reachable by one thread, and thus there is no need for readObject() to be synchronized. If the readObject() method itself is causing the object to become visible to another thread, that is an example of very dubious coding style.</td></tr><tr class='ruleDescriptions'><a name='SystemRunFinalizersOnExit'/><td>78</td><td class='ruleName priority2'>SystemRunFinalizersOnExit</td><td>Method calls to <em>System.runFinalizersOnExit()</em> should not be allowed. This method is inherently non-thread-safe, may result in data corruption, deadlock, and may effect parts of the program far removed from it's call point. It is deprecated, and it's use strongly discouraged.</td></tr><tr class='ruleDescriptions'><a name='ThreadGroup'/><td>79</td><td class='ruleName priority2'>ThreadGroup</td><td>Avoid using ThreadGroup; although it is intended to be used in a threaded environment it contains methods that are not thread safe.</td></tr><tr class='ruleDescriptions'><a name='ThreadLocalNotStaticFinal'/><td>80</td><td class='ruleName priority2'>ThreadLocalNotStaticFinal</td><td><em>ThreadLocal</em> fields should be <em>static</em> and <em>final</em>. In the most common case a <em>java.lang.ThreadLocal</em> instance associates state with a thread. A non-<em>static</em> non-<em>final</em> <em>java.lang.ThreadLocal</em> field associates state with an instance-thread combination. This is seldom necessary and often a bug which can cause memory leaks and possibly incorrect behavior.</td></tr><tr class='ruleDescriptions'><a name='ThreadYield'/><td>81</td><td class='ruleName priority2'>ThreadYield</td><td>Method calls to <em>Thread.yield()</em> should not be allowed. This method has no useful guaranteed semantics, and is often used by inexperienced programmers to mask race conditions.</td></tr><tr class='ruleDescriptions'><a name='ThrowExceptionFromFinallyBlock'/><td>82</td><td class='ruleName priority2'>ThrowExceptionFromFinallyBlock</td><td>Throwing an exception from a <em>finally</em> block is confusing and can hide the original exception.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryBigDecimalInstantiation'/><td>83</td><td class='ruleName priority3'>UnnecessaryBigDecimalInstantiation</td><td>It is unnecessary to instantiate BigDecimal objects. Instead just use the decimal literal or the 'G' identifier to force the type, such as 123.45 or 123.45G.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryBigIntegerInstantiation'/><td>84</td><td class='ruleName priority3'>UnnecessaryBigIntegerInstantiation</td><td>It is unnecessary to instantiate BigInteger objects. Instead just use the literal with the 'G' identifier to force the type, such as 8G or 42G.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryBooleanExpression'/><td>85</td><td class='ruleName priority3'>UnnecessaryBooleanExpression</td><td>Checks for unnecessary boolean expressions, including ANDing (&&) or ORing (||) with <em>true</em>, <em>false</em>, <em>null</em>, or a Map/List/String/Number literal. Also checks for negation (!) of <em>true</em>, <em>false</em>, <em>null</em>, or a Map/List/String/Number literal.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryBooleanInstantiation'/><td>86</td><td class='ruleName priority3'>UnnecessaryBooleanInstantiation</td><td>Use <em>Boolean.valueOf()</em> for variable values or <em>Boolean.TRUE</em> and <em>Boolean.FALSE</em> for constant values instead of calling the <em>Boolean()</em> constructor directly or calling <em>Boolean.valueOf(true)</em> or <em>Boolean.valueOf(false)</em>.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryCallForLastElement'/><td>87</td><td class='ruleName priority3'>UnnecessaryCallForLastElement</td><td>This rule checks for excessively verbose methods of accessing the last element of an array or list. For instance, it is possible to access the last element of an array by performing array[array.length - 1], in Groovy it is simpler to either call array.last() or array[-1]. The same is true for lists. This violation is triggered whenever a get, getAt, or array-style access is used with an object size check.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryCallToSubstring'/><td>88</td><td class='ruleName priority3'>UnnecessaryCallToSubstring</td><td>Calling String.substring(0) always returns the original string. This code is meaningless.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryCatchBlock'/><td>89</td><td class='ruleName priority3'>UnnecessaryCatchBlock</td><td>Violations are triggered when a catch block does nothing but throw the original exception. In this scenario there is usually no need for a catch block, just let the exception be thrown from the original code. This condition frequently occurs when catching an exception for debugging purposes but then forgetting to take the catch statement out.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryCollectCall'/><td>90</td><td class='ruleName priority3'>UnnecessaryCollectCall</td><td>Some method calls to Object.collect(Closure) can be replaced with the spread operator. For instance, list.collect { it.multiply(2) } can be replaced by list*.multiply(2).</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryCollectionCall'/><td>91</td><td class='ruleName priority3'>UnnecessaryCollectionCall</td><td>Useless call to collections. This call doesn't make sense. For any collection c, calling <em>c.containsAll(c)</em> should always be true, and <em>c.retainAll(c)</em> should have no effect.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryConstructor'/><td>92</td><td class='ruleName priority3'>UnnecessaryConstructor</td><td>This rule detects when a constructor is not necessary; i.e., when there's only one constructor, it's public, has an empty body, and takes no arguments.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryDefInFieldDeclaration'/><td>93</td><td class='ruleName priority3'>UnnecessaryDefInFieldDeclaration</td><td>If a field has a visibility modifier or a type declaration, then the def keyword is unneeded. For instance, 'static def constraints = {}' is redundant and can be simplified to 'static constraints = {}.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryDefInMethodDeclaration'/><td>94</td><td class='ruleName priority3'>UnnecessaryDefInMethodDeclaration</td><td>If a method has a visibility modifier or a type declaration, then the def keyword is unneeded. For instance 'def private method() {}' is redundant and can be simplified to 'private method() {}'.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryDefInVariableDeclaration'/><td>95</td><td class='ruleName priority3'>UnnecessaryDefInVariableDeclaration</td><td>If a variable has a visibility modifier or a type declaration, then the def keyword is unneeded. For instance 'def private n = 2' is redundant and can be simplified to 'private n = 2'.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryDotClass'/><td>96</td><td class='ruleName priority3'>UnnecessaryDotClass</td><td>To make a reference to a class, it is unnecessary to specify the '.class' identifier. For instance String.class can be shortened to String.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryDoubleInstantiation'/><td>97</td><td class='ruleName priority3'>UnnecessaryDoubleInstantiation</td><td>It is unnecessary to instantiate Double objects. Instead just use the double literal or the 'D' identifier to force the type, such as 123.45d or 0.42d.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryElseStatement'/><td>98</td><td class='ruleName priority3'>UnnecessaryElseStatement</td><td>When an if statement block ends with a return statement the else is unnecessary. The logic in the else branch can be run without being in a new scope.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryFail'/><td>99</td><td class='ruleName priority2'>UnnecessaryFail</td><td>In a unit test, catching an exception and immediately calling Assert.fail() is pointless and hides the stack trace. It is better to rethrow the exception or not catch the exception at all.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryFinalOnPrivateMethod'/><td>100</td><td class='ruleName priority3'>UnnecessaryFinalOnPrivateMethod</td><td>A private method is marked final. Private methods cannot be overridden, so marking it final is unnecessary.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryFloatInstantiation'/><td>101</td><td class='ruleName priority3'>UnnecessaryFloatInstantiation</td><td>It is unnecessary to instantiate Float objects. Instead just use the float literal with the 'F' identifier to force the type, such as 123.45F or 0.42f.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryGetter'/><td>102</td><td class='ruleName priority3'>UnnecessaryGetter</td><td>Checks for explicit calls to getter/accessor methods which can, for the most part, be replaced by property access. A getter is defined as a method call that matches get[A-Z] but not getClass() or get[A-Z][A-Z] such as getURL(). Getters do not take method arguments.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryGroovyImport'/><td>103</td><td class='ruleName priority3'>UnnecessaryGroovyImport</td><td>A Groovy file does not need to include an import for classes from <em>java.lang</em>, <em>java.util</em>, <em>java.io</em>, <em>java.net</em>, <em>groovy.lang</em> and <em>groovy.util</em>, as well as the classes <em>java.math.BigDecimal</em> and <em>java.math.BigInteger</em>.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryIfStatement'/><td>104</td><td class='ruleName priority3'>UnnecessaryIfStatement</td><td>Checks for <em>if</em> statements where the if and else blocks are merely returning <em>true</em> and <em>false</em> constants. These cases can be replaced by a simple return statement.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryInstanceOfCheck'/><td>105</td><td class='ruleName priority3'>UnnecessaryInstanceOfCheck</td><td>This rule finds instanceof checks that cannot possibly evaluate to true. For instance, checking that (!variable instanceof String) will never be true because the result of a not expression is always a boolean.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryInstantiationToGetClass'/><td>106</td><td class='ruleName priority3'>UnnecessaryInstantiationToGetClass</td><td>Avoid instantiating an object just to call getClass() on it; use the .class public member instead.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryIntegerInstantiation'/><td>107</td><td class='ruleName priority3'>UnnecessaryIntegerInstantiation</td><td>It is unnecessary to instantiate Integer objects. Instead just use the literal with the 'I' identifier to force the type, such as 8I or 42i.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryLongInstantiation'/><td>108</td><td class='ruleName priority3'>UnnecessaryLongInstantiation</td><td>It is unnecessary to instantiate Long objects. Instead just use the literal with the 'L' identifier to force the type, such as 8L or 42L.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryModOne'/><td>109</td><td class='ruleName priority3'>UnnecessaryModOne</td><td>Any expression mod 1 (exp % 1) is guaranteed to always return zero. This code is probably an error, and should be either (exp & 1) or (exp % 2).</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryNullCheck'/><td>110</td><td class='ruleName priority3'>UnnecessaryNullCheck</td><td>Groovy contains the safe dereference operator, which can be used in boolean conditional statements to safely replace explicit "x == null" tests.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryNullCheckBeforeInstanceOf'/><td>111</td><td class='ruleName priority3'>UnnecessaryNullCheckBeforeInstanceOf</td><td>There is no need to check for null before an instanceof; the instanceof keyword returns false when given a null argument.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryObjectReferences'/><td>112</td><td class='ruleName priority3'>UnnecessaryObjectReferences</td><td>Violations are triggered when an excessive set of consecutive statements all reference the same variable. This can be made more readable by using a with or identity block.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryOverridingMethod'/><td>113</td><td class='ruleName priority3'>UnnecessaryOverridingMethod</td><td>The overriding method merely calls the same method defined in a superclass</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryPackageReference'/><td>114</td><td class='ruleName priority3'>UnnecessaryPackageReference</td><td>Checks for explicit package reference for classes that Groovy imports by default, such as <em>java.lang.String</em>, <em>java.util.Map</em> and <em>groovy.lang.Closure</em>.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryParenthesesForMethodCallWithClosure'/><td>115</td><td class='ruleName priority3'>UnnecessaryParenthesesForMethodCallWithClosure</td><td>If a method is called and the only parameter to that method is an inline closure then the parentheses of the method call can be omitted.</td></tr><tr class='ruleDescriptions'><a name='UnnecessarySelfAssignment'/><td>116</td><td class='ruleName priority3'>UnnecessarySelfAssignment</td><td>Method contains a pointless self-assignment to a variable or property.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryStringInstantiation'/><td>117</td><td class='ruleName priority3'>UnnecessaryStringInstantiation</td><td>Use a String literal (e.g., "...") instead of calling the corresponding String constructor (new String("..")) directly.</td></tr><tr class='ruleDescriptions'><a name='UnnecessarySubstring'/><td>118</td><td class='ruleName priority3'>UnnecessarySubstring</td><td>This rule finds usages of String.substring(int) and String.substring(int, int) that can be replaced by use of the subscript operator. For instance, var.substring(5) can be replaced with var[5..-1].</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryTernaryExpression'/><td>119</td><td class='ruleName priority3'>UnnecessaryTernaryExpression</td><td>Checks for ternary expressions where the conditional expression always evaluates to a boolean and the true and false expressions are merely returning <em>true</em> and <em>false</em> constants. Also checks for ternary expressions where both expressions are the same constant or variable.</td></tr><tr class='ruleDescriptions'><a name='UnnecessaryTransientModifier'/><td>120</td><td class='ruleName priority3'>UnnecessaryTransientModifier</td><td>The field is marked as transient, but the class isn't Serializable, so marking it as transient has no effect.</td></tr><tr class='ruleDescriptions'><a name='UnusedArray'/><td>121</td><td class='ruleName priority2'>UnusedArray</td><td>Checks for array allocations that are not assigned or used, unless it is the last statement within a block.</td></tr><tr class='ruleDescriptions'><a name='UnusedImport'/><td>122</td><td class='ruleName priority3'>UnusedImport</td><td>Imports for a class that is never referenced within the source file is unnecessary.</td></tr><tr class='ruleDescriptions'><a name='UnusedMethodParameter'/><td>123</td><td class='ruleName priority2'>UnusedMethodParameter</td><td>This rule finds instances of method parameters not being used. It does not analyze private methods (that is done by the UnusedPrivateMethodParameter rule) or methods marked @Override. </td></tr><tr class='ruleDescriptions'><a name='UnusedObject'/><td>124</td><td class='ruleName priority2'>UnusedObject</td><td>Checks for object allocations that are not assigned or used, unless it is the last statement within a block</td></tr><tr class='ruleDescriptions'><a name='UnusedPrivateField'/><td>125</td><td class='ruleName priority2'>UnusedPrivateField</td><td>Checks for private fields that are not referenced within the same class.</td></tr><tr class='ruleDescriptions'><a name='UnusedPrivateMethod'/><td>126</td><td class='ruleName priority2'>UnusedPrivateMethod</td><td>Checks for private methods that are not referenced within the same class.</td></tr><tr class='ruleDescriptions'><a name='UnusedPrivateMethodParameter'/><td>127</td><td class='ruleName priority2'>UnusedPrivateMethodParameter</td><td>Checks for parameters to private methods that are not referenced within the method body.</td></tr><tr class='ruleDescriptions'><a name='UnusedVariable'/><td>128</td><td class='ruleName priority2'>UnusedVariable</td><td>Checks for variables that are never referenced.</td></tr><tr class='ruleDescriptions'><a name='UseAssertEqualsInsteadOfAssertTrue'/><td>129</td><td class='ruleName priority3'>UseAssertEqualsInsteadOfAssertTrue</td><td>This rule detects JUnit assertions in object equality. These assertions should be made by more specific methods, like <em>assertEquals</em>.</td></tr><tr class='ruleDescriptions'><a name='UseAssertFalseInsteadOfNegation'/><td>130</td><td class='ruleName priority2'>UseAssertFalseInsteadOfNegation</td><td>In unit tests, if a condition is expected to be false then there is no sense using assertTrue with the negation operator. For instance, assertTrue(!condition) can always be simplified to assertFalse(condition)</td></tr><tr class='ruleDescriptions'><a name='UseAssertNullInsteadOfAssertEquals'/><td>131</td><td class='ruleName priority3'>UseAssertNullInsteadOfAssertEquals</td><td>This rule detects JUnit calling <em>assertEquals</em> where the first or second parameter is null. These assertion should be made against the <em>assertNull</em> method instead.</td></tr><tr class='ruleDescriptions'><a name='UseAssertSameInsteadOfAssertTrue'/><td>132</td><td class='ruleName priority3'>UseAssertSameInsteadOfAssertTrue</td><td>This rule detects JUnit calling <em>assertTrue</em> where the first or second parameter is an Object#is() call testing for reference equality. These assertion should be made against the <em>assertSame</em> method instead.</td></tr><tr class='ruleDescriptions'><a name='UseAssertTrueInsteadOfAssertEquals'/><td>133</td><td class='ruleName priority3'>UseAssertTrueInsteadOfAssertEquals</td><td>This rule detects JUnit calling <em>assertEquals</em> where the first parameter is a boolean. These assertions should be made by more specific methods, like <em>assertTrue</em> or <em>assertFalse</em>.</td></tr><tr class='ruleDescriptions'><a name='UseAssertTrueInsteadOfNegation'/><td>134</td><td class='ruleName priority2'>UseAssertTrueInsteadOfNegation</td><td>In unit tests, if a condition is expected to be true then there is no sense using assertFalse with the negation operator. For instance, assertFalse(!condition) can always be simplified to assertTrue(condition)</td></tr><tr class='ruleDescriptions'><a name='UseOfNotifyMethod'/><td>135</td><td class='ruleName priority2'>UseOfNotifyMethod</td><td>This code calls notify() rather than notifyAll(). Java monitors are often used for multiple conditions. Calling notify() only wakes up one thread, meaning that the thread woken up might not be the one waiting for the condition that the caller just satisfied.</td></tr><tr class='ruleDescriptions'><a name='VolatileArrayField'/><td>136</td><td class='ruleName priority2'>VolatileArrayField</td><td>Volatile array fields are unsafe because the contents of the array are not treated as volatile. Changing the entire array reference is visible to other threads, but changing an array element is not.</td></tr><tr class='ruleDescriptions'><a name='VolatileLongOrDoubleField'/><td>137</td><td class='ruleName priority2'>VolatileLongOrDoubleField</td><td>Long or double fields should not be declared as <em>volatile</em>. Java specifies that reads and writes from such fields are atomic, but many JVM's have violated this specification. Unless you are certain of your JVM, it is better to synchronize access to such fields rather than declare them <em>volatile</em>. This rule flags fields marked <em>volatile</em> when their type is double or long or the name of their type is "Double" or "Long".</td></tr><tr class='ruleDescriptions'><a name='WaitOutsideOfWhileLoop'/><td>138</td><td class='ruleName priority2'>WaitOutsideOfWhileLoop</td><td>Calls to <em>Object.wait()</em> must be within a <em>while</em> loop. Consider using the Java concurrency utilities instead of <em>wait()</em> and <em>notify()</em>.</td></tr></table></div></body></html>
|