
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
46 lines
933 B
Plaintext
46 lines
933 B
Plaintext
== Why is this an issue?
|
|
|
|
include::../description.adoc[]
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,java]
|
|
----
|
|
static final Pattern p = Pattern.compile("^$", Pattern.MULTILINE); // Noncompliant
|
|
|
|
// Alternatively
|
|
static final Pattern p = Pattern.compile("(?m)^$"); // Noncompliant
|
|
|
|
|
|
boolean containsEmptyLines(String str) {
|
|
return p.matcher(str).find();
|
|
}
|
|
|
|
// ...
|
|
System.out.println(containsEmptyLines("a\n\nb")); // correctly prints 'true'
|
|
System.out.println(containsEmptyLines("")); // incorrectly prints 'false'
|
|
----
|
|
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,java]
|
|
----
|
|
static final Pattern p = Pattern.compile("^$", Pattern.MULTILINE);
|
|
|
|
boolean containsEmptyLines(String str) {
|
|
return p.matcher(str).find() || str.isEmpty();
|
|
}
|
|
|
|
// ...
|
|
System.out.println(containsEmptyLines("a\n\nb")); // correctly prints 'true'
|
|
System.out.println(containsEmptyLines("")); // also correctly prints 'true'
|
|
----
|
|
|
|
|
|
|
|
include::../implementation.adoc[]
|
|
|