View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2012-2025 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.jcabi.xml;
6   
7   import com.jcabi.log.Logger;
8   import java.util.Collection;
9   import java.util.Collections;
10  import java.util.concurrent.CopyOnWriteArrayList;
11  import javax.xml.transform.ErrorListener;
12  import javax.xml.transform.TransformerException;
13  
14  /**
15   * Error listener to console.
16   *
17   * @since 0.22
18   */
19  final class ConsoleErrorListener implements ErrorListener {
20  
21      /**
22       * Errors.
23       */
24      private final Collection<String> errors =
25          new CopyOnWriteArrayList<>();
26  
27      @Override
28      public void warning(final TransformerException warning) {
29          Logger.warn(
30              this, "#warning(): %s",
31              warning.getMessageAndLocation()
32          );
33          this.errors.add(warning.getMessageAndLocation());
34      }
35  
36      @Override
37      public void error(final TransformerException error) {
38          Logger.error(
39              this, "#error(): %s",
40              error.getMessageAndLocation()
41          );
42          this.errors.add(error.getMessageAndLocation());
43      }
44  
45      @Override
46      public void fatalError(final TransformerException error) {
47          Logger.error(
48              this, "#fatalError(): %s",
49              error.getMessageAndLocation()
50          );
51          this.errors.add(error.getMessageAndLocation());
52      }
53  
54      /**
55       * Return all errors.
56       * @return List of errors accumulated
57       */
58      public Collection<String> summary() {
59          return Collections.unmodifiableCollection(this.errors);
60      }
61  
62  }