[ https://issues.apache.org/jira/browse/DOXIA-723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17808925#comment-17808925 ]
ASF GitHub Bot commented on DOXIA-723: -------------------------------------- michael-o commented on code in PR #194: URL: https://github.com/apache/maven-doxia/pull/194#discussion_r1460323417 ########## doxia-sink-api/src/main/java/org/apache/maven/doxia/sink/Locator.java: ########## @@ -0,0 +1,48 @@ +/* + * 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; + +/** + * Interface for associating a {@link Sink} event with a document location. + * @since 2.0.0 + */ +public interface Locator { + + /** + * Returns the line number for the sink event (starting from 1). + * If it is not known returns {@code -1}. + * + * @return the line number for the sink event + */ + int getLineNumber(); + + /** + * Returns the column number for the sink event (starting from 1). + * If it is not known returns {@code -1}. + * + * @return the column number for the sink event + */ + int getColumnNumber(); + + /** + * Returns the underlying source reference (for file based documents a relative file path, otherwise an arbitrary string or {@code null}). + * @return the source for the sink event (may be {@code null}) + */ + String getReference(); Review Comment: From logical PoV, shouldn't reference be listed first? ########## doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/AbstractLocator.java: ########## @@ -0,0 +1,39 @@ +/* + * 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(); Review Comment: Why is super required if we have only an interface above? > 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)