/* * Copyright 2009-2010 MBTE Sweden AB. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mbte.groovypp.compiler.asm; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Label; import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.Attribute; import java.util.List; import java.util.ArrayList; public class StoringMethodVisitor implements MethodVisitor { public final List<AsmInstr> operations = new ArrayList<AsmInstr>(); public void visitInsn(int opcode) { operations.add(new VisitInsn(opcode)); } public void visitIntInsn(int opcode, int operand) { operations.add(new VisitIntInsn(opcode, operand)); } public void visitVarInsn(int opcode, int var) { operations.add(new VisitVarInsn(opcode, var)); } public void visitTypeInsn(int opcode, String type) { operations.add(new VisitTypeInsn(opcode, type)); } public void visitFieldInsn(int opcode, String owner, String name, String type) { operations.add(new VisitFieldInsn(opcode, owner, name, type)); } public void visitMethodInsn(int opcode, String owner, String name, String descr) { operations.add(new VisitMethodInsn(opcode, owner, name, descr)); } public void visitJumpInsn(int opcode, Label label) { operations.add(new VisitJumpInsn(opcode, label)); } public void visitLabel(Label label) { operations.add(new VisitLabel(label)); } public void visitLdcInsn(Object value) { operations.add(new VisitLdcInsn(value)); } public void visitIincInsn(int var, int increment) { operations.add(new VisitIincInsn(var, increment)); } public void visitTableSwitchInsn(int i, int i1, Label label, Label[] labels) { operations.add(new VisitTableSwitchInsn(i, i1, label, labels)); } public void visitLookupSwitchInsn(Label label, int[] ints, Label[] labels) { operations.add(new VisitLookupSwitchInsn(label, ints, labels)); } public void visitMultiANewArrayInsn(String s, int i) { operations.add(new VisitMultiANewArrayInsn(s, i)); } public void visitTryCatchBlock(Label label, Label label1, Label label2, String s) { operations.add(new VisitTryCatchBlock(label, label1, label2, s)); } public void visitLocalVariable(String s, String s1, String s2, Label label, Label label1, int i) { operations.add(new VisitLocalVariable(s, s1, label, label1, i)); } public void visitLineNumber(int line, Label label) { operations.add(new VisitLineNumber(line, label)); } public void visitMaxs(int i, int i1) { throw new UnsupportedOperationException(); } public void visitEnd() { throw new UnsupportedOperationException(); } public AnnotationVisitor visitAnnotationDefault() { throw new UnsupportedOperationException(); } public AnnotationVisitor visitAnnotation(String s, boolean b) { throw new UnsupportedOperationException(); } public AnnotationVisitor visitParameterAnnotation(int i, String s, boolean b) { throw new UnsupportedOperationException(); } public void visitAttribute(Attribute attribute) { throw new UnsupportedOperationException(); } public void visitCode() { throw new UnsupportedOperationException(); } public void visitFrame(int i, int i1, Object[] objects, int i2, Object[] objects1) { throw new UnsupportedOperationException(); } }