001/*
002 * Cobertura - http://cobertura.sourceforge.net/
003 *
004 * This file was taken from JavaNCSS
005 * http://www.kclee.com/clemens/java/javancss/
006 * Copyright (C) 2000 Chr. Clemens Lee <clemens a.t kclee d.o.t com>
007 *
008 * Cobertura is free software; you can redistribute it and/or modify
009 * it under the terms of the GNU General Public License as published
010 * by the Free Software Foundation; either version 2 of the License,
011 * or (at your option) any later version.
012 *
013 * Cobertura is distributed in the hope that it will be useful, but
014 * WITHOUT ANY WARRANTY; without even the implied warranty of
015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016 * General Public License for more details.
017 *
018 * You should have received a copy of the GNU General Public License
019 * along with Cobertura; if not, write to the Free Software
020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
021 * USA
022 */
023
024
025/*
026 *
027 * WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING  
028 *
029 * WARNING TO COBERTURA DEVELOPERS
030 *
031 * DO NOT MODIFY THIS FILE!
032 *
033 * MODIFY THE FILES UNDER THE JAVANCSS DIRECTORY LOCATED AT THE ROOT OF THE COBERTURA PROJECT.
034 *
035 * FOLLOW THE PROCEDURE FOR MERGING THE LATEST JAVANCSS INTO COBERTURA LOCATED AT
036 * javancss/coberturaREADME.txt
037 *
038 * WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   WARNING   
039 */
040package net.sourceforge.cobertura.javancss.parser;
041
042import java.util.*;
043
044public interface JavaParserInterface
045{
046    public void parse() throws Exception;
047    public void parseImportUnit() throws Exception;
048
049    public int getNcss();
050    
051    public int getLOC();
052
053    // added by SMS
054    public int getJvdc();
055
056    /*public int getTopLevelClasses() {
057      return _topLevelClasses;
058      }*/
059    
060    public List/*<FunctionMetric>*/ getFunction();
061    
062    /**
063     * @return Top level classes in sorted order
064     */
065    public List/*<ObjectMetric>*/ getObject();
066    
067    /**
068     * @return The empty package consists of the name ".".
069     */
070    public Map/*<String,PackageMetric>*/ getPackage();
071    
072    public List getImports();
073
074    /**
075     * name, beginLine, ...
076     */
077    public Object[] getPackageObjects();
078
079    /**
080     * if javancss is used with cat *.java a long
081     * input stream might get generated, so line
082     * number information in case of an parse exception
083     * is not very useful.
084     */
085    public String getLastFunction();
086}