rspec/rules/S107/java/rule.adoc

57 lines
1.4 KiB
Plaintext

== Why is this an issue?
include::../description.adoc[]
=== Noncompliant code example
With a maximum number of 4 parameters:
[source,java]
----
public void doSomething(int param1, int param2, int param3, String param4, long param5) {
...
}
----
=== Compliant solution
[source,java]
----
public void doSomething(int param1, int param2, int param3, String param4) {
...
}
----
=== Exceptions
Methods annotated with :
* Spring's ``++@RequestMapping++`` (and related shortcut annotations, like ``++@GetRequest++``)
* JAX-RS API annotations (like ``++@javax.ws.rs.GET++``)
* Bean constructor injection with ``++@org.springframework.beans.factory.annotation.Autowired++``
* CDI constructor injection with ``++@javax.inject.Inject++``
* ``++@com.fasterxml.jackson.annotation.JsonCreator++``
* Micronaut's annotations (like ``++@io.micronaut.http.annotation.Get++``)
may have a lot of parameters, encapsulation being possible. Such methods are therefore ignored.
Also, if a class annotated as a Spring component (like ``++@org.springframework.stereotype.Component++``) has a single
constructor, that constructor will be considered ``++@Autowired++`` and ignored by the rule.
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::../message.adoc[]
include::../parameters.adoc[]
'''
== Comments And Links
(visible only on this page)
include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]