001/* 002 * SPDX-License-Identifier: Apache-2.0 003 * 004 * Copyright 2024-2026 The Enola <https://enola.dev> Authors 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * https://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package dev.enola.thing.validation; 019 020import dev.enola.thing.Thing; 021 022import org.slf4j.Logger; 023import org.slf4j.LoggerFactory; 024 025public class LoggingCollector implements Collector2 { 026 027 // TODO Use URILineColumnMessage - if only we had a way to find line numbers... 028 029 private static final Logger LOG = LoggerFactory.getLogger(LoggingCollector.class); 030 031 private boolean hasMessages = false; 032 033 @Override 034 public void add(Thing thing, String predicateIRI, String message) { 035 hasMessages = true; 036 LOG.error(thing.iri() + " -- " + predicateIRI + " : " + message); 037 } 038 039 public boolean hasMessages() { 040 return hasMessages; 041 } 042}