1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.core.model.validation;
7   
8   import java.io.BufferedInputStream;
9   import java.io.IOException;
10  import java.io.InputStream;
11  import java.net.URI;
12  import java.net.URL;
13  
14  import dev.metaschema.core.model.AbstractResourceResolver;
15  import dev.metaschema.core.util.ObjectUtils;
16  
17  /**
18   * Base class for a content validator.
19   */
20  public abstract class AbstractContentValidator
21      extends AbstractResourceResolver
22      implements IContentValidator {
23  
24    @Override
25    public IValidationResult validate(URI uri) throws IOException {
26      URI resourceUri = resolve(uri);
27      URL resource = resourceUri.toURL();
28  
29      try (InputStream is = new BufferedInputStream(ObjectUtils.notNull(resource.openStream()))) {
30        return validate(is, resourceUri);
31      }
32    }
33  }