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 }