DiagnosticImpl.java revision 1209:36fbf759ab8d
1158421Swollman/*
2153761Swollman * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
3153761Swollman * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
42742Swollman *
586464Swollman * This code is free software; you can redistribute it and/or modify it
62742Swollman * under the terms of the GNU General Public License version 2 only, as
72742Swollman * published by the Free Software Foundation.  Oracle designates this
82742Swollman * particular file as subject to the "Classpath" exception as provided
92742Swollman * by Oracle in the LICENSE file that accompanied this code.
102742Swollman *
112742Swollman * This code is distributed in the hope that it will be useful, but WITHOUT
1286222Swollman * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1386222Swollman * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
142742Swollman * version 2 for more details (a copy is included in the LICENSE file that
1558787Sru * accompanied this code).
162742Swollman *
172742Swollman * You should have received a copy of the GNU General Public License version
182742Swollman * 2 along with this work; if not, write to the Free Software Foundation,
192742Swollman * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
202742Swollman *
212742Swollman * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2258787Sru * or visit www.oracle.com if you need additional information or have any
2358787Sru * questions.
2458787Sru */
252742Swollman
262742Swollmanpackage jdk.nashorn.api.tree;
279908Swollman
282742Swollmanimport jdk.nashorn.internal.parser.Token;
2930711Swollmanimport jdk.nashorn.internal.runtime.ParserException;
302742Swollman
319908Swollmanfinal class DiagnosticImpl implements Diagnostic {
322742Swollman    private final ParserException exp;
3358787Sru    private final Kind kind;
3458787Sru
3514343Swollman    DiagnosticImpl(final ParserException exp, final Kind kind) {
3614343Swollman        this.exp = exp;
3714343Swollman        this.kind = kind;
3814343Swollman    }
3914343Swollman
402742Swollman    @Override
419908Swollman    public Kind getKind() {
4220094Swollman        return kind;
43149514Swollman    }
4420094Swollman
4520094Swollman    @Override
4620094Swollman    public long getPosition() {
4720094Swollman        return exp.getPosition();
4820094Swollman    }
4920094Swollman
5020094Swollman    @Override
5120094Swollman    public String getFileName() {
5220094Swollman        return exp.getFileName();
5320094Swollman    }
5420094Swollman
5558787Sru    @Override
5658787Sru    public long getLineNumber() {
5721217Swollman        return exp.getLineNumber();
5821217Swollman    }
5958787Sru
6058787Sru    @Override
612742Swollman    public long getColumnNumber() {
6258787Sru        return exp.getColumnNumber();
6321217Swollman    }
6420094Swollman
6558787Sru    @Override
6658787Sru    public String getCode() {
6720094Swollman        final long token = exp.getToken();
682742Swollman        return (token < 0)? null : Token.toString(null, token, true);
699908Swollman    }
702742Swollman
7114343Swollman    @Override
7214343Swollman    public String getMessage() {
7314343Swollman        return exp.getMessage();
7414343Swollman    }
7514343Swollman
7614343Swollman    @Override
7764499Swollman    public String toString() {
7864499Swollman        return getMessage();
7964499Swollman    }
8064499Swollman}
8164499Swollman