Save This Page
Home » openjdk-7 » com.sun.tools » apt » mirror » util » [javadoc | source]
    1   /*
    2    * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Oracle designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Oracle in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22    * or visit www.oracle.com if you need additional information or have any
   23    * questions.
   24    */
   25   
   26   package com.sun.tools.apt.mirror.util;
   27   
   28   
   29   import java.io.File;
   30   import javax.tools.JavaFileObject;
   31   
   32   import com.sun.mirror.util.SourcePosition;
   33   import com.sun.tools.javac.util.Position;
   34   
   35   
   36   /**
   37    * Implementation of SourcePosition
   38    */
   39   @SuppressWarnings("deprecation")
   40   public class SourcePositionImpl implements SourcePosition {
   41   
   42       private JavaFileObject sourcefile;
   43       private int pos;            // file position, in javac's internal format
   44       private Position.LineMap linemap;
   45   
   46   
   47       public SourcePositionImpl(JavaFileObject sourcefile, int pos, Position.LineMap linemap) {
   48           this.sourcefile = sourcefile;
   49           this.pos = pos;
   50           this.linemap = linemap;
   51           assert sourcefile != null;
   52           assert linemap != null;
   53       }
   54   
   55       public int getJavacPosition() {
   56           return pos;
   57       }
   58   
   59       public JavaFileObject getSource() {
   60           return sourcefile;
   61       }
   62   
   63       /**
   64        * Returns a string representation of this position in the
   65        * form "sourcefile:line", or "sourcefile" if no line number is available.
   66        */
   67       public String toString() {
   68           int ln = line();
   69           return (ln == Position.NOPOS)
   70                   ? sourcefile.getName()
   71                   : sourcefile.getName() + ":" + ln;
   72       }
   73   
   74       /**
   75        * {@inheritDoc}
   76        */
   77       public File file() {
   78           return new File(sourcefile.toUri());
   79       }
   80   
   81       /**
   82        * {@inheritDoc}
   83        */
   84       public int line() {
   85           return linemap.getLineNumber(pos);
   86       }
   87   
   88       /**
   89        * {@inheritDoc}
   90        */
   91       public int column() {
   92           return linemap.getColumnNumber(pos);
   93       }
   94   }

Save This Page
Home » openjdk-7 » com.sun.tools » apt » mirror » util » [javadoc | source]