POGO Java Program


pogo.gene
Class PogoGene

java.lang.Object
  |
  +--pogo.gene.PogoGene
Direct Known Subclasses:
PogoGeneCpp, PogoGeneDoc, PogoGeneJava

public class PogoGene
extends java.lang.Object
implements PogoDefs, TangoDs.TangoConst

This class generates source file. it could generate .pogo, .cpp or .java files.


Field Summary
(package private)  PogoClass pogo
          Pogo Class to be used for generation.
protected  java.lang.StringBuffer sbTrace
          trace used during code generation.
 
Fields inherited from interface pogo.gene.PogoDefs
ALREADY_OVERRIDING, ATTR_IMAGE, ATTR_READ, ATTR_READ_WITH_WRITE, ATTR_READ_WRITE, ATTR_SCALAR, ATTR_SPECTRUM, ATTR_WRITE, AttrDataArray, AttrRWtypeArray, AttrTypeArray, authorRes, classDescRes, cppAddAttrib, cppAddCommands, cppExtention, cppFile, cppLang, dataCommands, dataExtention, dataFile, dataStartCmd, dataStartStates, endGeneTag, errDetected, javaAddAttrib, javaAddCommands, javaExtention, javaFile, javaLang, languageRes, NEW_STR, NOT_OVERRIDE, outputFiles, OVERRIDE, pageTitleRes, pogoLang, projectTitleRes, readAttrProto1, readAttrProto2, readAttrProto3, readFile, revisionRes, startGeneTag, STATE, statesDescRes, STATUS, Tango_ALARM, Tango_CLOSE, Tango_CONST_DEV_STRING, Tango_DISABLE, Tango_EXTRACT, Tango_FAULT, Tango_INSERT, Tango_MOVING, Tango_OFF, Tango_ON, Tango_OPEN, Tango_RUNNING, Tango_STANDBY, Tango_TYPE_UNKNOWN, Tango_UNKNOWN, Tango_WARMUP, TangoStatesArray, templateBlock, templateClass, templateClassCmd, templateCmd, templateExecuteCmd, templateFile, writeAttrProto, writeFile
 
Fields inherited from interface TangoDs.TangoConst
Attr_Description, Attr_Name, Attr_State, Attr_Status, Attr_Unknown, Op_BlackBox, Op_Command, Op_Command_inout, Op_Command_list, Op_Get_Attr_Config, Op_Info, Op_Ping, Op_Read_Attr, Op_Set_Attr_Config, Op_Unknown, Op_Write_Attr, Req_Attribute, Req_Operation, Req_Unknown, Tango_AllAttr, Tango_AlrmValueNotSpec, Tango_AssocWritNotSpec, Tango_CmdArgTypeName, Tango_DbErr_DeviceNotDefined, Tango_DbObjName, Tango_DefaultBlackBoxDepth, Tango_DefaultDocUrl, Tango_DefaultWritableProp, Tango_DescNotSet, Tango_DEV_BOOLEAN, Tango_DEV_DOUBLE, Tango_DEV_FLOAT, Tango_DEV_LONG, Tango_DEV_SHORT, Tango_DEV_STATE, Tango_DEV_STRING, Tango_DEV_ULONG, Tango_DEV_USHORT, Tango_DEV_VOID, Tango_DevErr_AttrMandatoryProp, Tango_DevErr_AttrNoAlarm, Tango_DevErr_AttrNotFound, Tango_DevErr_AttrNotWritable, Tango_DevErr_AttrOptProp, Tango_DevErr_AttrValueNotSet, Tango_DevErr_BlackBoxArgument, Tango_DevErr_BlackBoxEmpty, Tango_DevErr_CannotOpenFile, Tango_DevErr_CantInstallSignal, Tango_DevErr_CantRetrieveClassList, Tango_DevErr_ClassNotFound, Tango_DevErr_CmdArgumentTypeNotSupported, Tango_DevErr_CommandNotAllowed, Tango_DevErr_CommandNotFound, Tango_DevErr_DeviceNotFound, Tango_DevErr_IncompatibleAttrDataType, Tango_DevErr_IncompatibleCmdArgumentType, Tango_DevErr_InitMethodNotFound, Tango_DevErr_InitNotPublic, Tango_DevErr_InitThrowsException, Tango_DevErr_JavaRuntimeSecurityException, Tango_DevErr_MemoryAllocation, Tango_DevErr_MethodArgument, Tango_DevErr_MethodNotFound, Tango_DevErr_OverloadingNotSupported, Tango_DevErr_SignalOutOfRange, Tango_DevErr_WAttrOutsideLimit, Tango_DevStateName, Tango_DEVVAR_CHARARRAY, Tango_DEVVAR_DOUBLEARRAY, Tango_DEVVAR_DOUBLESTRINGARRAY, Tango_DEVVAR_FLOATARRAY, Tango_DEVVAR_LONGARRAY, Tango_DEVVAR_LONGSTRINGARRAY, Tango_DEVVAR_SHORTARRAY, Tango_DEVVAR_STRINGARRAY, Tango_DEVVAR_ULONGARRAY, Tango_DEVVAR_USHORTARRAY, Tango_DevVersion, Tango_DSDeviceDomain, Tango_InitialOutput, Tango_MaxServerNameLength, Tango_ResNotDefined, Tango_SysProperty
 
Constructor Summary
PogoGene(PogoClass pogo)
          Constructors for Pogo Class definition.
 
Method Summary
protected  java.lang.String addCommentsCmdMethod()
          Buid description table to give correspondance between commands and method's name.
protected  java.lang.String buildAttributesMethods(PogoString pgs, int lang)
          Get the Attribute Read/Write template
protected  void buildReadMeFile(java.lang.String f_in, java.lang.String f_out)
          Build a README file to help programmer.
protected  java.lang.String changeExeMethodArgs(Cmd cmd, java.lang.String str, int idx, int lang)
          Set old execute method in description and Generate the new one
protected  void checkForExecMethodModif(java.lang.String f_in, java.lang.String f_out, int lang)
          Check if arguments have been modified in methods where commands are really executed.
protected  void copyFile(java.lang.String f_in, java.lang.String f_out)
          Copy file 'f_in' to file 'f_out'.
 java.lang.String getTrace()
           
protected  boolean mustGenerate(java.lang.String filename)
          Test if file already exists.
protected  java.lang.String readAttributeTemplate(java.lang.String f_in, int part)
          Get the Attribute Read/Write template
protected  void replacePatternFile(java.lang.String f_in, java.lang.String f_out, java.lang.String to_find, java.lang.String target)
          Read a file a rewrite it after pattern replacement.
protected  java.lang.String setMethodInComments(PogoString pgs, int startline)
          Put the method begining at startline in description
protected  java.lang.String setProjectTitle(java.lang.String header)
          Replace the project title by the PogoClass object field content.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

pogo

PogoClass pogo
Pogo Class to be used for generation.

sbTrace

protected java.lang.StringBuffer sbTrace
trace used during code generation.
Constructor Detail

PogoGene

public PogoGene(PogoClass pogo)
Constructors for Pogo Class definition.
Parameters:
pogo - Pogo Class definition used for generation.
Method Detail

getTrace

public java.lang.String getTrace()

mustGenerate

protected boolean mustGenerate(java.lang.String filename)
                        throws java.io.FileNotFoundException,
                               java.io.IOException
Test if file already exists. if exists -> do not generate else generate.
Parameters:
filename - File name to be checked.
Returns:
true if do not exists (ok to generate.

setMethodInComments

protected java.lang.String setMethodInComments(PogoString pgs,
                                               int startline)
Put the method begining at startline in description
Parameters:
pgs - A PogoString containing the method to be put in description.
startline - Index in pgs where the method begins.
Returns:
The method in commants.

copyFile

protected void copyFile(java.lang.String f_in,
                        java.lang.String f_out)
                 throws java.io.FileNotFoundException,
                        java.io.IOException
Copy file 'f_in' to file 'f_out'.
Parameters:
f_in - Input file name.
f_out - Output file name.

replacePatternFile

protected void replacePatternFile(java.lang.String f_in,
                                  java.lang.String f_out,
                                  java.lang.String to_find,
                                  java.lang.String target)
                           throws java.io.IOException
Read a file a rewrite it after pattern replacement.
Parameters:
f_in - Input file's name.
f_out - Output file's name.
to_find - Pattern to be replaced.
target - New Pattern.
Throws:
IOException. -  

addCommentsCmdMethod

protected java.lang.String addCommentsCmdMethod()
Buid description table to give correspondance between commands and method's name.
Returns:
Comments table to give correspondance between commands and method's name.

changeExeMethodArgs

protected java.lang.String changeExeMethodArgs(Cmd cmd,
                                               java.lang.String str,
                                               int idx,
                                               int lang)
Set old execute method in description and Generate the new one
Parameters:
cmd - Command fo this execute method.
str - String containig the method to be updated.
idx - index where the execute method begins in str.
lang - language to bo generated.
Returns:
String containing the old execute method in description and anew one.

checkForExecMethodModif

protected void checkForExecMethodModif(java.lang.String f_in,
                                       java.lang.String f_out,
                                       int lang)
                                throws java.io.IOException,
                                       PogoException
Check if arguments have been modified in methods where commands are really executed.
Parameters:
f_in - Input File's name
f_out - Output File's name
Throws:
java.io.IOException -  
PogoException - If a synthax error occured on input file.

setProjectTitle

protected java.lang.String setProjectTitle(java.lang.String header)
Replace the project title by the PogoClass object field content.
Parameters:
header - File header String where the project title will be replaced.
Returns:
The header String with the new project title.

readAttributeTemplate

protected java.lang.String readAttributeTemplate(java.lang.String f_in,
                                                 int part)
                                          throws java.io.FileNotFoundException,
                                                 java.lang.SecurityException,
                                                 java.io.IOException,
                                                 PogoException
Get the Attribute Read/Write template
Parameters:
f_in - Input template file.
part - Read or Write part.
Throws:
java.io.FileNotFoundException -  
java.lang.SecurityException -  
java.io.IOException -  
PogoException - If a synthax error occured on input file

buildAttributesMethods

protected java.lang.String buildAttributesMethods(PogoString pgs,
                                                  int lang)
                                           throws java.io.FileNotFoundException,
                                                  java.lang.SecurityException,
                                                  java.io.IOException,
                                                  PogoException
Get the Attribute Read/Write template
Parameters:
pgs - Source code read from file.
lang - Output language.
Throws:
java.io.FileNotFoundException -  
java.lang.SecurityException -  
java.io.IOException -  
PogoException - If a synthax error occured on input file

buildReadMeFile

protected void buildReadMeFile(java.lang.String f_in,
                               java.lang.String f_out)
Build a README file to help programmer.
Parameters:
filename - file's name to be generated.

POGO Java Program