[ https://issues.apache.org/jira/browse/DOXIA-723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17806722#comment-17806722 ]
ASF GitHub Bot commented on DOXIA-723: -------------------------------------- kwin commented on code in PR #194: URL: https://github.com/apache/maven-doxia/pull/194#discussion_r1452152264 ########## doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/AbstractLocator.java: ########## @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.doxia.sink.impl; + +import org.apache.maven.doxia.sink.Locator; + +/** + * @since 2.0.0 + */ +public abstract class AbstractLocator implements Locator { + + private String reference; + + protected AbstractLocator(String reference) { + super(); + this.reference = reference; + } + + @Override + public String getReference() { + return reference; + } + + @Override + public String getLogPrefix() { + return formatLocation(this); + } + + /** + * Creates a string with line/column information. Inspired by + * {@code o.a.m.model.building.ModelProblemUtils.formatLocation(...)}. + * + * @param locator The locator must not be {@code null}. + * @return The formatted location or an empty string if unknown, never {@code null}. + */ + public static String formatLocation(Locator locator) { Review Comment: This is used in `Sink` (not in `Parser`), therefore the only option would be to move to `AbstractSink`. > Optionally expose document location in Sink > ------------------------------------------- > > Key: DOXIA-723 > URL: https://issues.apache.org/jira/browse/DOXIA-723 > Project: Maven Doxia > Issue Type: Improvement > Components: Sink API > Reporter: Konrad Windszus > Assignee: Konrad Windszus > Priority: Major > > Similar to http://www.saxproject.org/apidoc/org/xml/sax/Locator.html the Sink > API should provide means to figure out the document location. This should be > available whenever the Sink events are emitted from parsing a file. > The locator should expose file name, line number and column number. > This can be used enhance warning/errors as otherwise it is very hard to > figure out the root cause of messages like > https://github.com/apache/maven-doxia/blob/e01880801ca1283b86205e2f7064b9b4dbc84d54/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java#L930. -- This message was sent by Atlassian Jira (v8.20.10#820010)