package org.softlang.company.model.company.impl.bean; import org.softlang.company.model.company.*; import org.softlang.company.features.visitor.*; import java.util.Observable; /** * Observability and a parent axis are added on top of the Component interface. */ public abstract class ComponentImpl extends Observable implements Component { private ComponentImpl parent; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; setChanged(); notifyObservers("name"); } public ComponentImpl getParent() { return parent; } /* package */ void setParent(ComponentImpl parent) { this.parent = parent; } public abstract void accept(VoidVisitor v); public abstract <R> R accept(ReturningVisitor<R> v); }