|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.joanju.cg.bytecode.Bytecode com.joanju.cg.bytecode.SupersInstr
public class SupersInstr
Field Summary |
---|
Fields inherited from class com.joanju.cg.bytecode.Bytecode |
---|
address, cuid, instrSet, nodeNum, xrefs |
Constructor Summary | |
---|---|
SupersInstr()
|
|
SupersInstr(int cuid,
int address)
|
Method Summary | |
---|---|
void |
addLocalAddSuperSite(int siteAddress)
Called by the codegenerator at every addsuper in this CU. |
void |
beforeWrite(boolean isNewBuild)
Called when a build or checkval is done processing a CU, before writing the new/changed records. |
void |
calcValueSets()
Calculate the value sets for the instruction. |
java.util.HashMap<java.lang.Integer,java.util.HashSet<int[]>> |
generateProcname2localSuperSet()
Generate a map of procnameIDs to super procedure addresses. |
Opcode |
getOpcode()
|
java.util.HashSet<java.lang.Integer> |
getSearchTargetValues()
Get the SEARCH-TARGET CUIDs. |
java.util.HashSet<java.lang.Integer> |
getSelfAndSearchTargetSupers()
If RUN SUPER or SUPER() is called from this procedure, then we need a set of all possible target super CUs. |
java.util.HashSet<java.lang.Integer> |
getSuperCUValues()
|
boolean |
hasSuperCUValue(int superCuid)
Is the input CUID already in this CU's superCUValues set? |
protected void |
setValuesFromByteStream(java.io.DataInputStream in)
|
java.lang.String |
toStringFromData()
All Bytecode instruction subclasses should override this eventually. |
protected void |
writeValuesToByteStream(java.io.DataOutputStream out)
|
Methods inherited from class com.joanju.cg.bytecode.Bytecode |
---|
addSource, addWhereUsed, calcValuesAgain, compareTo, equals, fetchBytesFromDB, fetchInCu, generateDataForDB, getAddress, getCuID, getNodeNum, getSources, getValues, getValuesCalcLocal, getWhereUsed, getXrefs, hashCode, initData, isDataModified, isFromDB, setAddress, setCuID, setDataBytesFromDB, setDataModified, setFromDB, setInstructionSet, setNodeNum, shouldLoadData, sourcesForXrefTarget, storeIfModified, toString, toStringFromComments, toStringFromName, toStringFromSet |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public SupersInstr()
public SupersInstr(int cuid, int address)
Method Detail |
---|
public void addLocalAddSuperSite(int siteAddress) throws java.sql.SQLException, java.io.IOException
java.sql.SQLException
java.io.IOException
public void beforeWrite(boolean isNewBuild) throws java.sql.SQLException, java.io.IOException
Bytecode
beforeWrite
in class Bytecode
java.sql.SQLException
java.io.IOException
public void calcValueSets() throws java.sql.SQLException, java.io.IOException
Bytecode
Called during build, build-recalc, checkvals, and checkvals-recalc. Implementations should only build from external values once. Calculates which xref records are needed as well.
IMPORTANT: Should only ever be called for instructions belonging to an InstructionSet.
calcValueSets
in class Bytecode
java.sql.SQLException
java.io.IOException
public java.util.HashMap<java.lang.Integer,java.util.HashSet<int[]>> generateProcname2localSuperSet() throws java.sql.SQLException, java.io.IOException
java.sql.SQLException
java.io.IOException
public Opcode getOpcode()
getOpcode
in class Bytecode
public java.util.HashSet<java.lang.Integer> getSelfAndSearchTargetSupers() throws java.sql.SQLException, java.io.IOException
The set of possible target CUs is the union of this unit's superCUValues, as well as the superCUValues of all of the CUs in this unit's searchTargetValues.
Super procedure chain searching is not recursive (supers of supers are not added to the set).
The return set is guaranteed not to include this unit's CUID.
java.sql.SQLException
java.io.IOException
public java.util.HashSet<java.lang.Integer> getSuperCUValues() throws java.sql.SQLException, java.io.IOException
java.sql.SQLException
java.io.IOException
public java.util.HashSet<java.lang.Integer> getSearchTargetValues() throws java.sql.SQLException, java.io.IOException
java.sql.SQLException
java.io.IOException
public boolean hasSuperCUValue(int superCuid) throws java.sql.SQLException, java.io.IOException
java.sql.SQLException
java.io.IOException
protected void setValuesFromByteStream(java.io.DataInputStream in) throws java.io.IOException
setValuesFromByteStream
in class Bytecode
java.io.IOException
public java.lang.String toStringFromData()
Bytecode
toStringFromData
in class Bytecode
protected void writeValuesToByteStream(java.io.DataOutputStream out) throws java.io.IOException
writeValuesToByteStream
in class Bytecode
java.io.IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |