Package org.ow2.asm

Examples of org.ow2.asm.Handle


            buf.append("Type.getType(\"");
            buf.append(((Type) cst).getDescriptor());
            buf.append("\")");
        } else if (cst instanceof Handle) {
            buf.append("new Handle(");
            Handle h = (Handle) cst;
            buf.append("Opcodes.").append(HANDLE_TAG[h.getTag()])
                    .append(", \"");
            buf.append(h.getOwner()).append("\", \"");
            buf.append(h.getName()).append("\", \"");
            buf.append(h.getDesc()).append("\")");
        } else if (cst instanceof Byte) {
            buf.append("new Byte((byte)").append(cst).append(')');
        } else if (cst instanceof Boolean) {
            buf.append(((Boolean) cst).booleanValue() ? "Boolean.TRUE"
                    : "Boolean.FALSE");
View Full Code Here


    public Object mapValue(Object value) {
        if (value instanceof Type) {
            return mapType((Type) value);
        }
        if (value instanceof Handle) {
            Handle h = (Handle) value;
            return new Handle(h.getTag(), mapType(h.getOwner()), mapMethodName(
                    h.getOwner(), h.getName(), h.getDesc()),
                    mapMethodDesc(h.getDesc()));
        }
        return value;
    }
View Full Code Here

                int tag = Integer.parseInt(val.substring(tagIndex + 1,
                        val.length() - 1));
                String owner = val.substring(0, dotIndex);
                String name = val.substring(dotIndex + 1, descIndex);
                String desc = val.substring(descIndex, tagIndex - 1);
                return new Handle(tag, owner, name, desc);

            } catch (RuntimeException e) {
                throw new SAXException("Malformed handle " + val, e);
            }
        }
View Full Code Here

        }

        @Override
        public final void end(final String element) {
            ArrayList<?> bsmArgs = (ArrayList<?>) pop();
            Handle bsm = (Handle) pop();
            String desc = (String) pop();
            String name = (String) pop();
            getCodeVisitor().visitInvokeDynamicInsn(name, desc, bsm,
                    bsmArgs.toArray());
        }
View Full Code Here

        private static Handle getHandle(
            final String name,
            final String optArgs)
        {
            return new Handle(H_INVOKESTATIC,
                    "RT",
                    name,
                    "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;"
                            + optArgs + ")Ljava/lang/invoke/CallSite;");
        }
View Full Code Here

                "java/lang/Object",
                null);

        mv = cw.visitMethod(ACC_PUBLIC, "foo", "()V", null, null);
        mv.visitCode();
        Handle h = new Handle(H_INVOKESTATIC,
                "C",
                "bsm",
                "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/CallSite;");
        mv.visitInvokeDynamicInsn("bar", "()V", h, Type.getType("()V"), h);
        mv.visitInsn(RETURN);
View Full Code Here

        } else if (cst instanceof String) {
            appendString(buf, (String) cst);
        } else if (cst instanceof Type) {
            buf.append("Type.getType(\"").append(cst).append("\")");
        } else if (cst instanceof Handle) {
            Handle h = (Handle) cst;
            buf.append("new Handle(").append(h.getTag()).
                append(", \"").append(h.getOwner()).
                append("\", \"").append(h.getName()).
                append("\", \"").append(h.getDesc()).append("\")");
        } else {
            buf.append(cst);
        }
    }
View Full Code Here

        assertEquals(INVOKESPECIAL, mn.getOpcode());
        assertEquals(AbstractInsnNode.METHOD_INSN, mn.getType());
    }

    public void testInvokeDynamicInsnNode() {
        Handle bsm = new Handle(Opcodes.H_INVOKESTATIC, "owner", "name", "()V");
        InvokeDynamicInsnNode mn = new InvokeDynamicInsnNode(
                "name",
                "()V",
                bsm,
                new Object[0]);
View Full Code Here

                int tag = Integer.parseInt(val.substring(tagIndex + 1, val.length() - 1));
                String owner = val.substring(0, dotIndex);
                String name = val.substring(dotIndex + 1, descIndex);
                String desc = val.substring(descIndex, tagIndex - 1);
                return new Handle(tag, owner, name, desc);

            } catch(RuntimeException e) {
                throw new SAXException("Malformed handle "+val, e);
            }
        }
View Full Code Here

        }

        @Override
        public final void end(final String element) {
            ArrayList<?> bsmArgs = (ArrayList<?>)pop();
            Handle bsm = (Handle)pop();
            String desc = (String)pop();
            String name = (String)pop();
            getCodeVisitor().visitInvokeDynamicInsn(name, desc, bsm, bsmArgs.toArray());
        }
View Full Code Here

TOP

Related Classes of org.ow2.asm.Handle

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.