com.joanju.cg.bytecode
Class CallinInstr

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
                  extended by com.joanju.cg.bytecode.CallinInstr

public class CallinInstr
extends CallInstr

Represents any IN HANDLE type of call.

A note about local references vs. xref cross-references: For IN HANDLE, we always use xref rather than local references, even if the handle resolves to THIS-PROCEDURE. Sometimes the handle that resolves to this-procedure might be a var or param, whose possible values could change as a result of changes to other compile units. Xref is designed to propagate changes like that, local references are not. So, we always use xref for IN HANDLE. For simple consistency, we use xref instead of local references even when THIS-PROCEDURE is hard-coded.


Field Summary
 
Fields inherited from class com.joanju.cg.bytecode.CallInstr
bitfield2, column, fileID, line, nameRVal, RUN_SET
 
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
CallinInstr()
           
CallinInstr(int cuid, int address)
           
 
Method Summary
protected  void calcValueSets2()
          This is wrapped by AbstractCall.calcValueSets().
 int getHandleRVal()
           
 Opcode getOpcode()
           
 java.util.HashSet<java.lang.Integer> getTargetCuids()
           
 void setHandleRVal(int handleRVal)
           
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()
          Appends handleRVal to string values from the basic CallInstr.
protected  void writeValuesToByteStream(java.io.DataOutputStream out)
           
 
Methods inherited from class com.joanju.cg.bytecode.CallInstr
getColumn, getFileID, getLine, getLocalTargets, getNameRVal, hasLocalTarget, isRunSet, setColumn, setFileID, setLine, setMethodSigID, setNameRVal, setRunSet
 
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
 

Constructor Detail

CallinInstr

public CallinInstr()

CallinInstr

public CallinInstr(int cuid,
                   int address)
Method Detail

calcValueSets2

protected void calcValueSets2()
                       throws java.sql.SQLException,
                              java.io.IOException
This is wrapped by AbstractCall.calcValueSets(). The super's calcValueSets deals with changes to values. This method does the actual value set calculations.

Overrides:
calcValueSets2 in class CallInstr
Throws:
java.sql.SQLException
java.io.IOException

getHandleRVal

public int getHandleRVal()
                  throws java.sql.SQLException,
                         java.io.IOException
Throws:
java.sql.SQLException
java.io.IOException

getOpcode

public Opcode getOpcode()
Overrides:
getOpcode in class CallInstr

getTargetCuids

public java.util.HashSet<java.lang.Integer> getTargetCuids()
                                                    throws java.sql.SQLException,
                                                           java.io.IOException
Throws:
java.sql.SQLException
java.io.IOException

setHandleRVal

public void setHandleRVal(int handleRVal)

setValuesFromByteStream

protected void setValuesFromByteStream(java.io.DataInputStream in)
                                throws java.io.IOException
Overrides:
setValuesFromByteStream in class CallInstr
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 CallInstr
Returns:
"" if not overridden.
Throws:
java.sql.SQLException

toStringFromData

public java.lang.String toStringFromData()
Appends handleRVal to string values from the basic CallInstr.

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

writeValuesToByteStream

protected void writeValuesToByteStream(java.io.DataOutputStream out)
                                throws java.io.IOException
Overrides:
writeValuesToByteStream in class CallInstr
Throws:
java.io.IOException


Copyright © 2008 Joanju Software. All Rights Reserved.