org.vishia.java2C
Class ReadStructure

java.lang.Object
  extended by org.vishia.java2C.ReadStructure

public class ReadStructure
extends java.lang.Object

An instance of this class is filled with the result of parsing an *.stc file which contains the structure informations of a already translated file.
Such a file is parsed inside #readStructToClassData(String sClassFileName) called inside Java2C_Main#runrunFirstPass(java.io.File javaFile, boolean), if either the source *.java is not present to parse (for basics) or the destination file should not be generated because it exists and the source *.java file isn't newer than the already translated destination.

That routine parses the result and calls ZbnfJavaOutput.setOutputStrict(Object result, ZbnfParseResultItem, Report). The result is this instance.
The syntax of parsing is given in the outside file Java2Cstc.zbnf in form:

 Structure::= J2C: structure of file-class: <$?fileName> { class  } \e.
 
 ClassData::= <*; ?nameJava> ; <$?nameC> ; 
 \{ [ fieldIdents \{ [{ field;  }] \}]
    [ typeIdents \{ [{  | class  }] \}]
    [ methods \{ [{  }] \}]
    [ InnerClass \{ [{ class  }] \}]
 \}.
 
 field::= <1*?modeAccess><1*?modeArrayElement><1*?modeStatic>;
          [{\[ [\?\?|<*\]?fixArraySizes>]\]}] ;
          <*; ?typeJava> ; <$?typeC> ; <$?name> ; 
          .
          
 type::= type; <$?typeName>.
 
 method::= method ; <*;?keyName> ; <$?javaName> ; <$?CName> ;
           return ;  
           [{ param (  ) }]
           .
 
. All syntax/semantic elements have a representation in this class, because ZbnfJavaOutput.setOutputStrict(Object result, ZbnfParseResultItem, Report). sets the result of parsing directly in the instance result of this class.


Nested Class Summary
static class ReadStructure.Zbnf_Cast
           
static class ReadStructure.Zbnf_ClassData
          Subclass to pour in the result of the ClassData::=...
static class ReadStructure.Zbnf_EnvIdent
           
static class ReadStructure.Zbnf_Field
          Subclass to pour in the result of the field::=...
static class ReadStructure.Zbnf_Method
          Subclass to pour in the result of the method::=...
private static class ReadStructure.Zbnf_Type
          Subclass to pour in the result of the type::=...
static class ReadStructure.ZbnfToplevel
           
 
Field Summary
private  LocalIdents fileLevelIdents
          The classData of the top level are to add to userTypes, inner classes are add to classLevelIdents.
private static java.util.Map<java.lang.String,java.lang.Object> indexProcessedFiles
           
private  Java2C_Main java2c
          Aggregation to the global data of java2C translator.
private  JavaSrcTreeFile javaSrc
          The Java source file for which this instance is created.
private  Report msg
           
(package private)  ZbnfParser parserStruct
          The parser for *.stc input files.
private  LocalIdents pkgIdents
           
private  java.lang.String sSourceOfClassData
           
 
Constructor Summary
ReadStructure(Java2C_Main java2c, Report msg, java.lang.String sSyntaxPath)
           
 
Method Summary
(package private)  FieldData createFieldData(java.lang.String sName, ClassData typeClazz, ClassData instanceClass, ClassData elementClass, ClassData keyClass, char modeStatic, char modeAccess, char modeArrayElement, int dimensionArray, java.util.List<java.lang.String> listFixArraySizes, ClassData declaringClazz)
           
 void postPrepare(ReadStructure.ZbnfToplevel zbnfToplevel)
          Build the classData of the read stc-data.
 void prepareCastTo(ReadStructure.Zbnf_Cast value, ClassData classData)
           
 void prepareClassData(ReadStructure.Zbnf_ClassData zbnfInput, ReadStructure.ZbnfToplevel zbnfToplevel, ClassData outerClassData)
           
private  void prepareClassFieldMethod(ReadStructure.Zbnf_ClassData zbnfInput)
           
 FieldData prepareField(ReadStructure.Zbnf_Field field, ClassData classData)
           
 void prepareMethod(ReadStructure.Zbnf_Method m, ClassData classData)
           
 FieldData prepareParam(ReadStructure.Zbnf_Field param, ClassData classData)
           
 void readStructToClassData(JavaSrcTreeFile javaSrc, java.lang.String sClassFileName, java.io.File fileStruct)
          reads the structure of a class from a *.stc-File and save it to the #userTypes-ClassData.
(package private)  void stop()
           
(package private)  void writeResultAsSecondToCompare(ReadStructure.ZbnfToplevel zbnfToplevel, java.io.File fileStruct, java.lang.String sPkgPath, java.lang.String sClassFileName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

indexProcessedFiles

private static java.util.Map<java.lang.String,java.lang.Object> indexProcessedFiles

msg

private final Report msg

java2c

private final Java2C_Main java2c
Aggregation to the global data of java2C translator.


parserStruct

final ZbnfParser parserStruct
The parser for *.stc input files. The parser is initialized with syntax from file Java2Cstc.zbnf in directory given with cmd line args -syntax:SYNTAXDIR in the routine #init() called in #execute().


sSourceOfClassData

private java.lang.String sSourceOfClassData

javaSrc

private JavaSrcTreeFile javaSrc
The Java source file for which this instance is created.


fileLevelIdents

private LocalIdents fileLevelIdents
The classData of the top level are to add to userTypes, inner classes are add to classLevelIdents.


pkgIdents

private LocalIdents pkgIdents
Constructor Detail

ReadStructure

ReadStructure(Java2C_Main java2c,
              Report msg,
              java.lang.String sSyntaxPath)
        throws java.text.ParseException
Throws:
java.text.ParseException
Method Detail

readStructToClassData

public void readStructToClassData(JavaSrcTreeFile javaSrc,
                                  java.lang.String sClassFileName,
                                  java.io.File fileStruct)
                           throws java.io.FileNotFoundException,
                                  java.io.IOException,
                                  java.lang.IllegalArgumentException,
                                  java.lang.IllegalAccessException,
                                  java.lang.InstantiationException,
                                  java.text.ParseException
reads the structure of a class from a *.stc-File and save it to the #userTypes-ClassData.

Parameters:
sClassFileName - The name of the Java class.
Throws:
java.io.FileNotFoundException
java.io.IOException
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.text.ParseException

writeResultAsSecondToCompare

void writeResultAsSecondToCompare(ReadStructure.ZbnfToplevel zbnfToplevel,
                                  java.io.File fileStruct,
                                  java.lang.String sPkgPath,
                                  java.lang.String sClassFileName)
                            throws java.io.IOException
Throws:
java.io.IOException

postPrepare

public void postPrepare(ReadStructure.ZbnfToplevel zbnfToplevel)
                 throws java.lang.IllegalArgumentException,
                        java.lang.IllegalAccessException,
                        java.lang.InstantiationException,
                        java.text.ParseException,
                        java.io.FileNotFoundException,
                        java.io.IOException
Build the classData of the read stc-data.

Throws:
java.text.ParseException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.IllegalArgumentException
java.io.IOException
java.io.FileNotFoundException

prepareClassFieldMethod

private void prepareClassFieldMethod(ReadStructure.Zbnf_ClassData zbnfInput)
                              throws java.lang.IllegalArgumentException,
                                     java.lang.IllegalAccessException,
                                     java.lang.InstantiationException,
                                     java.text.ParseException,
                                     java.io.FileNotFoundException,
                                     java.io.IOException
Throws:
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.text.ParseException
java.io.FileNotFoundException
java.io.IOException

prepareClassData

public void prepareClassData(ReadStructure.Zbnf_ClassData zbnfInput,
                             ReadStructure.ZbnfToplevel zbnfToplevel,
                             ClassData outerClassData)
                      throws java.lang.IllegalArgumentException,
                             java.lang.IllegalAccessException,
                             java.lang.InstantiationException,
                             java.text.ParseException
Throws:
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.text.ParseException

prepareField

public FieldData prepareField(ReadStructure.Zbnf_Field field,
                              ClassData classData)
                       throws java.lang.IllegalArgumentException,
                              java.lang.IllegalAccessException,
                              java.lang.InstantiationException,
                              java.text.ParseException
Throws:
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.text.ParseException

prepareMethod

public void prepareMethod(ReadStructure.Zbnf_Method m,
                          ClassData classData)
                   throws java.io.FileNotFoundException,
                          java.lang.IllegalArgumentException,
                          java.io.IOException,
                          java.lang.IllegalAccessException,
                          java.lang.InstantiationException,
                          java.text.ParseException
Throws:
java.io.FileNotFoundException
java.lang.IllegalArgumentException
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.text.ParseException

prepareCastTo

public void prepareCastTo(ReadStructure.Zbnf_Cast value,
                          ClassData classData)
                   throws java.text.ParseException
Throws:
java.text.ParseException

prepareParam

public FieldData prepareParam(ReadStructure.Zbnf_Field param,
                              ClassData classData)
                       throws java.io.FileNotFoundException,
                              java.lang.IllegalArgumentException,
                              java.io.IOException,
                              java.lang.IllegalAccessException,
                              java.lang.InstantiationException,
                              java.text.ParseException
Throws:
java.io.FileNotFoundException
java.lang.IllegalArgumentException
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.text.ParseException

createFieldData

FieldData createFieldData(java.lang.String sName,
                          ClassData typeClazz,
                          ClassData instanceClass,
                          ClassData elementClass,
                          ClassData keyClass,
                          char modeStatic,
                          char modeAccess,
                          char modeArrayElement,
                          int dimensionArray,
                          java.util.List<java.lang.String> listFixArraySizes,
                          ClassData declaringClazz)

stop

void stop()