1
2
3
4
5 package com.qulice.checkstyle;
6
7 import com.jcabi.log.Logger;
8 import com.puppycrawl.tools.checkstyle.api.AuditEvent;
9 import com.puppycrawl.tools.checkstyle.api.AuditListener;
10 import com.qulice.spi.Environment;
11 import java.util.Collections;
12 import java.util.LinkedList;
13 import java.util.List;
14
15
16
17
18
19
20
21 final class CheckstyleListener implements AuditListener {
22
23
24
25
26 private final Environment env;
27
28
29
30
31 private final List<AuditEvent> all;
32
33
34
35
36
37 CheckstyleListener(final Environment environ) {
38 this.all = new LinkedList<>();
39 this.env = environ;
40 }
41
42
43
44
45
46 public List<AuditEvent> events() {
47 return Collections.unmodifiableList(this.all);
48 }
49
50 @Override
51 public void auditStarted(final AuditEvent event) {
52
53 }
54
55 @Override
56 public void auditFinished(final AuditEvent event) {
57
58 }
59
60 @Override
61 public void fileStarted(final AuditEvent event) {
62
63 }
64
65 @Override
66 public void fileFinished(final AuditEvent event) {
67
68 }
69
70 @Override
71 public void addError(final AuditEvent event) {
72 final String name = event.getFileName().substring(
73 this.env.basedir().toString().length()
74 );
75 if (!this.env.exclude("checkstyle", name)) {
76 this.all.add(event);
77 }
78 }
79
80 @Override
81 public void addException(final AuditEvent event,
82 final Throwable throwable) {
83 final String check = event.getSourceName();
84 Logger.error(
85 this,
86 "%s[%d]: %s (%s), %[exception]s",
87 event.getFileName().substring(
88 this.env.basedir().toString().length()
89 ),
90 event.getLine(),
91 event.getMessage(),
92 check.substring(check.lastIndexOf('.') + 1),
93 throwable
94 );
95 }
96
97 }