// Path: src/main/java/com/intellij/plugins/bodhi/pmd/core/HasPositionInFile.java
// public interface HasPositionInFile {
//     /**
//      * Returns the file name.
//      * @return the file name.
//      */
//     String getFilename();
// 
//     /**
//      * Returns the begin line of the position.
//      * @return the begin line of the position.
//      */
//     int getBeginLine();
// 
//     /**
//      * Returns the begin column of the position.
//      * @return the begin column of the position.
//      */
//     int getBeginColumn();
// }


import com.intellij.plugins.bodhi.pmd.core.HasPositionInFile;
package com.intellij.plugins.bodhi.pmd.tree;


/**
 * Abstract base class for PMD Leaf Tree Nodes.
 * Contains a finding: violation, suppressed violation or processing error.
 * This has a location in a file and the containing node is navigatable.
 *
 * @author jborgers
 */
public abstract class PMDLeafNode extends BasePMDNode {
    public boolean canNavigate() {
        return true;
    }

    public boolean canNavigateToSource() {
        return true;
    }

    @Override
    public int getViolationCount() {
        return 0;
    }

    @Override
    public int getSuppressedCount() {
        return 0;
    }

    @Override
    public int getErrorCount() {
        return 0;
    }

    /**
     * Open editor and select/navigate to the correct line and column in the file.
     *
     * @param finding The violation, suppressed violation or processing error.
     */
// Path: src/main/java/com/intellij/plugins/bodhi/pmd/core/HasPositionInFile.java
// public interface HasPositionInFile {
//     /**
//      * Returns the file name.
//      * @return the file name.
//      */
//     String getFilename();
// 
//     /**
//      * Returns the begin line of the position.
//      * @return the begin line of the position.
//      */
//     int getBeginLine();
// 
//     /**
//      * Returns the begin column of the position.
//      * @return the begin column of the position.
//      */
//     int getBeginColumn();
// }


// Path: src/main/java/com/intellij/plugins/bodhi/pmd/tree/PMDLeafNode.java
import com.intellij.plugins.bodhi.pmd.core.HasPositionInFile;

package com.intellij.plugins.bodhi.pmd.tree;


/**
 * Abstract base class for PMD Leaf Tree Nodes.
 * Contains a finding: violation, suppressed violation or processing error.
 * This has a location in a file and the containing node is navigatable.
 *
 * @author jborgers
 */
public abstract class PMDLeafNode extends BasePMDNode {
    public boolean canNavigate() {
        return true;
    }

    public boolean canNavigateToSource() {
        return true;
    }

    @Override
    public int getViolationCount() {
        return 0;
    }

    @Override
    public int getSuppressedCount() {
        return 0;
    }

    @Override
    public int getErrorCount() {
        return 0;
    }

    /**
     * Open editor and select/navigate to the correct line and column in the file.
     *
     * @param finding The violation, suppressed violation or processing error.
     */
    protected void highlightFindingInEditor(HasPositionInFile finding) {