public final class Finding extends Object
fingerprint that survives a
reformat so two runs can be aligned finding-by-finding.
Immutable value object. Built by the rules through Finding.Builder; the
aggregation step in Explainer may derive a copy with a different
impact (cap / shadowing) via withImpact(double).
| Modifier and Type | Class and Description |
|---|---|
static class |
Finding.Builder
Mutable builder; every rule produces findings through it.
|
| Modifier and Type | Method and Description |
|---|---|
static Finding.Builder |
builder(String rule,
String dimension) |
int |
getCol() |
String |
getDimension() |
String |
getEvidence() |
String |
getFingerprint() |
double |
getImpact()
Effective deduction on the owning dimension's 0-100 score (already capped / shadowed).
|
int |
getLen() |
int |
getLine() |
String |
getRule() |
Severity |
getSeverity() |
String |
getShadowedBy() |
String |
getSuggestion() |
String |
getUnfixableReason()
Non-null only when
isFixable() is false. |
boolean |
isFixable() |
boolean |
isShadowed()
True when another finding on the same line and dimension outweighed this one.
|
Finding |
shadowedBy(String byRule)
Copy marked as shadowed by
byRule with zero effective impact. |
String |
toString() |
Finding |
withImpact(double newImpact)
Copy with a different effective impact (used for per-rule caps).
|
public String getDimension()
public Severity getSeverity()
public int getLine()
public int getCol()
public int getLen()
public boolean isFixable()
public String getUnfixableReason()
isFixable() is false.public String getFingerprint()
public String getEvidence()
public double getImpact()
public String getSuggestion()
public boolean isShadowed()
public String getShadowedBy()
public Finding withImpact(double newImpact)
public Finding shadowedBy(String byRule)
byRule with zero effective impact.public static Finding.Builder builder(String rule, String dimension)