package de.gaalop; import java.util.Observable; import java.util.Observer; /** * For every CodeParser a plugin provides, it must provide a class implementing this interface that can create CodeParsers and * provides information to the user about itself. * * Classes implementing this interface <em>MUST</em> be thread-safe. */ public interface CodeParserPlugin extends Plugin { /** * Creates a new CodeParser instance. * * @return A CodeParser instance. This may be a shared instance, if the CodeParser does not hold any state. */ CodeParser createCodeParser(); /** * Wrapper method for {@link Observable#addObserver(Observer)}. Since interfaces cannot extend {@link Observer}, this method * has to be implemented to call {@link Observable#addObserver(Observer)} or by handling an own list of observers. * * @param observer observer to be registered for this plugin */ void addObserver(Observer observer); }