package com.treelight.krnl; /** * The abstract class for an object capable of returning a previous version. * Concrete classes may either keep a pointer to an old version of the * information, or store undo information. * *Design Note: * We could make concrete version-wrapper classes for each of the * node types on the theory that, like with the node types, doing so would * let the compiler help us with type checking. However, since there are * already two kinds of concrete wrapper types (old version and undo), as * well as 5 concrete node types and 4 list types, the system would need * 18 concrete version classes! * * In this case, though, the issue is as important as it was in the node * classes. * * @version 0.1 * @author Eric Armstrong * @see ../NodesAndLists.html */ abstract public class AbstractVersionWrapper implements EntityTypes { // Types are hard-coded into each class, so there is a getter but no setter. public String getType() { return type; } /** * Returns the node or list entity contained by this wrapper. */ abstract public AbstractEntity getVersion() { } }//AbstractVersionWrapper