class PendingSymlinkage {
    private final String sourcePath;
    private final String targetRelPath;

    public PendingSymlinkage(String sourcePath, String targetRelPath) {
        this.sourcePath = sourcePath;
        this.targetRelPath = targetRelPath;
    }

    /**
     * @return the source, absolute path
     */
    public String getSourcePath() {
        return sourcePath;
    }

    /**
     * @return the target, relative path
     */
    public String getTargetRelPath() {
        return targetRelPath;
    }

    /**
     * Compares {@code sourcePath} to the other object's value.
     * @param o other object for comparison
     * @return {@code true} if the two compared objects are identical;
     * otherwise false
     */
    @Override
    public boolean equals(Object o) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
        return this.sourcePath.hashCode();
    }
}

        if (!(o instanceof PendingSymlinkage)) {
            return false;
        }
        PendingSymlinkage other = (PendingSymlinkage) o;
        return this.sourcePath.equals(other.sourcePath);
    
<no_super_class>