View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *  http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.any23.validator;
19  
20  import org.w3c.dom.Node;
21  
22  /**
23   * The report interface is used to generate diagnostics about validation.
24   *
25   * @author Michele Mostarda (mostarda@fbk.eu)
26   * @author Davide Palmisano (palmisano@fbk.eu)
27   */
28  public interface ValidationReportBuilder {
29  
30      /**
31       * @return Returns the validation report.
32       */
33      ValidationReport getReport();
34  
35      /**
36       * Reports an issue detected on a specified node.
37       *
38       * @param issueLevel
39       *            issue level classifier.
40       * @param message
41       *            human readable message connected to the issue.
42       * @param n
43       *            the node affected by the issue.
44       */
45      void reportIssue(ValidationReport.IssueLevel issueLevel, String message, Node n);
46  
47      /**
48       * Reports a detected issue.
49       *
50       * @param issueLevel
51       *            issue level classifier.
52       * @param message
53       *            human readable message connected to the issue.
54       */
55      void reportIssue(ValidationReport.IssueLevel issueLevel, String message);
56  
57      /**
58       * Traces that a rule has been applied.
59       * 
60       * @param r
61       *            activated rule.
62       */
63      void traceRuleActivation(Rule r);
64  
65      /**
66       * Reports an error occurred while executing a {@link Rule}.
67       *
68       * @param r
69       *            rule originating the error.
70       * @param e
71       *            exception raised.
72       * @param msg
73       *            human readable message.
74       */
75      void reportRuleError(Rule r, Exception e, String msg);
76  
77      /**
78       * Reports an error occurred while executing a {@link Fix}.
79       * 
80       * @param f
81       *            fix originating the error.
82       * @param e
83       *            exception raised.
84       * @param msg
85       *            human readable message.
86       */
87      void reportFixError(Fix f, Exception e, String msg);
88  
89  }