| /** |
| * @fileoverview Define the abstract class about cursors which manipulate another cursor. |
| * @author Toru Nagashima |
| */ |
| "use strict"; |
| |
| //------------------------------------------------------------------------------ |
| // Requirements |
| //------------------------------------------------------------------------------ |
| |
| const Cursor = require("./cursor"); |
| |
| //------------------------------------------------------------------------------ |
| // Exports |
| //------------------------------------------------------------------------------ |
| |
| /** |
| * The abstract class about cursors which manipulate another cursor. |
| */ |
| module.exports = class DecorativeCursor extends Cursor { |
| |
| /** |
| * Initializes this cursor. |
| * @param {Cursor} cursor - The cursor to be decorated. |
| */ |
| constructor(cursor) { |
| super(); |
| this.cursor = cursor; |
| } |
| |
| /** @inheritdoc */ |
| moveNext() { |
| const retv = this.cursor.moveNext(); |
| |
| this.current = this.cursor.current; |
| |
| return retv; |
| } |
| }; |