// ino.module.Interface.8582.package package de.dhbwstuttgart.syntaxtree; // ino.end // ino.module.Interface.8582.import import java.util.Vector; import de.dhbwstuttgart.bytecode.ClassFile; import de.dhbwstuttgart.core.AClassOrInterface; import de.dhbwstuttgart.myexception.JVMCodeException; import de.dhbwstuttgart.syntaxtree.misc.UsedId; import de.dhbwstuttgart.syntaxtree.type.GenericTypeVar; import de.dhbwstuttgart.syntaxtree.type.RefType; import de.dhbwstuttgart.syntaxtree.type.Type; import de.dhbwstuttgart.typeinference.TypeinferenceResultSet; import mycompiler.mymodifier.Modifiers; /** * Ein Interface ist eine abstrakte Klasse, erbt daher von Class * @author janulrich * */ public class Interface extends Class { public Interface(String name, int offset){ super(name, offset); } public Interface(String name, Modifiers modifiers, int offset) { super(name,modifiers, offset); } public Vector getParaList() { // TODO Auto-generated method stub return null; } public void setInterfaceBody(InterfaceBody interfaceBody) { // TODO Auto-generated method stub } public void setParaList(Vector paraVector) { // TODO Auto-generated method stub } } // ino.class.Interface.23932.description type=javadoc /** * Die Klasse stellt die Definition eines Interfaces dar. * @author SCJU * */ /* // ino.end // ino.class.Interface.23932.declaration public class Interface implements AClassOrInterface // ino.end // ino.class.Interface.23932.body { // ino.attribute.ib.23936.declaration private InterfaceBody ib; // ino.end // ino.attribute.paralist.23939.decldescription type=line // HOTI 29. Apr 06 // ino.end // ino.attribute.paralist.23939.declaration private Vector paralist = new Vector(); // Parameterliste 'interface xy{}' wird gespeichert // ino.end // ino.attribute.containedTypes.23942.declaration private Vector containedTypes; // ino.end // ino.method.Interface.23945.defdescription type=line // Konstruktoren // ino.end // ino.method.Interface.23945.definition public Interface() // ino.end // ino.method.Interface.23945.body { super(); } // ino.end // ino.method.Interface.23948.definition public Interface(String name) // ino.end // ino.method.Interface.23948.body { super(name); } // ino.end // ino.method.Interface.23951.definition public Interface(String name, Modifiers mod) // ino.end // ino.method.Interface.23951.body { super(name, mod); } // ino.end // ino.method.getParaList.23954.definition public Vector getParaList() // ino.end // ino.method.getParaList.23954.body { return this.paralist; } // ino.end // ino.method.setParaList.23957.definition public void setParaList(Vector paralist) // ino.end // ino.method.setParaList.23957.body { this.paralist=paralist; } // ino.end // ino.method.setContainedTypes.23960.definition public void setContainedTypes(Vector containedTypes) // ino.end // ino.method.setContainedTypes.23960.body { this.containedTypes = containedTypes; } // ino.end // ino.method.getContainedTypes.23963.definition public Vector getContainedTypes() // ino.end // ino.method.getContainedTypes.23963.body { return containedTypes; } // ino.end // ino.method.codegen.23966.definition public void codegen(SourceFile sf) throws JVMCodeException // ino.end // ino.method.codegen.23966.body { codegenlog.info("Definierte Superinterfaces: " + getSuperInterfaces().size()); codegenlog.debug("Liste der Interfaces: " + getSuperInterfaces().toString()); codegenlog.info("Definierte Konstanten: " + ib.getConstantVektor().size()); codegenlog.info("Definierte Methoden: " + ib.getMethodVektor().size()); // Erzeugen einer Classfile auf Basis des Interfaces ClassFile classfile = new ClassFile(this, sf); // Handling fuer Generics classfile.addGenerics(paralist, null, getSuperInterfaces()); // Handling fuer Superinterfaces classfile.addSuperInterfaces(getSuperInterfaces()); // Codegen fuer Interface-Body Vector paralist = new Vector(); if(ib != null) ib.codegen(classfile, paralist); classfile.codegen(); codegenlog.info("Compilierung erfolgreich abgeschlossen, "+ getName() + ".class erstellt."); } // ino.end // ino.method.getInterfaceBody.23969.definition public InterfaceBody getInterfaceBody() // ino.end // ino.method.getInterfaceBody.23969.body { return ib; } // ino.end // ino.method.setInterfaceBody.23972.definition public void setInterfaceBody(InterfaceBody ib) // ino.end // ino.method.setInterfaceBody.23972.body { this.ib = ib; } // ino.end // ino.end // ino.method.isAGenericType.23978.definition public boolean isAGenericType(RefType type) // ino.end // ino.method.isAGenericType.23978.body { if(paralist==null) return false; for(int i=0;i methods=ib.MethodVektor; // Alle Methoden durchgehen for(int i=0;i