View Javadoc
1   /*
2    * Copyright (c) 2011-2022, jcabi.com
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met: 1) Redistributions of source code must retain the above
8    * copyright notice, this list of conditions and the following
9    * disclaimer. 2) Redistributions in binary form must reproduce the above
10   * copyright notice, this list of conditions and the following
11   * disclaimer in the documentation and/or other materials provided
12   * with the distribution. 3) Neither the name of the jcabi.com nor
13   * the names of its contributors may be used to endorse or promote
14   * products derived from this software without specific prior written
15   * permission.
16   *
17   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18   * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
19   * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21   * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28   * OF THE POSSIBILITY OF SUCH DAMAGE.
29   */
30  package com.jcabi.w3c;
31  
32  import java.net.URI;
33  import java.nio.charset.Charset;
34  import java.util.Set;
35  
36  /**
37   * Response of HTML or CSS validation.
38   *
39   * <p>See {@link ValidatorBuilder} for explanation of how to get an instance
40   * of this interface.
41   *
42   * <p>Implementation may be mutable but thread-safe.
43   *
44   * @see ValidatorBuilder
45   * @see Validator#validate(String)
46   * @see <a href="http://validator.w3.org/docs/api.html">W3C API, HTML</a>
47   * @see <a href="http://jigsaw.w3.org/css-validator/api.html">W3C API, CSS</a>
48   * @since 0.1
49   */
50  public interface ValidationResponse {
51  
52      /**
53       * The document is valid and has no errors or warnings?
54       * @return Is it valid?
55       */
56      boolean valid();
57  
58      /**
59       * Who checked the document (normally contains a URL of W3C server).
60       * @return URI of the server
61       */
62      URI checkedBy();
63  
64      /**
65       * DOCTYPE of the document, if detected by the validator (may be empty
66       * if {@code DOCTYPE} is not detected or if it's a CSS document).
67       * @return Doctype or empty string
68       */
69      String doctype();
70  
71      /**
72       * Charset of the document, if detected by the server (may be empty
73       * if charset is not detected or it's a CSS document).
74       * @return Charset of the document, e.g. {@code "UTF-8"}
75       */
76      Charset charset();
77  
78      /**
79       * Returns list of errors found during validation.
80       * @return List of errors or an empty list if no errors found
81       */
82      Set<Defect> errors();
83  
84      /**
85       * Returns lsit of warnings found during validation.
86       * @return List of warnings
87       */
88      Set<Defect> warnings();
89  
90  }