com.joanju.cg.bytecode
Class CallInstr

java.lang.Object
  extended by com.joanju.cg.bytecode.Bytecode
      extended by com.joanju.cg.bytecode.Endpoint
          extended by com.joanju.cg.bytecode.AbstractCall
              extended by com.joanju.cg.bytecode.CallInstr
Direct Known Subclasses:
CallinInstr

public class CallInstr
extends AbstractCall

Records a RUN statement, a call to a user function, or a call to a method. Inherited by CallinInstr.


Field Summary
protected  int bitfield2
           
protected  int column
           
protected  int fileID
           
protected  int line
           
protected  int nameRVal
           
protected static int RUN_SET
          If this instruction is for a RUN..SET statement, it affects its procedure search behaviour.
 
Fields inherited from class com.joanju.cg.bytecode.AbstractCall
bitfield1, externalMatching, externalUnmatched, localTargets, methodSigID, targetType, whereUsedAddr
 
Fields inherited from class com.joanju.cg.bytecode.Endpoint
longSignature
 
Fields inherited from class com.joanju.cg.bytecode.Bytecode
address, cuid, instrSet, nodeNum, xrefs
 
Constructor Summary
CallInstr()
           
CallInstr(int cuid, int address)
           
 
Method Summary
protected  void calcValueSets2()
          Wrapped by AbstractCall.calcValueSets().
 int getColumn()
           
 int getFileID()
           
 int getLine()
           
 java.util.HashSet<java.lang.Integer> getLocalTargets()
           
 int getNameRVal()
          The address of the instruction of the source of the procedure name.
 Opcode getOpcode()
           
 boolean hasLocalTarget(int procAddress)
           
 boolean isRunSet()
          Does this call instruction represent a "RUN..SET handle" statement?
 void setColumn(int column)
           
 void setFileID(int fileID)
           
 void setLine(int line)
           
 void setMethodSigID(int methodSigID)
           
 void setNameRVal(int nameRVal)
           
 void setRunSet()
          Sets to true the flag indicating that this is a "RUN..SET handle" statement.
protected  void setValuesFromByteStream(java.io.DataInputStream in)
           
 java.lang.String toStringFromComments(InstructionSet instrs)
          All Bytecode instruction subclasses should override this eventually.
 java.lang.String toStringFromData()
          methodSigID, nameRVal, fileID, line, column, isUserIgnoreMismatch, isUserIgnoreUnresolved, localTargets.
protected  void writeValuesToByteStream(java.io.DataOutputStream out)
           
 
Methods inherited from class com.joanju.cg.bytecode.AbstractCall
addWhereUsed, beforeWrite, calcValueSets, enableUserIgnoreMismatch, enableUserIgnoreUnresolved, getAllTargetProcedures, getMethodSig, getMethodSigID, getTargetType, getValues, isUserIgnoreMismatch, isUserIgnoreUnresolved, setTargetType
 
Methods inherited from class com.joanju.cg.bytecode.Endpoint
getLongSignature, setLongSignature
 
Methods inherited from class com.joanju.cg.bytecode.Bytecode
addSource, calcValuesAgain, compareTo, equals, fetchBytesFromDB, fetchInCu, generateDataForDB, getAddress, getCuID, getNodeNum, getSources, getValuesCalcLocal, getWhereUsed, getXrefs, hashCode, initData, isDataModified, isFromDB, setAddress, setCuID, setDataBytesFromDB, setDataModified, setFromDB, setInstructionSet, setNodeNum, shouldLoadData, sourcesForXrefTarget, storeIfModified, toString, toStringFromName, toStringFromSet
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

nameRVal

protected int nameRVal

fileID

protected int fileID

line

protected int line

column

protected int column

bitfield2

protected int bitfield2

RUN_SET

protected static final int RUN_SET
If this instruction is for a RUN..SET statement, it affects its procedure search behaviour.

See Also:
Constant Field Values
Constructor Detail

CallInstr

public CallInstr()

CallInstr

public CallInstr(int cuid,
                 int address)
Method Detail

calcValueSets2

protected void calcValueSets2()
                       throws java.sql.SQLException,
                              java.io.IOException
Wrapped by AbstractCall.calcValueSets().

Specified by:
calcValueSets2 in class AbstractCall
Throws:
java.sql.SQLException
java.io.IOException

getColumn

public int getColumn()
              throws java.sql.SQLException,
                     java.io.IOException
Specified by:
getColumn in class AbstractCall
Throws:
java.sql.SQLException
java.io.IOException

getFileID

public int getFileID()
              throws java.sql.SQLException,
                     java.io.IOException
Specified by:
getFileID in class AbstractCall
Throws:
java.sql.SQLException
java.io.IOException

getLine

public int getLine()
            throws java.sql.SQLException,
                   java.io.IOException
Specified by:
getLine in class AbstractCall
Throws:
java.sql.SQLException
java.io.IOException

getLocalTargets

public java.util.HashSet<java.lang.Integer> getLocalTargets()
                                                     throws java.sql.SQLException,
                                                            java.io.IOException
Specified by:
getLocalTargets in class AbstractCall
Throws:
java.sql.SQLException
java.io.IOException

getNameRVal

public int getNameRVal()
                throws java.sql.SQLException,
                       java.io.IOException
The address of the instruction of the source of the procedure name. Could be the unresolved address, a string literal address, the address of a variable, or the address of an expression.

Throws:
java.sql.SQLException
java.io.IOException

getOpcode

public Opcode getOpcode()
Specified by:
getOpcode in class Bytecode

hasLocalTarget

public boolean hasLocalTarget(int procAddress)
                       throws java.sql.SQLException,
                              java.io.IOException
Overrides:
hasLocalTarget in class AbstractCall
Throws:
java.sql.SQLException
java.io.IOException

isRunSet

public boolean isRunSet()
                 throws java.sql.SQLException,
                        java.io.IOException
Does this call instruction represent a "RUN..SET handle" statement?

Throws:
java.sql.SQLException
java.io.IOException

setFileID

public void setFileID(int fileID)

setLine

public void setLine(int line)

setColumn

public void setColumn(int column)

setMethodSigID

public void setMethodSigID(int methodSigID)

setNameRVal

public void setNameRVal(int nameRVal)

setRunSet

public void setRunSet()
Sets to true the flag indicating that this is a "RUN..SET handle" statement.


setValuesFromByteStream

protected void setValuesFromByteStream(java.io.DataInputStream in)
                                throws java.io.IOException
Specified by:
setValuesFromByteStream in class Bytecode
Throws:
java.io.IOException

toStringFromComments

public java.lang.String toStringFromComments(InstructionSet instrs)
                                      throws java.sql.SQLException
Description copied from class: Bytecode
All Bytecode instruction subclasses should override this eventually.

Overrides:
toStringFromComments in class Bytecode
Returns:
"" if not overridden.
Throws:
java.sql.SQLException

toStringFromData

public java.lang.String toStringFromData()
methodSigID, nameRVal, fileID, line, column, isUserIgnoreMismatch, isUserIgnoreUnresolved, localTargets.

Overrides:
toStringFromData in class Bytecode
Returns:
"" if not overridden.

writeValuesToByteStream

protected void writeValuesToByteStream(java.io.DataOutputStream out)
                                throws java.io.IOException
Specified by:
writeValuesToByteStream in class Bytecode
Throws:
java.io.IOException


Copyright © 2008 Joanju Software. All Rights Reserved.