package de.dhbwstuttgart.syntaxtree; import de.dhbwstuttgart.core.IItemWithOffset; import de.dhbwstuttgart.typecheck.JavaClassName; import de.dhbwstuttgart.syntaxtree.modifier.Modifiers; import de.dhbwstuttgart.syntaxtree.statement.Block; import de.dhbwstuttgart.syntaxtree.statement.Expr; import de.dhbwstuttgart.syntaxtree.type.RefType; import java.util.ArrayList; import java.util.List; /** * Stellt jede Art von Klasse dar. Auch abstrakte Klassen und Interfaces */ public class ClassOrInterface extends GTVDeclarationContext implements IItemWithOffset, Generic{ protected Modifiers modifiers; protected JavaClassName name; private Block class_block; private List fielddecl = new ArrayList<>(); private GenericDeclarationList genericClassParameters; private int offset; private RefType superClass; protected boolean isInterface; private List implementedInterfaces; public ClassOrInterface(Modifiers modifiers, JavaClassName name, Block class_block, List fielddecl, GenericDeclarationList genericClassParameters, int offset, RefType superClass, Boolean isInterface, List implementedInterfaces){ if(modifiers != null){ this.modifiers = modifiers; } if(name != null){ this.name = name; } if(class_block != null){ this.class_block = class_block; } if(fielddecl != null){ this.fielddecl = fielddecl; } if(genericClassParameters != null){ this.genericClassParameters = genericClassParameters; } this.offset = offset; if(superClass != null){ this.superClass = superClass; } this.isInterface = isInterface; if(implementedInterfaces != null){ this.implementedInterfaces = implementedInterfaces; } } // Gets class name public JavaClassName getClassName(){ return this.name; } // Get modifiers public Modifiers getModifiers(){ return this.modifiers; } }