forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			23 lines
		
	
	
		
			No EOL
		
	
	
		
			667 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			No EOL
		
	
	
		
			667 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
/**
 | 
						|
 * An action is a change to the OSM-database
 | 
						|
 * It will generate some new/modified/deleted objects, which are all bundled by the 'changes'-object
 | 
						|
 */
 | 
						|
import {Changes} from "../Changes";
 | 
						|
import {ChangeDescription} from "./ChangeDescription";
 | 
						|
 | 
						|
export default abstract class OsmChangeAction {
 | 
						|
 | 
						|
    private isUsed = false
 | 
						|
 | 
						|
    public Perform(changes: Changes) {
 | 
						|
        if (this.isUsed) {
 | 
						|
            throw "This ChangeAction is already used: " + this.constructor.name
 | 
						|
        }
 | 
						|
        this.isUsed = true;
 | 
						|
        return this.CreateChangeDescriptions(changes)
 | 
						|
    }
 | 
						|
 | 
						|
    protected abstract CreateChangeDescriptions(changes: Changes): Promise<ChangeDescription[]>
 | 
						|
 | 
						|
 | 
						|
} |