001/****************************************************************************
002 * Copyright/Copyleft:
003 *
004 * For this source the LGPL Lesser General Public License,
005 * published by the Free Software Foundation is valid.
006 * It means:
007 * 1) You can use this source without any restriction for any desired purpose.
008 * 2) You can redistribute copies of this source to everybody.
009 * 3) Every user of this source, also the user of redistribute copies
010 *    with or without payment, must accept this license for further using.
011 * 4) But the LPGL ist not appropriate for a whole software product,
012 *    if this source is only a part of them. It means, the user
013 *    must publish this part of source,
014 *    but don't need to publish the whole source of the own product.
015 * 5) You can study and modify (improve) this source
016 *    for own using or for redistribution, but you have to license the
017 *    modified sources likewise under this LGPL Lesser General Public License.
018 *    You mustn't delete this Copyright/Copyleft inscription in this source file.
019 *
020 * @author JcHartmut: hartmut.schorrig@vishia.de
021 * @version 2008-04-06  (year-month-day)
022 * list of changes:
023 * 2008-04-06 JcHartmut: some correction
024 * 2008-03-15 JcHartmut: creation
025 *
026 ****************************************************************************/
027package org.vishia.java2C;
028
029import java.io.FileNotFoundException;
030import java.io.IOException;
031import java.text.ParseException;
032
033/**This interface is used to run the first pass of a requested class
034 * while running first or second pass of another file.
035 */
036public interface RunRequiredFirstPass_ifc
037{
038  /**searches a file and build the ClassData parsing and converting the file.
039   * This method is called if an unknown type is used yet.
040   * @param sClassName The name of the type in Java. The filename should be the same.
041   *        The file is searched in any package given as input parameter calling java2C.
042   * @return null if no file found. Otherwise the built ClassData. 
043   *         This ClassData are registered in the list {@link Java2C_Main#userTypes}.
044   * @throws ParseException 
045   */
046  ClassData runRequestedFirstPass(final JavaSrcTreeFile javaSrc, final String sClassName) //, final String sPkgName) 
047  throws FileNotFoundException, IllegalArgumentException, IOException, IllegalAccessException, InstantiationException, ParseException;
048  
049}