Methods Summary |
---|
public com.sun.org.apache.bcel.internal.generic.Instruction | ADD()
return InstructionConstants.IADD;
|
public com.sun.org.apache.bcel.internal.generic.Instruction | DIV()
return InstructionConstants.IDIV;
|
public com.sun.org.apache.bcel.internal.generic.BranchInstruction | GE(boolean tozero)
return tozero ? (BranchInstruction) new IFGE(null) :
(BranchInstruction) new IF_ICMPGE(null);
|
public com.sun.org.apache.bcel.internal.generic.BranchInstruction | GT(boolean tozero)
return tozero ? (BranchInstruction) new IFGT(null) :
(BranchInstruction) new IF_ICMPGT(null);
|
public com.sun.org.apache.bcel.internal.generic.BranchInstruction | LE(boolean tozero)
return tozero ? (BranchInstruction) new IFLE(null) :
(BranchInstruction) new IF_ICMPLE(null);
|
public com.sun.org.apache.bcel.internal.generic.Instruction | LOAD(int slot)
return new ILOAD(slot);
|
public com.sun.org.apache.bcel.internal.generic.BranchInstruction | LT(boolean tozero)
return tozero ? (BranchInstruction) new IFLT(null) :
(BranchInstruction) new IF_ICMPLT(null);
|
public com.sun.org.apache.bcel.internal.generic.Instruction | MUL()
return InstructionConstants.IMUL;
|
public com.sun.org.apache.bcel.internal.generic.Instruction | NEG()
return InstructionConstants.INEG;
|
public com.sun.org.apache.bcel.internal.generic.Instruction | REM()
return InstructionConstants.IREM;
|
public com.sun.org.apache.bcel.internal.generic.Instruction | STORE(int slot)
return new ISTORE(slot);
|
public com.sun.org.apache.bcel.internal.generic.Instruction | SUB()
return InstructionConstants.ISUB;
|
public int | distanceTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type type)
if (type == this) {
return 0;
}
else if (type == Type.Real) {
return 1;
}
else
return Integer.MAX_VALUE;
|
public boolean | identicalTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type other)
return this == other;
|
public com.sun.org.apache.bcel.internal.generic.Type | toJCType()
return com.sun.org.apache.bcel.internal.generic.Type.INT;
|
public java.lang.String | toSignature()
return "I";
|
public java.lang.String | toString()
return "int";
|
public void | translateBox(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen)Translates an object of this type to its boxed representation.
translateTo(classGen, methodGen, Type.Reference);
|
public void | translateTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.BooleanType type)Expects an integer on the stack and pushes a 0 if its value is 0 and
a 1 otherwise.
final InstructionList il = methodGen.getInstructionList();
final BranchHandle falsec = il.append(new IFEQ(null));
il.append(ICONST_1);
final BranchHandle truec = il.append(new GOTO(null));
falsec.setTarget(il.append(ICONST_0));
truec.setTarget(il.append(NOP));
|
public void | translateTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.ReferenceType type)Expects an integer on the stack and pushes a boxed integer.
Boxed integers are represented by an instance of
java.lang.Integer .
final ConstantPoolGen cpg = classGen.getConstantPool();
final InstructionList il = methodGen.getInstructionList();
il.append(new NEW(cpg.addClass(INTEGER_CLASS)));
il.append(DUP_X1);
il.append(SWAP);
il.append(new INVOKESPECIAL(cpg.addMethodref(INTEGER_CLASS,
"<init>", "(I)V")));
|
public void | translateTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, java.lang.Class clazz)Translates an integer into the Java type denoted by clazz .
Expects an integer on the stack and pushes a number of the appropriate
type after coercion.
final InstructionList il = methodGen.getInstructionList();
if (clazz == Character.TYPE) {
il.append(I2C);
}
else if (clazz == Byte.TYPE) {
il.append(I2B);
}
else if (clazz == Short.TYPE) {
il.append(I2S);
}
else if (clazz == Integer.TYPE) {
il.append(NOP);
}
else if (clazz == Long.TYPE) {
il.append(I2L);
}
else if (clazz == Float.TYPE) {
il.append(I2F);
}
else if (clazz == Double.TYPE) {
il.append(I2D);
}
// Is Double <: clazz? I.e. clazz in { Double, Number, Object }
else if (clazz.isAssignableFrom(java.lang.Double.class)) {
il.append(I2D);
Type.Real.translateTo(classGen, methodGen, Type.Reference);
}
else {
ErrorMsg err = new ErrorMsg(ErrorMsg.DATA_CONVERSION_ERR,
toString(), clazz.getName());
classGen.getParser().reportError(Constants.FATAL, err);
}
|
public void | translateTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type type)Translates an integer into an object of internal type type .
if (type == Type.Real) {
translateTo(classGen, methodGen, (RealType) type);
}
else if (type == Type.String) {
translateTo(classGen, methodGen, (StringType) type);
}
else if (type == Type.Boolean) {
translateTo(classGen, methodGen, (BooleanType) type);
}
else if (type == Type.Reference) {
translateTo(classGen, methodGen, (ReferenceType) type);
}
else {
ErrorMsg err = new ErrorMsg(ErrorMsg.DATA_CONVERSION_ERR,
toString(), type.toString());
classGen.getParser().reportError(Constants.FATAL, err);
}
|
public void | translateTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.RealType type)Expects an integer on the stack and pushes a real.
methodGen.getInstructionList().append(I2D);
|
public void | translateTo(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.StringType type)Expects an integer on the stack and pushes its string value by calling
Integer.toString(int i) .
final ConstantPoolGen cpg = classGen.getConstantPool();
final InstructionList il = methodGen.getInstructionList();
il.append(new INVOKESTATIC(cpg.addMethodref(INTEGER_CLASS,
"toString",
"(I)" + STRING_SIG)));
|
public com.sun.org.apache.xalan.internal.xsltc.compiler.FlowList | translateToDesynthesized(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.BooleanType type)Expects an integer on the stack and translates it to a non-synthesized
boolean. It does not push a 0 or a 1 but instead returns branchhandle
list to be appended to the false list.
final InstructionList il = methodGen.getInstructionList();
return new FlowList(il.append(new IFEQ(null)));
|
public void | translateUnBox(com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator classGen, com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator methodGen)Translates an object of this type to its unboxed representation.
final ConstantPoolGen cpg = classGen.getConstantPool();
final InstructionList il = methodGen.getInstructionList();
il.append(new CHECKCAST(cpg.addClass(INTEGER_CLASS)));
final int index = cpg.addMethodref(INTEGER_CLASS,
INT_VALUE,
INT_VALUE_SIG);
il.append(new INVOKEVIRTUAL(index));
|