Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract Node {
- +ChildIndex_t getNumberOfChildren() const
- +Node* getChild(ChildIndex_t) const
- +void setChild(ChildIndex_t, UniqueNodePtr)
- +ChildIndex_t getIndexOfChild(Node*) const
- --
- +string getType() const
- +void setFolded(bool)
- +bool isFolded() const
- +string getDescriptionText() const
- +void setDescriptionText(string)
- --
- +UniqueNodePtr clone() const
- }
- class IndexList {
- +list<ChildIndex_t> indices;
- }
- interface Document {
- +UniqueNodePtr getRootNode()
- +IndexList getPathToSelectedNode()
- +void setPathToSelectedNode(IndexList)
- --
- +void executeCommand(UniqueCommandPtr)
- +void undoLastCommand()
- }
- Document --> Node : <<contains>>
- Document --> IndexList : <<contains>>
- interface Command {
- +void executeOn(Document*)
- }
- Command ..> Document : <<modifies>>
- interface Language {
- +string translate(Node*)
- +UniqueNodePtr createNodeByType(string)
- +UniqueCommandPtr createCommandByName(string)
- }
- Language ..> Node : <<use/create>>
- Language ..> Command : <<create>>
- interface LanguageLoader {
- +UniqueLanguagePtr loadLanguage(string pathToLib)
- }
- LanguageLoader ..> Language : <<create>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement