@Override
    public GeneratedPosition generatedPositionFor(String source, int line, int column, Bias bias) {
        if (this.sourceRoot != null) {
            source = Util.relative(this.sourceRoot, source);
        }
        if (!this._sources.has(source)) {
            return new GeneratedPosition();
        }
        int source_ = this._sources.indexOf(source);

        ParsedMapping needle = new ParsedMapping(null, null, line, column, source_, null);

        if (bias == null) {
            bias = Bias.GREATEST_LOWER_BOUND;
        }

        int index = _findMapping(needle, this._originalMappings(), "originalLine", "originalColumn",
                (mapping1, mapping2) -> Util.compareByOriginalPositions(mapping1, mapping2, true), bias);

        if (index >= 0) {
            ParsedMapping mapping = this._originalMappings().get(index);

            if (mapping.source == needle.source) {
                return new GeneratedPosition(mapping.generatedLine != null ? mapping.generatedLine : null,
                        mapping.generatedColumn != null ? mapping.generatedColumn : null,
                        mapping.lastGeneratedColumn != null ? mapping.lastGeneratedColumn : null);
            }
        }

        return new GeneratedPosition();
    }
@ Override public GeneratedPosition generatedPositionFor ( String source , int line , int column , Bias bias ) { if ( this . sourceRoot != null ) { source = Util . relative ( this . sourceRoot , source ) ; } if ( ! this . _sources . has ( source ) ) { return new GeneratedPosition ( ) ; } int source_ = this . _sources . indexOf ( source ) ; ParsedMapping needle = new ParsedMapping ( null , null , line , column , source_ , null ) ; if ( bias == null ) { bias = Bias . GREATEST_LOWER_BOUND ; } int index = _findMapping ( needle , this . _originalMappings ( ) , "originalLine" , "originalColumn" , ( mapping1 , mapping2 ) -> Util . compareByOriginalPositions ( mapping1 , mapping2 , true ) , bias ) ; if ( index >= 0 ) { ParsedMapping mapping = this . _originalMappings ( ) . get ( index ) ; if ( mapping . source == needle . source ) { return new GeneratedPosition ( mapping . generatedLine != null ? mapping . generatedLine : null , mapping . generatedColumn != null ? mapping . generatedColumn : null , mapping . lastGeneratedColumn != null ? mapping . lastGeneratedColumn : null ) ; } } return new GeneratedPosition ( ) ; }
Returns the generated line and column information for the original source, line, and column positions provided. The only argument is an object
with the following properties:

- source: The filename of the original source. - line: The line number in the original source. - column: The column number in the original
source. - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the
closest element that is smaller than or greater than the one we are searching for, respectively, if the exact element cannot be found. Defaults
to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.

and an object is returned with the following properties:

- line: The line number in the generated source, or null. - column: The column number in the generated source, or null.