blob: b1fc24ac7b1d8d9ca4d9687861d8ae78858298e0 [file] [log] [blame]
/*
******************************************************************************
* Copyright © 2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
******************************************************************************
*/
import { Command } from './command';
import { BaseCommand } from './base-command';
export class SimpleFieldCommand extends BaseCommand {
constructor(
private model: any,
private field: string,
private oldval: any,
private newval: any) {
super();
}
public undo() {
this.model[this.field] = this.oldval;
}
public redo() {
this.model[this.field] = this.newval;
}
public mergePossible( newerCommand: Command ): boolean {
if ( newerCommand instanceof SimpleFieldCommand ) {
const newCmd: SimpleFieldCommand = newerCommand;
return this.model === newCmd.model && this.field === newCmd.field;
}
return false;
}
public merge( newerCommand: Command): Command {
if ( newerCommand instanceof SimpleFieldCommand ) {
const newCmd: SimpleFieldCommand = newerCommand;
this.newval = newCmd.newval;
return this;
}
throw new TypeError( 'Invalid merge call!');
}
}