// ino.module.InterfaceBody.8583.package package de.dhbwstuttgart.syntaxtree; // ino.end // ino.module.InterfaceBody.8583.import import java.util.Vector; import de.dhbwstuttgart.bytecode.ClassFile; import de.dhbwstuttgart.myexception.JVMCodeException; import mycompiler.mymodifier.Modifiers; // ino.end // ino.class.InterfaceBody.23984.description type=javadoc /** * Die Klasse enthaelt den Inhalt eines Interfaces, also Konstanten- * und Mehtodendefinitionen. * @author SCJU * */ // ino.end // ino.class.InterfaceBody.23984.declaration public class InterfaceBody // ino.end // ino.class.InterfaceBody.23984.body { // ino.attribute.ConstantVektor.23987.declaration protected Vector ConstantVektor = new Vector(); // ino.end // ino.attribute.MethodVektor.23990.declaration protected Vector MethodVektor = new Vector(); // ino.end // ino.method.InterfaceBody.23993.defdescription type=line // Konstruktoren // ino.end // ino.method.InterfaceBody.23993.definition public InterfaceBody() // ino.end // ino.method.InterfaceBody.23993.body { } // ino.end // ino.method.addElement.23996.defdescription type=javadoc /** * Fuegt ein neues Element (Konstantendefinition oder abstrakte * Methode) ein. */ // ino.end // ino.method.addElement.23996.definition public void addElement(Field fd) // ino.end // ino.method.addElement.23996.body { if (fd instanceof Constant) { ConstantVektor.addElement((Constant) fd); } else if (fd instanceof Method) { MethodVektor.addElement((Method) fd); } } // ino.end // ino.method.getConstantVektor.23999.definition public Vector getConstantVektor() // ino.end // ino.method.getConstantVektor.23999.body { return ConstantVektor; } // ino.end // ino.method.setConstantVektor.24002.definition public void setConstantVektor(Vector constantVektor) // ino.end // ino.method.setConstantVektor.24002.body { ConstantVektor = constantVektor; } // ino.end // ino.method.getMethodVektor.24005.definition public Vector getMethodVektor() // ino.end // ino.method.getMethodVektor.24005.body { return MethodVektor; } // ino.end // ino.method.setMethodVektor.24008.definition public void setMethodVektor(Vector methodVektor) // ino.end // ino.method.setMethodVektor.24008.body { MethodVektor = methodVektor; } // ino.end // ino.method.codegen.24011.definition public void codegen(ClassFile cf, Vector paralist) throws JVMCodeException // ino.end // ino.method.codegen.24011.body { // Constanten verarbeiten for (int i=0; i < ConstantVektor.size(); i++) { ConstantVektor.elementAt(i).codegen(cf, paralist); } // Methodenheader verarbeiten for (int i=0; i < MethodVektor.size(); i++) { Method m = MethodVektor.elementAt(i); Modifiers mod = m.getDeclIdVector().elementAt(0).get_Modifiers(); if (mod != null){ mod.ensureAbstract(); mod.ensurePublic(); } else { mod = new Modifiers(); mod.ensureAbstract(); mod.ensurePublic(); m.getDeclIdVector().elementAt(0).set_Modifiers(mod); } // Sicherstellen, dass kein Bytecode innerhalb // der Methode generiert wird. m.setAbstract(true); m.codegen(cf, paralist); } } // ino.end } // ino.end