private void createConstant()

in src/main/java/org/apache/bcel/util/BCELFactory.java [81:120]


    private void createConstant(final Object value) {
        String embed = value.toString();
        if (value instanceof String) {
            embed = '"' + Utility.convertString(embed) + '"';
        } else if (value instanceof Character) {
            embed = "(char)0x" + Integer.toHexString(((Character) value).charValue());
        } else if (value instanceof Float) {
            final Float f = (Float) value;
            if (Float.isNaN(f)) {
                embed = "Float.NaN";
            } else if (f == Float.POSITIVE_INFINITY) {
                embed = "Float.POSITIVE_INFINITY";
            } else if (f == Float.NEGATIVE_INFINITY) {
                embed = "Float.NEGATIVE_INFINITY";
            } else {
                embed += "f";
            }
        }  else if (value instanceof Double) {
            final Double d = (Double) value;
            if (Double.isNaN(d)) {
                embed = "Double.NaN";
            } else if (d == Double.POSITIVE_INFINITY) {
                embed = "Double.POSITIVE_INFINITY";
            } else if (d == Double.NEGATIVE_INFINITY) {
                embed = "Double.NEGATIVE_INFINITY";
            } else {
                embed += "d";
            }
        } else if (value instanceof Long) {
            embed += "L";
        } else if (value instanceof ObjectType) {
            final ObjectType ot = (ObjectType) value;
            embed = "new ObjectType(\"" + ot.getClassName() + "\")";
        } else if (value instanceof ArrayType) {
            final ArrayType at = (ArrayType) value;
            embed = "new ArrayType(" + BCELifier.printType(at.getBasicType()) + ", " + at.getDimensions() + ")";
        }

        printWriter.println("il.append(new PUSH(_cp, " + embed + "));");
    }